[ 備忘録 ] 結論。Ubuntuを8.04から9.04にアップするのに合わせて,ブート用のCDも作り直せばよい。ブート用CDにもカーネルコードが入っているのか,これがマッチしないと,一見ブートしているように見えても,かな漢字変換が起動しないとか,不具合が出てくる。ブート用CDを作るためのスクリプトは以前のもので良かった。9.04を外付けのUSB HDDにインストールしたら,9.04のライブCDで起動したあと,次のスクリプト(boot-hdd.sh という名前で保存したとして)を置いたディレクトリーに移動して,
sh ./boot-hdd.sh sdb*
などとする。sdb* の部分は,自分の環境に応じて変更のこと。ワタシの場合,sdb1 だった。このスクリプトは前に8.04用のブートCDを作るときに,Ubuntuのフォーラムでもらってきたもの。どういうわけか,元のページはなくなっているみたいだ。
#!/bin/sh
mkdir usb
sudo mount /dev/$1 usb
sudo sync
pn=`echo $1 | cut -c4-`
upn=`expr $pn - 1`
uid=`sudo vol_id --export /dev/$1 | grep UUID= | cut -c12-`
cat > menu.org < scripts/local-bottom/02xconfig < /root/etc/X11/xorg/pcid
sleep 0.2
num=0
for file in \`chroot /root /bin/ls /etc/X11/xorg | chroot /root /bin/grep pcid-\`; do
dpc=\`chroot /root /usr/bin/diff -q /etc/X11/xorg/\$file /etc/X11/xorg/pcid\`
if [ -z "\$dpc" ]; then
num=\`echo "\$file" | cut -c 6-\`
fi
done
if [ \$num -gt 0 ]; then
chroot /root /bin/cp -f /etc/X11/xorg/xoc-\$num /etc/X11/xorg.conf
else
mount -n -o bind /sys /root/sys; mount -n -o bind /proc /root/proc; mount -n -o bind /dev /root/dev
DEBUG_XORG_PACKAGE=1 DEBUG_XORG_DEBCONF=1 chroot /root /usr/sbin/dpkg-reconfigure -fnoninteractive --no-reload xserver-xorg
umount /root/sys; umount /root/proc; umount /root/dev
fi
chroot /root sed -i -e 's/pc105/jp106/' -e 's/"us"/"jp"\n\tOption\t\t"XkbOptions"\t"lv3:ralt_switch"/' /etc/X11/xorg.conf
exit
exit 0
EOF
sudo chmod +x scripts/local-bottom/02xconfig
mv scripts/local-bottom/ntfs_3g scripts/local-bottom/01ntfs_3g
find . | cpio -o -H newc | gzip > ../initrd.img-$knv-modif
cd ..
sudo cp -f initrd.img*modif usb/boot/
sudo sync
mkdir -p bootcd/boot/grub
cp usb/boot/vmlinuz-* bootcd/boot/
cp initrd.img*modif bootcd/boot/
cp usb/boot/grub/* /usr/lib/grub/i386-pc/stage2_eltorito bootcd/boot/grub/
sed -i -e 's/hd0,[0-9]/cd/' -e 's|/boot|\(cd\)/boot|' bootcd/boot/grub/menu.lst
sudo genisoimage -R -U -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o hdd-boot.iso bootcd
sudo mkdir usb/etc/X11/xorg
sudo chmod -R 755 usb/etc/X11/xorg
sudo sed -i -e '/^xres/d' -e '/^yres/d' usb/etc/usplash.conf
cp usb/etc/init.d/rc.local ./
echo ' ' >> rc.local
echo 'rm -f /etc/X11/xorg.conf.20*' >> rc.local
sudo cp -f rc.local usb/etc/init.d/
sudo sync
cat > xorg-edit.sh < xorg-save.sh <
これを実行すると,boot-hdd.iso ができるので,これをCDに焼けば良い。これで,ブート用のCDが出来た。