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メモリに焼けば作業完了