いずれ消え行く無駄な情報を、密やかに発信する装置。つまり日記。
PT2を購入したため、FreeBSDからLinuxに乗り換えました。乗り換えたLinuxのディストリビューションはgentooです。この記事は導入時のメモをまとめたものです。
導入したハードウェアのスペックは以下の通りです。
M/B:BIOSTER GTA880GB+ CPU:Phenom II X6 1065T 2.9GHz MEM:DDR3-1066 16GB Storage: [SSD]Intel X25-V 40GB [HDD]Seagete 2TB x4
インストール用のLiveCDを使用せずに、USBメモリにLiveCDのデータを書きこんでインストールを行いました。Gentoo Linux LiveUSB HOWTOを参考にしました。
インストール作業はGentoo Linux x86 ハンドブックを見ながら行いました。
コンソールでインストール作業を行うのは不便なので、LiveUSBからブート後、コンソールが立ち上がったらsshdを起動。dhcpサーバーがネットワーク内にあれば、gentooのLiveCDはdhpcで自動的にネットワーク設定を行ってくれるため、特に設定をせずに起動することができます。
また同時にインストール時のrootのログインパスワードも設定しました。
# passwd # /etc/init.d/sshd start
40GBの容量のSSDにシステムをインストールしたいと思います。/bootや/usrなどでパーティションを分けずに/のみで運用する予定のため、/dev/sda1を1つ作って書き込みを行いました。
また、スワップディスクはメモリが16GBもあるため必要無しと判断して作成しません。
# cfdisk /dev/sda Disk has been changed. WARNING: If you have created or modified any DOS 6.x partitions, please see the cfdisk manual page for additional information.
ファイルシステムはext4としました。本当ならばbtrfsが良かったのですが、現時点では開発段階なため見送りました。
ラベル名はROOT。
# mkfs.ext4 -L ROOT /dev/sda1 mke2fs 1.41.9 (22-Aug-2009) Filesystem label=ROOT OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 2444624 inodes, 9769520 blocks 488476 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 299 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
ファイルシステムを作成後マウント。SSDでtrimコマンドを使用するためにdiscardオプションを付けました。
# mount -o discard /dev/sda1 /mnt/gentoo
http://ftp.iij.ad.jp/pub/linux/gentoo/releases/amd64/current-stage3/からstage3-amd64-20110106.tar.bz2を、http://ftp.iij.ad.jp/pub/linux/gentoo/releases/snapshots/current/からportage-latest.tar.bz2をダウンロードし、展開しました。
# cd /mnt/gentoo/ # links http://www.gentoo.org/main/en/mirrors.xml # tar xvjpf stage3-amd64-20110106.tar.bz2 # tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr # rm stage3-amd64-20110106.tar.bz2 # rm portage-latest.tar.bz2
ついでにportageを取得するミラーサイトの選択をしておきました。
# mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
chrootしてインストールした環境に入る前に、dnsのresolv.confを書き換えます。そして、/procと/devを使用できるようにしました。
# cp -L /etc/resolv.conf /mnt/gentoo/etc/ # mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev
そしてインストールした環境に入ります。
# chroot /mnt/gentoo /bin/bash # env-update >>> Regenerating /etc/ld.so.cache... l# source /etc/profile
先ほど、最新のportageを取得したので無意味ですが、念のためemergeの更新をしました。
# emerge --sync
次にUSEフラグの設定を行いました。まず、現在設定されているのUSEフラグを出力します。
# emerge --info Portage 2.1.9.25 (default/linux/amd64/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.34-gentoo-r12 x86_64) ================================================================= System uname: Linux-2.6.34-gentoo-r12-x86_64-AMD_Phenom-tm-_II_X6_1065T_Processor-with-gentoo-1.12.14 ・ ・(略) ・ USE="acl amd64 berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 mmx modules mudflap multilib ncurses nls nptl nptlonly openmp pam pcre perl pppd python readline session sse sse2 ssl sysfs tcpd unicode xorg zlib" ・ ・(略) ・
USEフラグの個々の詳細までは分かりませんが、パッと見でいらないものを設定から外しました。ついでに、コンパイルオプションの設定も行いました。使用したCPUはPhenom X6なので、7スレッド同時にコンパイルが走るように指定。
/etc/make.confを編集。
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. CFLAGS="-march=amdfam10 -O3 -pipe" CXXFLAGS="${CFLAGS}" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="x86_64-pc-linux-gnu" # These are the USE flags that were used in addition to what is provided by the # profile used for building. USE="mmx sse sse2 -gtk -gnome -kde -xorg -cups -pppd" MAKEOPTS="-j7" GENTOO_MIRRORS="http://ftp.iij.ad.jp/pub/linux/gentoo/"
ロケールも設定をしておきます。/etc/locale.genを編集しja_JP.UTF-8 UTF-8のコメントアウトを外しました。
# locale-gen * Generating 1 locales (this might take a while) with 1 jobs * (1/1) Generating ja_JP.UTF-8 ... [ ok ] * Generation complete
タイムゾーンの設定は以下のコマンドで行いました。
# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
まず、カーネルソースの取得とカーネルコンパイル用のプログラムをインストールした後、コンフィグメニューを表示するオプションを付けてカーネルをコンパイルしました。
# emerge gentoo-sources # emerge genkernel # genkernel --menuconfig all
コンパイルオプションは、以下のように設定しました。ルートファイルシステムにext4を使用しているため、カーネルに組み込んでおく必要があります。File Systemの項目のext4を有効にしました。
<*> The Extended 4 (ext4) filesystem [*] Ext4 extended attributes (NEW) [*] Ext4 POSIX Access Control Lists [ ] Ext4 Security Labels [ ] EXT4 debugging support (NEW)
LABELを指定しているので、デバイス名で指定せずにラベル名でルートがあるデバイスを指定しました。
/etc/fstabを編集。
LABEL=ROOT / ext4 discard,relatime,noatime 0 1 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
grubの設定は以下のようにしました。ディスクにLABELを付けているので、デバイス名ではなくラベル名でrootの場所を教えています。
default 0 timeout 10 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Gentoo Linux 2.6.36-r5 root (hd0,0) kernel /boot/kernel-genkernel-x86_64-2.6.36-gentoo-r5 root=/dev/ram0 real_root=LABEL=ROOT initrd /boot/initramfs-genkernel-x86_64-2.6.36-gentoo-r5