23. Gentooインストール手順

23.1. 前提条件

HW:

PC/AT互換機

CPU:

x86_x64

NW:

DHCPでIPaddrが割り当てられるLANに接続できる事

Media:

下記よりISOイメージをダウンロードし、光学メディアに焼きこむかブータブルUSBメモリを作成する事

http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/current-iso/

ファイル名: install-amd64-minimal-[YYYYMMDD].iso

23.2. 詳細手順

23.2.1. 事前準備

BIOSで該当のメディアがブートされるように設定し、インストールメディアをセットしブートする

下記コマンドでIPアドレスが割り当てられた事を確認する

ifconfig -a

リモートからsshで接続してインストール作業を実施する為、コンソールよりsshdの起動とrootパスワードの設定をする

# passwd
※任意のパスワード aaa等を入力
# /etc/init.d/sshd start
# pgrep -l sshd ※起動確認

コンソールで上記設定ができたら、リモートよりTeraTerm、Putty等で接続する

23.2.2. ディスク準備

現状で認識しているディスクを調べる

# fdisk -l

ディスクのパーティション設定をする

# fdisk /dev/sda
Command (m for help): p ※パーティションの確認
Command (m for help): d ※既存パーティションの削除

※/boot領域の作成
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-78165359, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-78165359, default 78165359): +100M ※/boot用なので100MB割り当てる
Command (m for help): a ※ブート可能にする
Partition number (1-4): 1
Command (m for help): p ※/dev/sda1 に * が表示される事を確認

※swap領域の作成
Command (m for help): n
Select (default p): p
Partition number (1-4, default 2): 2
First sector (206848-78165359, default 206848): 206848
Last sector, +sectors or +size{K,M,G} (206848-78165359, default 78165359): +2G ※swapパーティションに2GB割り当てる
Command (m for help): t ※パーティションタイプを設定
Partition number (1-4): 2
Hex code (type L to list codes): 82
Command (m for help): p ※/dev/sda2 のSystemに Linux swap / Solaris が表示される事を確認

※root領域の作成
Command (m for help): n
Select (default p): p
Partition number (1-4, default 3): 3
First sector (4401152-78165359, default 4401152): 4401152
Last sector, +sectors or +size{K,M,G} (4401152-78165359, default 78165359): +5G

※以下必要なだけ作成する
Command (m for help): n
Select (default p): p
First sector (14886912-78165359, default 14886912):
Using default value 14886912
Last sector, +sectors or +size{K,M,G} (14886912-78165359, default 78165359): +10G

※変更をSAVEする
Command (m for help): w

ディスクのフォーマットをする

# 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

23.2.3. インストール用ファイル準備

作業領域にカレントを移し、stage3のアーカイブをダウンロード、展開する

# cd /mnt/gentoo
# wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/current-stage3/stage3-amd64-20130425.tar.bz2
# wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/current-stage3/stage3-amd64-20130425.tar.bz2.DIGESTS
# sha512sum -c stage3-amd64-20130425.tar.bz2.DIGESTS
# tar xf stage3-*.tar.bz2

Portageスナップショットをダウンロードし、インストール

# cd /mnt/gentoo
# wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/snapshots/current/portage-latest.tar.bz2
# wget http://ftp.iij.ad.jp/pub/linux/gentoo/releases/snapshots/current/portage-latest.tar.bz2.md5sum
# md5sum -c portage-latest.tar.bz2.md5sum
# tar xf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

23.2.4. コンパイルオプションの設定

# cp -ip /mnt/gentoo/usr/share/portage/config/make.conf.example /mnt/gentoo/etc/make.conf
# vi /mnt/gentoo/etc/make.conf

   CFLAGS="-march=athlon64 -O2 -pipe"
   # 両方の変数に同じ値を使います
   CXXFLAGS="${CFLAGS}"
   # コア数 + 1 程度
   MAKEOPTS="-j7"

23.2.5. ミラーサイトの選択

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

23.2.6. DNS情報をコピーする

# cp -L /etc/resolv.conf /mnt/gentoo/etc/

23.2.7. /procと/devのマウント

# mount -t proc none /mnt/gentoo/proc
# mount --rbind /dev /mnt/gentoo/dev

23.2.8. chrootする

# cp -ip /bin/vi /mnt/gentoo/bin/vi
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"

23.2.9. Portageツリーの更新

# emerge --sync
# emerge --oneshot portage

23.2.10. profileの変更

# eselect profile list

  [4]   default/linux/amd64/13.0/desktop/gnome

# eselect profile set 4 # 例

23.2.11. USE変数の設定

※確認
# less /usr/portage/profiles/use.desc
# vi /etc/make.conf
   USE="X gtk gnome -alsa"

23.2.12. ロケールの設定

※ロケールの指定
# vi /etc/locale.gen
   ja_JP.UTF-8 UTF-8

※ロケールの作成
# locale-gen

23.2.13. カーネル設定

# emerge gentoo-sources
# ls -l /usr/src/linux

システムの情報を把握する

livecd ~ # lspci
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx)
00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 1)
00:0a.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5)
00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller
00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.1 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0 USB OHCI1 Controller
00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 3c)
00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller
00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller
00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge
00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RS880 [Radeon HD 4250]
01:05.1 Audio device: Advanced Micro Devices [AMD] nee ATI RS880 HDMI Audio [Radeon HD 4200 Series]
02:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 06)
04:06.0 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 01)
04:06.1 Ethernet controller: Intel Corporation 82546EB Gigabit Ethernet Controller (Copper) (rev 01)
04:0e.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)

カーネルコンパイルのconfig設定

# cd /usr/src/linux
# make menuconfig

23.2.13.1. 正確なプロセッサファミリの選択

