Seeker's Memo

個人的で技術的かもしれないメモがメインのブログです。http://seekers.hatenablog.jp/about

【2017-02版】Arch Linux(x86_64,UEFI)の実機インストール手順(個人用、デスクトップ)メモ書き

8【前提】
・GPT-UEFIでマルチブート(主にWindows10との)環境の構築を目指す。
BIOSブートはしない予定だがUEFI画面で、レガシーモード=CSMモードは「ON」にしておき、「UEFIファースト」としておく。
 ※セキュアブートOFFでUEFI-onlyにできるならそっちにしても良いかも…?できるんかいな?
・「セキュアブート」や「EFIのFastboot」、「Windowsの高速スタートアップ」などは「OFF」にしておく
ブートローダはGrub2を使用する予定。
・os-proberは使用せず、UEFIによるファンクション(F8キー)などで起動時にGrub2やWindowsBootmgrを呼び出して切り替える予定。
・LANはとりあえず有線。
・モニタはフルHDVGAカードはGeForce 750Tiとする。
USBメモリ(スティック)からのインストールとする。
・時刻系に関して、Windowsと共存予定なので、ローカル(Asia/Tokyo)を使用し,Universal TimeはUTC, RTCもローカルで使う。
・欠けている情報は公式Wikiなどを参照すること

【インストールメディアの準備】
・2~4GB以上のUSBスティックを用意。1GBぐらいだとぎりぎりかも
・Arch公式から*-dual.isoみたいな最新イメージをダウンロード。必要なら検証する。
・この記事では、Windows上「Rufus」を使ってUSBに焼き付けることにする。fat32を選んで、ISOでダウンロードしたやつ指定してスタート。
Rufus - 起動可能なUSBドライブを簡単に作成できます

【インストールメディアの起動と確認】
どうにかしてUSB起動させる。※ASUSマザーならF8キーでピンポイント指定すると楽「UEFI:USB********」みたいなやつを指定。

起動後ブートローダの一番上を選び、対話が表示されるまで待つ。

キーマップ指定。
# loadkeys jp106

EFIシステムでロードされているか確認(色々ファイルが存在していればOKらしい)
# ls /sys/firmware/efi/efivars

対象ディスクの確認、GPTパーティション切り
# ls /dev/sd*
# lsblk -f
※出力の一例

NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs 回復 34***********BBC
├─sda2 vfat B**8-8**6
├─sda3
└─sda4 ntfs システムディスク C**************0
sdb
└─sdb1 ntfs HDD-SUB 0**************0
sdc

・/dev/sdaはWin10のCドライブがあるディスクでいじらない
・/dev/sdbはサブのデータドライブでいじらない
・今回いじるのは/dev/sdc

念の為中身を確認
# gdisk -l /dev/sdc


パーティション切り】
# gdisk /dev/sdc
・先頭に「EFIパーティション(/boot兼用)」
・次に「/」
残りお好きに。容量さえあればほぼ気の済むまでパーティション分割できるらしい(120ぐらい)
・今回はメモリが大量に余ってるのでSWAP作らない予定。
・別に順序はどうでもいいらしい?

【フォーマット】
# mkfs.vfat -F32 /dev/sdc1 ※EFIパーティション。「-F32」は必ずつける
# mkfs.ext4 /dev/sdc2 ※ルートファイルシステム

【とりあえずマウント】
# mount /dev/sdc2 /mnt
# mkdir /mnt/boot
# mount /dev/sdc1 /mnt/boot

【Let's Start】
# ping archlinuxjp.org ※ネット接続確認。

# timedatectl set-localtime Japan
# timedatectl set-local-rtc true
# timedatectl set-ntp true
# timedatectl status

Local time: 月 2017-03-13 13:46:57 JST
Universal time: 月 2017-03-13 04:46:57 UTC
RTC time: 月 2017-03-13 13:46:57
Time zone: Japan (JST, +0900)
Network time on: yes
NTP synchronized: no
RTC in local TZ: yes

こんな感じになるはず。イメージ。警告は出るが、無視することにする。

/etc/pacman.d/mirrorlistをいじって、Japan系のやつを一番上に持ってくるjaistさんのやつがいいかな?と勝手に思う。
# pacstrap /mnt base base-devel
しばらく待つ。

UUIDでfstab自動記述。一応中身確認しておく
# genfstab -U /mnt >> /mnt/etc/fstab

chroot
# arch-chroot /mnt

タイムゾーン設定
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --local

ロケール、vconsole,hostname,hosts,割愛https://wiki.archlinuxjp.org/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89#.E3.83.AD.E3.82.B1.E3.83.BC.E3.83.AB

ネットワーク・DHCP設定
/etc/systemd/network/wired.networkを作成

[Match]
Name=en*

[Network]
DHCP=ipv4

# systemctl enable systemd-netoworkd
# systemctl enable systemd-resolved
# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf ※公式ライブ環境以外(arch-install-scriptsを使用)からインストール作業中の場合はchroot外からリンクを貼りなさい、とある。今回は関係なさそう。

必要があれば、
# mkinitcpio -p linux

# passwd ※rootのパスワード設定

普段遣いのUser作成
# useradd -m -G wheel,video [ユーザ名]
# passwd [ユーザ名]


【Grub2のインストール
# pacman -S grub efibootmgr
Intel の CPU を使っている場合は intel-ucode パッケージを追加インストール

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub-arch
# grub-mkconfig -o /boot/grub/grub.cfg

【再起動して確認】
# exit
# umount -R /mnt
# reboot
再起動後、USB抜く。
起動中F8押して、
grub-arch:[P:3 ディスク名] のようなやつを選択

EFIシステムでロードされているか確認(色々ファイルが存在していればOKらしい)
# ls /sys/firmware/efi/efivars

時刻がずれてる場合は、もう一度確認する。
timedatectlの前述の設定と同じにして時刻同期。


【追加の色々】
# pacman -S gdisk

vfat,exfat,ntfsの読み書き
# pacman -S dosfstools exfat-utils ntfs-3g mtools

zsh
# pacman -S zsh
# chsh [ユーザ名] -s /bin/zsh

# EDITOR=nano visudo
wheel行1行をアンコメントして保存

AURヘルパー(yaourt)
Yaourt - ArchWiki

# pacman -S ccache
以下3つを好みにカスタマイズ
/etc/pacman.conf
/etc/makepkg.conf
/etc/yaourtrc
※CFALGS=>いじらないほうがよいということだが変更したいなら「gentoo Safe GCC CFLAGS」などを参考にするといいかも。
MAKEFLAGS="-j6"ぐらいにしてみた。
pacmanのcolor出力、makepkgのccache利用ぐらいはONにしておこうかな。

git
$ yaourt -S git
初期設定はやっておいたほうがよい

nkf
$ yaourt -S nkf


【Xサーバー関係のインストール
$ yaourt -S xorg-server xorg-server-utils xorg-apps xf86-input-libinput xf86-video-nouveau
※ここではオープンソース版のnvidiaを選択。mesa。

【フォント】
好きなの入れる。必要があれば当ブログ過去記事のどれか参照のこと。

【IMなど】
・当方はibus-mozcを愛用中。
Mozc - ArchWiki


emacs-nox(Xサポートなし)】
$ yaourt -S emacs-nox

※ディスプレイマネージャとかデスクトップ環境選択は、Wikiとかで調べて選んで入れる

以上、ここまで。

補足1:たとえばGDMからログインしてGNOME3環境のキー反応がおかしいときは、Xorg版を選択してログインすること。
補足2:# gdk-pixbuf-query-loaders --update-cache