Gentoo導入ログ
とてつもなく自由*1になりたかったのでGentooを導入する事とした。
パーティション作成
fdisk /dev/sda
40GBを単純に三つに切り、boot、swap、rootで構成。
フォーマット
mkfs.ext4 /dev/sda1 mkfs.ext4 /dev/sda3 mkswap /dev/sda2 swapon /dev/sda2
マウント
mount /dev/sda3 /mnt/gentoo/
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
時刻を合わせる
ntpdate ntp.nict.jp
Stage3を入手する
cd /mnt/gentoo
links www.gentoo.org/main/en/mirrors.xml
JPからiijを使う。今回はreleases/amd64/autobuilds/20161020/stage3-amd64-20161020.tar.bz2
をダウンロード。展開。
tar xvjpf stage3-amd64-20161020.tar.bz2 rm -rf stage3-amd64-20161020.tar.bz2
portageを入手する
links www.gentoo.org/main/en/mirrors.xml
同じくiijを利用する。snapshots/portage-latest.tar.bz2
をダウンロード。展開する。
tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr rm -rf ortage-latest.tar.bz2
カーネルコンパイルの準備
CFLAGSのオプションを確認。
cc -march=native -E -v -&1 | grep cc1
march=haswellが確認できたため、make.confのCFLAGSに追加する。CFLAGSにおける最適化設定についてはこの辺りを参照。またhaswellオプションはGCC4.9.0以上から対応とのこと。
Intel Haswell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2 and F16C instruction set support. - stackoverflow
nano -w /mnt/gentoo/etc/make.conf CFLAGS="-O2 -march=haswell -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j9"
ミラーを設定。
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
近い場所を設定した。
tail -n 2 /mnt/gentoo/etc/make.conf GENTOO_MIRRORS="http://ftp.iij.ad.jp/pub/linux/gentoo/" SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage"
DNS情報のコピー
cp -L /etc/resolv.conf /mnt/gentoo/etc
/procと/devをマウント
マウント先でも今の環境の情報を参照できるようにしておく。
mount -t proc none /mnt/gentoo/proc mount --rbind /dev /mnt/gentoo/dev
ディスク上の環境へ移行
chroot /mnt/gentoo /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1"
portageとlocaleの設定
emerge --sync nano -w /etc/locale.gen locale-gen
タイムゾーンの設定
cp /usr/share/zoneinfo/Japan /etc/localtime
カーネルインストール
emerge gentoo-sources
カーネルを設定する。ここら辺はハンドブックを見つつ。
cd /usr/src/linux
make menuconfig
カーネルビルド
make && make modules_install
-O2
フラグを付与しているので取り敢えず気長に待つ。その後カーネルイメージを/bootにコピーする.
ls -l /usr/src/linux cp arch/x86_64/boot/bzImage /boot/kernel-4.4.26-gentoo
fstabの編集
nano /etc/fstab
以下のように設定した。フロッピーディスクを使うことは考えられないので、コメントアウトした。
ホスト名とネットワークの設定
まず適当なホスト名をつける。
nano -w /etc/conf.d/hostname
DHCPクライアントをインストールしブート時に自動的に接続するようにする。
emerge dhcpcd cd /etc/init.d ln -s net.lo net.eth0 rc-update add net.eth0 default
パスワードとキーマップなど
passwd nano -w /etc/conf.d/hwclock clock="local"
必要なシステムツールのインストール
emerge syslog-ng rc-update add syslog-ng default emerge logrotate emerge mlocate emerge --ask net-analyzer/nmap echo ">=net-analyzer/nmap-6.25 gtk ipv6 lua nls ssl ncat ndiff nmap-update nping" >> /etc/portage/package.use
ブートローダーのインストール
emerge grub nano -w /boot/grub/grub.conf title Gentoo Linux 4.4.26 root (hd0,0) kernel /boot/kernel-4.4.26-gentoo root=/dev/sda3 title Gentoo Linux 4.4.26 (Rescue) root (hd0,0) kernel /boot/kernel-4.4.26-gentoo root=/dev/sda3 init=/bin/bb grub2-mkconfig -o /boot/grub/grub.cfg grub2-install /dev/sda
再起動
exit umount -l dev/ umount -l proc/ reboot
CDイメージを抜く。
一般ユーザーを作る
useradd roki -d /home/roki cd /home mkdir roki chown -R roki:roki roki passwd roki emerge sudo groupadd sudo visudo %sudo ALL=(ALL) ALL usermod -G sudo roki
仕上げ
仕上げとして、ディスプレイマネージャやGUI環境を構築できるようにしておく。
emerge boost emerge app-misc/screen emerge dev-vcs/git
現段階では何を入れようかまだ決めていないので、しばらくGentooではCUI生活を送ることとする。*2