Seeker's Memo

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

【2017年09月版・手順抜粋メモ】Install Gentoo Linux (case for Base System) for amd64 & systemd

というわけで、久々にインストールします。
やったこととかのメモ抜粋。手順等が間違ってる可能性があります。
なので詳細はGentooのハンドブックに従ってください
インストール後の設定などは、Gentoo以外にもディストリビューションが違いますがArch LinuxのArch Wikiも合わせてみるととても参考になります。
いつもお世話になってます。両方好きなディストリビューションです。
なおデスクトップ環境導入編(インストール後半。awesome+ibus+mozc+googlechrome)は、

【2017年09月版・手順抜粋メモ】Gentoo Linuxにデスクトップ環境をインストールする - Seeker's Memo



となります。

ターゲット

Gentoo Linux (amd64, systemd)
今回は、stage3-tarballからsystemd版使ってみます。

システム構成

CPU: Intel Core i7 7700K 4.20GHz
M/B: ASUSTeK ROG STRIX Z270F GAMING
Mem: Corsair DDR4 2800 32GB(Dual-Channel)
Disk:
SSDWindows 10),SSD(インストール予定),残りHDD
Sound: Onboard
LAN: Onboard
Graphics: ASUStek GeForce 1060(6GB)
Input: Keyboard=K270 & Mouse適当

インストール開始

今回は既に他の領域にインストールしてあるArch Linux上からchrootで構築する。
インストール時に必要になるコマンドは、予めインストールした。
gdiskやlinks(正直、GUIでもいいけど)、その他、便利なaur/gentoo-mirrorselectパッケージやgenfstabが入ってるaur/arch-install-scriptsなど。

とりあえず、Gentoo amd64ハンドブックに従って、ディスクの準備とそのマウント。
その前にBIOSで、Secure Bootは切っておく。UEFI-fastにしてCSMをオンにしておく。
作業するLinux上で「efivar」を確認し、EFIでブートしていることを確認しておく

ディスクに関してはUEFIでGPTを想定して、gdiskコマンドを使って切り分け、BIOSパーティションは作らない。
ESPはtype=EF00で512MiB確保する。
今回、/homeはわけないことにする。
※誤って他のOSが入ってるディスクや領域に触らないこと。

/boot=/dev/sdb1(esp,vfat)と/=/dev/sdb2=ext4は分けた。メモリ余ってるくらいなのでSwapは作成しない方針で。

# mkfs.vfat -F32 /dev/sdb1
# mkfs.ext4 /dev/sdb2 -L gentoo-root でラベルをつけてフォーマットした。

# mkdir -pv /mnt/gentoo
# mount /dev/sdb2 /mnt/gentoo
※この時点で/bootをマウントしないほうがいいらしい

ハンドブックに戻る。

tarball取得と展開。
・今回はsystemdのやつを選んだ。

/etc/portage/make.confの編集など
CFLAGS="-O2 -pipe -march=native"
MAKEOPTS="-j7"ぐらいか。
FEATURES="parallel-fetch userfetch ccache"も設定してもOK?
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"

USEはとりあえず"cjk unicode nls symlink systemd "ぐらいは追記。
L10N="ja en"
LINGUAS="ja en"
も書いておくか。

# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
日本サーバーを全部スペースで選択しておいた。

次がわりかし久々なワシには変更点。
# mkdir /mnt/gentoo/etc/portage/repos.conf
# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
edit gentoo.conf, change to Japanese Server.

システムのマウント
mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash と source /etc/profile

あとでやるenv-update && source /etc/profile && export PS1="(chroot) $PS1"

# mkdir -pv /boot
# mount /dev/sdb1 /boot

portage更新?
# emerge-webrsync
# emerge --sync --quiet

# eselect news read 番号 で一応目を通す。

#eselect profile list でsystemdを使うやつになってることを確認。***desktop/gnome/systemdとかのやつ

# echo "Asia/Tokyo" > /etc/timezone
# emerge --config sys-libs/timezone-data

・ccache入れておく。
# emerge --ask ccache
make.confにCCACHE_SIZE="2G"追加。CCACHE_DIR="/var/tmp/ccache"も必要なら追記

・今のうちにシステム全体更新
# emerge -avDN @world


・ガイドに従ってマニュアルカーネルインストール。
※重要:別のハンドブックにてsystemdの設定項目や導入方法も確認しておく。

