毎日こつこつ

Gentoo/Linuxユーザによる電子工作やマシン構築などの備忘録です.

Gentooのインストール方法

Webサーバが欲しくなったので, 余っているマシンにGentooをインストールします.
カーネルはマニュアルコンフィグレーションで, その手順を備忘録として残します.
設定については吟味していません.
使用するコマンドの意味までは言及しないので, 調べ理解した上で先に進んで欲しいです.
なお, 以下の手順でインストールした際のいかなる損害やトラブルの責任は一切負いかねるので, パソコンから火が出て爆発したり, 宇宙線の影響でデータが破損しても知りません.

1. Gentooインストールの準備
まず, GentooミラーサイトからMinimalCDイメージをダウンロードします.
releases/各自のアーキテクチャ/autobuilds/current-isoに最新版のisoが置いてあります.
以下, amd64を選択したものとしてインストールを行います.
CDに書き込み出来たらさっそくインストールCDをブートします.

boot: gentoo

と入力してしばらく待つと, キーボード選択画面になるので好きな番号を押します.
日本語のキーボードが良い人は22と入力します.

livecd ~ #

とrootでログインが出来たはずです.
ネットワークが設定されていない場合, 以下のツールで簡単に設定出来ます.

# net-setup enp2s0

次に, カーネル構築を簡単にするために以下のコマンドを実行し, 赤字部分をメモしておきます.

# lspci -k |grep driver
Kernel driver in use: pcieport
Kernel driver in use: uhci_hcd
Kernel driver in use: echci-pci
Kernel driver in use: snd_hda_intel
Kernel driver in use: e1000e
Kernel driver in use: ahci
Kernel driver in use: pata_jmicron

# lspci -k |grep modules
Kernel modules: uhci_hcd
Kernel modules: ata_piix, pata_acpi, ata_generic
Kernel modules: snd_hda_intel
Kernel modules: e1000e
Kernel modules: ahci
Kernel modules: pata_jmicron, pata_acpi, ata_generic

2. パーティションの作成
パーティションの作成にはfdiskを使います.

# fdisk /dev/sda

用途や環境に応じて分割の基準は変わるので, 今回行った構成を例として載せておきます.

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x99089908

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    20973567    10485760   83  Linux
/dev/sda2        20973568    54527999    16777216   82  Linux swap / Solaris
/dev/sda3        54528000   222300159    83886080   83  Linux
/dev/sda4       222300160  1953525167   865612504    5  Extended
/dev/sda5       222302208   327159807    52428800   83  Linux
/dev/sda6       327161856  1953525167   813181656   83  Linux

3. ファイルシステムの作成
パーティションに, 今回はext4ファイルシステムを適用します.
(btrfsではないです)

# mkfs.ext4 /dev/sda1    (bootパーティションへの適用)
# mkswap /dev/sda2       (swapパーティションの初期化)
# swapon /dev/sda2       (swapパーティションの有効化)
# mkfs.ext4 /dev/sda3    (rootパーティションへの適用)
# mkfs.ext4 /dev/sda5    (homeパーティションへの適用)
# mkfs.ext4 /dev/sda6    ( varパーティションへの適用)

4. パーティションのマウント

# mount /dev/sda3 /mnt/gentoo      (rootパーティションのマウント)
# mkdir /mnt/gentoo/boot           (boot用のディレクトリ作成)
# mount /dev/sda1 /mnt/gentoo/boot (bootパーティションのマウント)

5. 日時の確認

# date
もしズレていたら, 以下のように設定.
# date MMDDhhmmYYYY     M(月), D(日), h(時), m(分), Y(年)

6. 各種ダウンロードとインストール
インストール先のマウントポイントへ移動し, stageとportageのダウンロード.

# cd /mnt/gentoo
# links http://www.gentoo.org/main/en/mirrors.xml
releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-.tar.bz2
snapshots/portage-latest.tar.bz2

stageとportageのインストール.

# tar xvjpf stage3-*.tar.bz2
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

7. chrootで新しい環境へ入る
chrootの準備として, 各種設定を行います.
ミラーサイトとSYNC変数の設定.

# mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
# mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf

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.

# chroot /mnt/gentoo /bin/bash
# env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

8. portageシステムの設定
chrootで新しい環境へ入ったので, portageツリーを更新します.

# emerge --sync --quiet

