ESXi上で仮想マシンテンプレートの構築 (その2 カーネルのコンパイルとGrubのインストール)

作業日: 30 Apr. 2013

本記事の以下の作業は、chroot環境で実行する。chroot環境で無い場合は、

sudo /mnt/lfs/chroot.sh

を実行する。

Linuxカーネルのコンパイル

まずは、コンパイルの準備。

cd /sources &&
tar Jxf linux-3.5.2.tar.xz &&
cd linux-3.5.2 &&
make mrproper &&
make defconfig

make defconfig で一般的なカーネルの設定を呼び出す。

次に、設定を編集する。

make LANG=C LC_ALL= menuconfig

ALFSの時と同様に、文字列が入力できない場合で、文字列の入力が必要な場合は、コンソールから実行するか、設定ファイルをテキストエディタで編集する。

Enable loadable module support
を無効に

Processor type and features -> Processor family
は、環境に合わせて、設定する。
Core 2/Newer Xeon

VMwareでは、SCSIは、
LSI Logic /Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
として認識されている。
Device Drivers -> Fusion MPT device support を有効にする。
展開して、
Fusion MPT ScsiHost drivers for SPI
Fusion MPT ScsiHost drivers for FC
Fusion MPT ScsiHost drivers for SAS
Fusion MPT misc device (ioctl) driver
の4つを有効にする。

VMwareでは、NICは、
AMD PCnet32 PCI
として認識されている。
Device Drivers -> Network device support -> Ethernet driver support ->
AMD PCnet32 PCI support
有効にする。
ついでに、
Device Drivers -> Network device support -> VMware VMXNET3 ethernet driver
も有効にした。

Device Drivers —>
Generic Driver Options —>
Maintain a devtmpfs filesystem to mount at /dev
を有効に

File system —> Second extended fs support
File system —> Ext3 journalling file system support
を有効にする。さらに出てくる子要素を全て有効にする。

File systems —>
Network File Systems:
NFS Client support 
とその子要素の適当なものが選択されていることを確認する。
File systems —>
Network File Systems:
NFS server support —>
NFS server support for NFS version 3 —>
NFS server support for the NFSv3 ACL protocol extension
NFS server support for NFS version 4 (EXPERIMENTAL)
を有効にする。

File systems —>
Kernel automounter version 4 support (also supports v3)
が選択されていることを確認する
File systems —>
Network File Systems —>
CIFS support
を有効にする。子要素はチェックしない。

コンパイルの実行。

make &&
cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.8.10 &&
cp -v System.map /boot/System.map-3.8.10 &&
cp -v .config /boot/config-3.8.10 &&
install -d /usr/share/doc/linux-3.8.10 &&
cp -r Documentation/* /usr/share/doc/linux-3.8.10 &&
cd ../ &&
rm -rf linux-3.8.10

コンパイルしたカーネルや設定ファイルのバックアップを作成する。

mkdir /boot/backup-3.8.10-`date +%Y%m%d` &&
cp /boot/{vmlinuz-3.8.10,System.map-3.8.10,config-3.8.10} /boot/backup-3.8.10-`date +%Y%m%d`

GRUBのセットアップ

8.4. Using GRUB to Set Up the Boot Process に従って、GRUBをセットアップする。

grub-install /dev/sdb &&
cat > /boot/grub/grub.cfg << "EOF"
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5

insmod ext2
set root=(hd0,1)

menuentry "GNU/Linux, Linux 3.8.10" {
        linux /boot/vmlinuz-3.8.10 root=/dev/sda1 ro
}
EOF

起動の確認

この時点で、起動可能なことを確認する。
ESXi側でHDDが無いVMを作成し、LFS用の仮想HDDをコピーし、マウントする。正常にVMが起動すればOK。

後始末

9.1. The End に従って、LFSのバージョンをメモしておく。

echo "SVN-20130429 jhalfs" > /etc/lfs-release

rootパスワードを作成

passwd

ここまで実行

ALFS構築用のソースファイルをバックアップする。ソースファイルは、ファイルサーバーのどこかに置いてあればよく、個別のVMに保存する必要は無い。chroot環境の外から

cp -R /mnt/lfs/sources ~/src-lfs-svn20130429 &&
cd ~ && tar Jcf src-lfs-svn20130429.tar.xz src-lfs-svn20130429 &&
scp src-lfs-svn20130429.tar.xz 192.168.0.11:~

最後にLFS環境構築用の一時ファイルを削除する。chroot環境の外から

sudo rm -rf /mnt/lfs/{jhalfs,sources,src-lfs,tools}

Comments are closed.