Windows8発売記念にGentooインストールする part 1
前回 ノーガード戦法で挑んだら痛い目にあったので,今回はちゃんと ハンドブック(X86) を基にして進めるよ.
インストールの流れはこんな感じ.
1. インストールCDの起動
2. ネットワーク設定
3. ディスクの準備
4. インストールファイルの準備
5. ベースシステムの準備
6. カーネル設定
7. システム設定
8. 必要なシステムツールのインストール
9. ブートローダ設定
10. 締め括り
1. インストールCDの起動
インストールCDをダウンロードして起動する
Gentoo Linux -- Gentoo Linux Mirrors から適当に近いミラーサイトを選ぶ.
インストールCDのisoは releases/x86/autobuilds/current-iso にある.
今回はVirtual BoxのVM上にインストールするので,VMにiso読み込ませて起動する.
なんか押せって書いてあるので,適当にENTER押す.
でプロンプトが出てくる.
2. ネットワーク設定
既に繋がってるかもよ
「もしかしたらネット既に繋がってるかもよ!」なんてハンドブックさんが言うものだから,確認する.
# /sbin/ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:260 (260.0 B) TX bytes:260 (260.0 B)
そんなことなかった.
接続設定する
net-setupスクリプトで設定すると簡単らしい.
# net-setup eth0
こんな画面が立ち上がって,色々聞かれるので答える.
2. My network is wired 1. Use DHCP to auto-detect my network settings
今回はDHCP使うよ.
設定がすんだら,もう一度.
# /sbin/ifconfig eth0 Link encap:Ethernet HWaddr ..... inet addr: ..... inet6 addr: ..... ..... lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host .....
eth0があらわれた!!
# ping -c 3 www.gentoo.org PING www-bytemark-v4v6.gentoo.org (89.16.167.134) 56(84) bytes of data.
繋がってるね.
3. ディスクの準備
パーティション構成を考える
ハンドブックと同じ構成にする.
パーティション | ファイルシステム | サイズ | 種別 |
/dev/sda1 | ext2 | 32M | ブートパーティション |
/dev/sda2 | (swap) | 512M | スワップパーティション |
/dev/sda3 | ext3 | 残り全部 | ルートパーティション |
fdiskを起動する
fdiskを起動する.
現在のパーティション情報を表示するにはpコマンド.
# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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: 0x37e43fb4 Device Boot Start End Blocks Id System
当然だけど何もないね.まっさらやで.
パーディションを作成する
まずはブートパーティション.
新規パーティション作成はnキーを押す.
Command (m for help): n
プライマリパーティションなのでpキーを押す.
Command action e extended p primary partition (1-4) p
1番目のパーティションなので1キー.
パーティションの開始位置はデフォルトで良いのでENTERキー.
ブートパーティションのサイズは32Mの予定なので,+32M.
Partition number (1-4, default 1): 1 First secter (2048-10485759, default 2048): <ENTER> Using default value 2048 Last secter, +sectors or +size{K,M,G} (2048-10485759, default 10485759): +32M
pキーで追加されてる確認する.大丈夫そうだ.
Command (m for help): p Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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: 0x37e43fb4 Device Boot Start End Blocks Id System /dev/sda1 2048 67583 32768 83 Linux
ブートパーティションなので,ブート可能にする設定を.
aキーを押した後,ブート可能にしたいパーティション番号を入力する.
Command (m for help): p Partition number (1-4): 1
次に,スワップパーティションを作成する.
新規パーティション: n
プライマリパーティション: p
パーティション番号: 2
作成開始位置: < ENTER >
パーティションサイズ: +512M
This is スワップだぜ,な設定をするにはtキー.
対象パーティション番号を入れた後,パーティションタイプをLinux swapに対応する82を入力する.
Lキーを押すとタイプ一覧が見られる.
最後に,ルートパーティションを作成する.
新規パーティション: n
プライマリパーティション: p
パーティション番号: 3
作成開始位置: < ENTER >
パーティションサイズ: < ENTER > (残り全部を割り当てる)
ちゃんと作れたか確認する.
Command (m for help): p Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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: 0x37e43fb4 Device Boot Start End Blocks Id System /dev/sda1 * 2048 67583 32768 83 Linux /dev/sda2 67584 1116159 524288 82 Linux swap / Solaris /dev/sda3 1116160 16777215 7830528 83 Linux
大丈夫そうだね.
wキーで保存し終了する.
alterがalertに見えてビクッとしたのは内緒.
ファイルシステムを作成する
パーティションにファイスシステムを適用する.
sda1はブートパーティションなのでext2,sda3はルートパーティションなのでext3.
スワップパーティションのsda2はmkswapで初期化した後,swaponで有効にする.すわぽん!!
# mkfs.ext2 /dev/sda1 # mkfs.ext3 /dev/sda3 # mkswap /dev/sda2 # swapon /dev/sda2
マウントする
# mount /dev/sda3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/sda1 /mnt/gentoo/boot
4. インストールファイルの準備
日付の確認をする
先に進める前に、日時をチェックして、更新しておく必要があります。
Gentoo Linux ドキュメント -- Gentooインストールファイルをインストールする
狂った時計は後でおかしな結果が起きる元になります。
ひぃ!
dateの日付表記はMMDDhhmmYYYYらしい.(例: 2012年11月1日12時10分 -> 1101121102012)
# date Wed Oct 31 09:49:50 UTC 2012 # date 1101121102012
stage3 tarball, Portageをインストールする
stage3 tarballは最小限のGentoo環境を含んだアーカイブ,とのこと.
Portageはソフトウェア管理ツールで,DebianのAPTみたいなものという認識であってるのかな.
早速ダウンロードしてくる.
# cd /mnt/gentoo # links http://www.gentoo.org/main/en/mirrors.xml
ミラーサイト一覧が出てくるので,近い所を適当に選ぶ.
Internet Initiative Japan (http)にした.IIJさんお邪魔します.
releases/x86/autobuilds/current-stage3/stage3-i686-20121016.tar.bz2をダウンロード.
snapshots/portage-latest.tar.bz2をダウンロード.
でもって展開する.
# tar xvjpf stage3-i686-20121016.tar.bz2 # tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
ゆったりと待つ.
コンパイルオプションを設定する
# nano -w /mnt/gentoo/etc/make.conf
以下を記述する.
CFLAGS="-O2 -march=i686 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2"
CFLAGSはCの,CXXFLAGSはC++のgccコンパイルオプション.
- O2はレベル2の最適化オプション.
- marchは対象アーキテクチャの指定.
- pipeは,コンパイル時の情報のやり取りにテンポラリファイルじゃなくてパイプを使うオプションらしい.
MAKEOPTSは,パッケージのインストール時にいくつの平行コンパイルを許すかの定義らしい.
目安は(システムのCPU数)+1らしいよ.
5. ベースシステムの準備
ミラーサイトを設定する
Portageでソースコードをダウンロードするにあたって,近い場所なんかを登録しておく.
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
- http://ftp.iij.ad.jp/pub/linux/gentoo/ (Japan: Internet Initiative Japan)
- http://ftp.jaist.ac.jp/pub/Linux/Gentoo/ (Japan: Japan Advanced Institue of Science and Technology)
を選択.
rsyncサーバのミラーも登録しておく.
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
を選択.
/procと/devファイルシステムをマウントする
マウント先でも今の環境の情報を参照できるようにする.
# mount -t proc none /mnt/gentoo/proc # mount --rbind /dev /mnt/gentoo/dev
新しい環境に入る
今まで作業していたインストールCD上の環境から,自分が作成した環境へと移る.
# chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # export PS1="(chroot) $PS1"
おめでとうございます!あなたは自分のGentoo Linux環境に入ることができました。
Gentoo Linux ドキュメント -- Gentooベースシステムのインストール
ありがとうございます!!
6. カーネル設定
タイムゾーンの設定をする
色々するちょっとその前に,タイムゾーンの設定をしておく.
# ls /usr/share/zoneinfo # cp /usr/share/zoneinfo/Japan /etc/localtime
日本があったよ!
カーネルソースをインストールする
emergeを唱えるだけで落っこちてくるらしい.すごい.
# emerge gentoo-sources # ls -l /usr/src/linux lrwxrwxrwx 1 root root 18 Nov 5 08:04 /usr/src/linux -> linux-3.5.7-gentoo/
カーネルのバージョンは3.5.7らしい.
カーネルの設定をする
マニュアルでカーネルをコンフィギュレーションすることは、 Linuxユーザが行うべきオペレーションの中で、最難関と見なされることがあります。 これは、それほど真実ということでもありません。カーネルのコンフィギュレーションを数回こなせば、 難しかったことを思い出すことすらないでしょう。;)
Gentoo Linux ドキュメント -- カーネル設定
複数回...初見はここで失敗するということか...
カーネルに色々設定するにはmake menuconfigするらしい.
# cd /usr/src/linux # make menuconfig
まずはCPUの種類を選択する.
Processor type and features ---> Processor family (Pentium-Pro) ---> (X) Core 2/newer Xeon
Core iシリーズはこの選択肢らしいよ.
次に,扱いたいファイルシステムを選択する.
File systems ---> <*> Second extended fs support <*> Ext3 journalling file system support <*> The Extended 4 (ext4) filesystem <*> Reiserfs support <*> JFS filesystem support <*> XFS filesystem support
下の3つはいらない気がするけど,とりあえずハンドブックと同じ設定にする.
設定はこれでおわり.
コンパイル and インストール!
いよいよカーネルのコンパイル,インストール!
# make && make modules_install
どきどき...
キタ━━━━(゚∀゚)━━━━??
怒られてないから多分上手く行ったはず!!
カーネルイメージを/bootにコピーする.
# cp arch/i386/boot/bzImage /boot/kernel-3.5.7-gentoo-r1
7. システム設定
ファイルシステム構成を設定する
fstab使って各パーティションの役割とか設定していく.
# nano -w /etc/fstab /dev/BOOT /boot ext2 noauto,noatime 1 2 /dev/ROOT / ext3 noatime 0 1 /dev/SWAP none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 /dev/fd0 /mnt/floppy auto noauto 0 0 /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sda3 / ext3 noatime 0 1 /dev/sda2 none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,user 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0
上が編集前,下が編集後.
BOOT,ROOT,SWAPの部分にそれぞれ対応するパーティションを書く.
CDROMはroot以外でも使えるようにuserに変更した.
フロッピーは使う予定が皆無なのでコメントアウト.
マシンのホスト名を設定する
# nano -w /etc/conf.d/hostname hostname="genta"
命名じぇんたくん!!
「げんた」じゃなくて「じぇんた」くん!!
ネットワークの設定をする
「ねえ、もうそれは済んでるんだけど」って気持ちになる前に、Gentooのインストールの初めに設定したネットワークは単にインストール用のものだったことを思い出してください。今ここで自分のGentooシステムに永続的なネットワーク設定をしていきましょう。
Gentoo Linux ドキュメント -- システム設定
最初に設定したのはインストールCD環境下のもので,これから行なう設定は自分のマシン環境下ということ.
とりあえずDHCPクライアントをインストールしておく.
# emerge dhcpcd
ネットワーク設定の編集をするよ.
# nano -w /etc/conf.d/net config_eth0="dhcp"
DHCPはらくちんだなぁ.
ブート時自動でネットワーク接続するように設定する.
# cd /etc/init.d # ln -s net.lo net.eth0 # rc-update add net.eth0 default
rootのパスワードを設定する
# passwd
これだけ.
システム情報を設定する
キーボードのキーマップをjp106に変える.
# nano -w /etc/conf.d/keymaps keymap="jp106"
ハードウェアクロックにUTCを使っていないのなら、clock="local"をこのファイルに追加する必要があります。 さもなければ、いくらか時間がずれてしまうでしょう。
Gentoo Linux ドキュメント -- システム設定
とのことなので.
# nano -w /etc/conf.d/hwclock clock="local"
8. 必要なシステムツールのインストール
必要そうなものをぽつぽつインストールする簡単なお仕事.
syslog-ng
システムのログを取ってくれる.
# emerge syslog-ng # rc-update add syslog-ng default # emerge logrotate
Cronデーモン
定期的に何かの処理を行いたい場合に便利.
# emerge dcron # rc-update add dcron default # crontab /etc/crontab
mlocate
locateでファイル検索をするための,インデックスを作成してくれる.
# emerge mlocate
9. ブートローダ設定
システムを起動するとき,カーネルを立ち上げてくれる存在,ブートローダ.
GRUBのインストール
# emerge grub # nano -w /boot/grub/grub.conf title Gentoo Linux 3.5.7-r1 root (hd0,0) kernel /boot/kernel-3.5.7-gentoo-r1 root=/dev/sda3 title Gentoo Linux 3.5.7-r1 (Rescue) root (hd0,0) kernel /boot/kernel-3.5.7-gentoo-r1 root=/dev/sda3 init=/bin/bb
1つ目は通常起動用,2つ目は非常時用.
設定が終わったら,いよいよインストール.
# grep -v rootfs /proc/mounts > /etc/mtab # grub-install --no-floppy /dev/sda
システムを再起動する
全てのパーティションをアンマウントして再起動する.
# exit # cd # umount -l /mnt/gentoo/dev{/shm,/pts,} # umount -l /mnt/gentoo{/boot,/proc,} # reboot
インストールCD抜くのを忘れない.
どきどき...
おぉ?
おぉ!!じぇんたくん!!