Ubuntu14.04LTSのCasperBootなイメージをいじる。

Casperを使うのがLiveCDで、以下の手順でLiveCDいじることが出来る。
目的は以下の通り

  • ライブCDを起動した時点でSSHで入れるようにしたい。
    • これは画面のない、または表示ができないマシンのセットアップに重宝する。
    • ただ、vncserver経由でのUnity起動がうまく行かないのでインストーラ正常に作動しない。ここが何とかなれば面白いのだが・・・

実際のコマンド

mkdir mnt
sudo mount -o loop ubuntu-14.04.1-desktop-amd64.iso mnt
mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit
さてCapserイメージ内に入る
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo mount --bind /sys/ edit/sys
sudo mount --bind /proc/ edit/proc
sudo mount --bind /dev/ edit/dev
sudo mount --bind /dev/pty edit/dev/pty
sudo chroot edit

このあとapt-getしてssh入れて、ユーザ作る。
sshサーバやらなんやら自動起動設定にもしてく

後しまつと起動用ISOファイルの作成
sudo umount edit/dev/pty
sudo umount edit/dev
sudo umount edit/sys
sudo umount/ edit/proc
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -b 
printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04.1-desktop-amd64-custom.iso .

ubuntu-14.04.1-desktop-amd64-custom.isoを起動用USBメモリに焼けば作業完了

余談

WindowsタブレットのファックなUEFIの仕様への対応