自分にあったprofileの選択をします.

# eselect profile list
# eselect profile set 設定したい番号

9. コンパイルオプションとUSEフラグの設定
コンパイルオプションの設定をします.

# gcc -v -xc -march=native /dev/null 2>&1|grep cc1 >> /etc/portage/make.conf
# nano -w /etc/portage/make.conf

make.confに次のような行が追記されます.

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.3/cc1 -quiet -v /dev/null -march=core2...

-marchから-quietまでをCFLAGSの-pipe以下に貼り付けます.
USEフラグは, make.confのUSEよりあとに記述します.
用途や環境に応じて変わるので, 必要だと思うものを設定してください.

10. glibcロケール設定
必要なロケールを指定します. 今回は私の例を載せておきます.

# nano -w /etc/locale.gen
en_US ISO-8859-1
en_US.UTF-8 UTF-8
ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
ja_JP EUC-JP
# locale-gen

11. カーネルのマニュアルコンフィグレーション
いよいよお待ちかねのカーネルのマニュアルコンフィグレーションです.
ソースをインストールします.

# emerge gentoo-sources

シンボリックリンクの確認をします.

# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 20 Feb 25 00:00 /usr/src/linux -> linux-3.10.25-gentoo

カーネルのマニュアル設定を行います.

# cd /usr/src/linux
# make menuconfig

まず, "/"キーを押してSearch Configuration Parameterを開きます.
ここで, 1章にてメモしたドライバとモジュールを検索し設定します.
残りは, 環境によって違うので簡単な流れだけ載せておきます.
・Processor familyをマシン構成に併せて設定.
・要らないドライバやモジュールを削る.
nVidiaカードを使っている人はnouveauにチェックを入れ以下を行う.

/etc/portage/make.confにVIDEO_CARDS="nouveau"と追記.
emerge -1 xorg-driversを行う.

構成が完璧に出来たと思ったら, コンパイルとインストールをします.
実際には出来ていない事が多いですが, とりあえず先に進みます.
(ext4やdevtmpfsは最近だとチェック済みなので死ぬことは少ないと思います)

# make && make modules_install && make install

12. Gentooのシステム設定
fstabを作成しファイル情報を記入します.
以下は私の設定例です.

# nano -w /etc/fstab
/dev/sda1               /boot           ext4            noauto,noatime  0 2
/dev/sda2               none            swap            sw              0 0
/dev/sda3               /               ext4            noatime         0 1
/dev/sda4               none            ext4            noatime         0 2
/dev/sda5               /home           ext4            noatime         0 2
/dev/sda6               /var            ext4            noatime         0 2
/dev/cdrom              /mnt/cdrom      auto            noauto,ro       0 0

ホストネームの設定

# nano -w /etc/conf.d/hostname
hostname="お好みで"

ネットワークの恒久設定(DHCPの場合)

# nano -w /etc/conf.d/net
config_enp2s0="dhcp"
# cd /etc/init.d
# ln -s net.lo net.enp2s0
# rc-update add net.enp2s0 default
# emerge dhcpcd

13. ブートローダの設定
今回はgrub2を使った設定例を載せておきます.

# mount /boot
# emerge grub
# grub2-install /dev/sda
# nano -w /boot/grub/grub.cfg
default 0
timeout 2

menuentry 'Gentoo Linux 3.10.25' {
     root=hd0,1
     linux /boot/vmlinuz-3.10.25-gentoo root=/dev/sda3
}

menuentry 'Gentoo Linux 3.10.25 (rescue)' {
     root=hd0,1
     linux /boot/vmlinuz-3.10.25-gentoo root=/dev/sda3 init=/bin/bb
}
# grub2-mkconfig -o /boot/grub/grub.cfg

この後, /etc/default/grubに色々できるので次からそちらを変更してください.
エラーがなければrootのパスワードを設定した後, rebootしてください.
もし, カーネルパニックが起きた場合, 再度マウントしてchrootし調整してください.
無事にGentoo/Linuxが起動できれば成功です.
この後は, LM(SLiM)やWM(Awesome)を入れGUI環境を整えたり, 細かい設定を行い自分好みのマシンに仕上げていきましょう.

参考文献
Gentoo Linux -- Gentoo Linux News
nouveau - Gentoo Wiki
GRUB2 Quick Start - Gentoo Wiki