・ホストネームやネットワーク設定
とりあえずルーター挟んで有線LAN内固定IPにしたいので、今回は以下のようにする。
# nano /etc/systemd/network/wired.network
[Match]
Name=enp*

[Network]
Address=192.168.11.10/24
Gateway=192.168.11.1

# systemctl enable systemd-networkd
# ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
# systemctl enable systemd-resolved.service

・パスワード設定
一般ユーザ作成&パスワード設定
グループに参加 gpasswd -a [USER] wheel
今後のことを考えて、video,usb,cdromも追加しておくといい。

・追加のツール
syslog-ng cronie mlocateを選択。
ファイルシステムツールを入れた。
e2fsprogs
fuse-exfat
exfat-utils
dosfstools
ntfs3g

sudoを入れて設定
念の為dhcpcdかdhclientを入れておく。

・grub2入れる
# echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
# emerge --ask --verbose sys-boot/grub:2
# grep -v rootfs /proc/mounts > /etc/mtab ※やっちゃったけどこの手順必要?
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=gentoo-grub
--bootloader-id指定は任意かつ命名自由。他のOSのブートローダーのIDと被らないようにする。ヘタすると起動しなくなるし、Windows環境などもぶっ壊す羽目になる。
# grub-mkconfig -o /boot/grub/grub.cfg

細かな設定と再起動

# systemd-machine-id-setup

アンマウントしてリブート。

追加でやるべきこと

無事起動したら、
(キーがおかしかったらloadkeys jp106で応急処置。あとで設定し直す)
localectl set-keymap jp106
localectl set-keymap jp-OADG109A --noconvert

他にもhostnamectlやtimedatectlなどオプションを指定しながら実行して、念の為もう一度リブート。

「# ip addr」でネットにも繋がっているか確認したり、
dmesg やjournalctlを使ってエラーなどが殆ど無いかどうか調べる。
だめだったら、クリティカルにだめな箇所だけは1個ずつ潰す。
よくあるのが、ファイルシステムやマウントエラーとか。ヘタすればカーネルパニックになるやつ。

ベースシステム完成

とりあえず、コンソールベースのシステムはこれにて出来上がり。

追加設定(任意)

# touch /etc/portage/package.mask
# touch /etc/portage/package.use
# touch /etc/portage/package.license

emacsのXサポートを外す(いわゆるemacs-noxにする)
# nano /etc/portage/package.use
app-editors/emacs -X
で保存して、Let's emerge

パッケージ管理サポートツール

# emerge --ask -uDN app-portage/eix
# eix-update
※eix [検索したいやつ]でとりあえず見つけられる。emerge --searchよりずっと早い。詳細はman eixなどで。

あとは、app-portage/gentoolkitとapp-portage/portage-utilsも使うと便利らしい。
紹介などはこちらのサイトさんの記事などでどうぞ。
gnu.hatenablog.com

source-highlight

lessコマンドを色分け表示で便利にする奴。
$ sudo emerge --ask source-highlight
~/.zshrcなどに、追加の変数などを設定すると色分け表示してくれるようになる。
export PAGER=less
export OUTPUT_CHARSET=utf-8
export LESS='-R '
#export LESSOPEN="| /usr/bin/source-highlight-esc.sh %s"
#export LESSOPEN='| /usr/share/source-highlight/src-hilite-lesspipe.sh %s'
export LESSOPEN='| /usr/bin/src-hilite-lesspipe.sh %s'
export LESS_TERMCAP_me=$(printf '\e[0m')
export LESS_TERMCAP_se=$(printf '\e[0m')
export LESS_TERMCAP_ue=$(printf '\e[0m')
export LESS_TERMCAP_mb=$(printf '\e[1;32m')
export LESS_TERMCAP_md=$(printf '\e[1;34m')
export LESS_TERMCAP_us=$(printf '\e[1;32m')
export LESS_TERMCAP_so=$(printf '\e[1;44;1m')
#export LV='-Ou8 -c'

ここまでに、追加で入れたもの一覧

pciutils
lshw
ccache
sys-fs/sysfsutils
mlocate
syslog-ng
cronie
e2fsprogs
fuse-exfat
exfat-utils
dosfstools
ntfs3g
sudo
dhcpcd
zsh
nkf
wget
links
app-editors/emacs -X
app-portage/eix
gdiskなどのディスクユーティリティsys-apps/gptfdiskすでに入ってた

入れて使うか悩んでる

flaggie