Processor type and features --->
   Opteron/Athlon64/Hammer/K8
    or
   Core 2/newer Xeon

23.2.13.2. devtmpfsサポートの有効化

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

File systems  --->
    /proc file system support

Processor type and features  --->
  [*] Symmetric multi-processing support

Device Drivers --->
  [*] HID Devices  --->
    <*>   USB Human Interface Device (full HID) support

ノートの場合:

 Bus options (PCI etc.)  --->
   PCCARD (PCMCIA/CardBus) support  --->
     <*> PCCard (PCMCIA/CardBus) support
 (古いPCMCIAカードのサポートが必要なら、16ビットを選択します。ほとんどのシステムで必要になります。)
     <*>   16-bit PCMCIA support
     [*]   32-bit CardBus support
 (適切なブリッジを下記から選択します。)
     *** PC-card bridges ***
     <*> CardBus yenta-compatible bridge support (NEW)
     <*> Cirrus PD6729 compatible bridge support (NEW)
     <*> i82092 compatible bridge support (NEW)


[*] Network device support  --->
  Ethernet driver support (NEW)  --->
    <*>     Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support
    <*>     Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support

  Wireless LAN (NEW)  --->
23.2.13.2.1. インストール
make && make modules_install
※カーネルに付ける名前: kernel-3.7.10-gentoo-r1

find /lib/modules/3.7.10-gentoo-r1/ -type f -iname '*.o' -or -iname '*.ko' | awk -F"/" '{gsub(/\.ko$/,"",$NF);print $NF}'

   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/xt_nat.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/xt_mark.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/xt_LOG.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/nf_nat_sip.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/nf_nat_irc.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/nf_nat_ftp.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/netfilter/nf_nat.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/ipv4/netfilter/nf_nat_ipv4.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/ipv4/netfilter/iptable_nat.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
   /lib/modules/3.7.10-gentoo-r1/kernel/drivers/char/kcopy/kcopy.ko

vi /etc/conf.d/modules


   modules="xt_nat"
   modules="xt_mark"
   modules="xt_LOG"
   modules="nf_nat_sip"
   modules="nf_nat_irc"
   modules="nf_nat_ftp"
   modules="nf_nat"
   modules="nf_nat_ipv4"
   modules="iptable_nat"
   modules="ipt_MASQUERADE"
   modules="kcopy"

23.2.14. /etc/fstabの作成

# vi /etc/fstab

   /dev/sda1   /boot        ext4    defaults,noatime     1 2
   /dev/sda2   none         swap    sw                   0 0
   /dev/sda3   /            ext4    noatime              0 1

   /dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

   proc        /proc        proc    defaults             0 0
   shm         /dev/shm     tmpfs   nodev,nosuid,noexec  0 0

23.2.15. ネットワーク情報

# vi /etc/conf.d/hostname

   hostname="versus"

# vi /etc/conf.d/net

   dns_domain_lo="thunderforce"
   nis_domain_lo="tf777"

   config_enp3s0="10.16.128.22 netmask 255.255.255.0 brd 10.16.128.31"
   routes_enp3s0="default via 10.16.128.30"

   config_enp4s6f0="172.31.255.22 netmask 255.255.255.192 brd 172.31.255.63"
   routes_enp4s6f0="default via 172.31.255.62"

   config_enp4s6f1="dhcp"

defaultのランレベルにnet.eth0を追加

# cd /etc/init.d

# ln -s net.lo net.enp3s0
# rc-update add net.enp3s0 default

# ln -s net.lo net.enp4s6f0
# rc-update add net.enp4s6f0 default

# ln -s net.lo net.enp4s6f1
# rc-update add net.enp4s6f1 default

23.2.16. hostsの記述

# vi /etc/hosts

   127.0.0.1     versus.thunderforce versus localhost

23.2.17. rootのパスワードの設定

# passwd

23.2.18. 起動設定

# vi /etc/rc.conf
   #適宜。インストール後に設定でも。
   #rc_sys=""
   # "lxc"     - Linux Containers

23.2.19. その他システム設定

# vi /etc/conf.d/keymaps
   # keymap="jp106"

# vi /etc/conf.d/hwclock
   # clock="local"

# echo Japan > /etc/timezon

23.2.20. 必要なシステムツールをインストールする

rsyslog:

# emerge rsyslog
# rc-update add rsyslog default

cron:

# emerge vixie-cron
# rc-update add vixie-cron default

locate:

# emerge mlocate

dhcpクライアント:

# emerge dhcpcd

23.2.21. ツールの起動設定

sshd:

# rc-update add sshd default

SERIAL CONSOLES:

# vi /etc/inittab

   # SERIAL CONSOLES
   #s0:12345:respawn:/sbin/agetty -L 115200 ttyS0 vt100
   #s1:12345:respawn:/sbin/agetty -L 115200 ttyS1 vt100

23.2.22. ブートローダの設定

grubのインストール:

# emerge grub

カーネル番号の参考:

# ls -l /usr/src

grub.confの作成:

# mkdir -p /boot/grub/
# vi /boot/grub/grub.conf

   default 0
   timeout 10
   splashimage=(hd0,0)/boot/grub/splash.xpm.gz

   title Gentoo Linux
   root (hd0,0)
   kernel /boot/kernel-3.7.10-gentoo-r1 root=/dev/sda3

   title Gentoo Linux 2.6.34-r1 (rescue)
   root (hd0,0)
   kernel /boot/kernel-3.7.10-gentoo-r1 root=/dev/sda3 init=/bin/bb

grub-install:

# mount -a
# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install --no-floppy /dev/sda

23.2.23. システムの再起動

# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -l /mnt/gentoo{/boot,/proc,}
# reboot