外付けHDDのUbuntu9.04用のブートCD

[ 備忘録 ] 結論。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が出来た。

コメントを残す

メールアドレスが公開されることはありません。