カスタムUbuntuが動いた

カスタムUbuntuが動いたから、構築のメモ書き

ご覧の方へお願い
この方法はまっちゃんが試した結果です。間違っている可能性がありますので実行は自己責任でお願いします。誰も見ないだろうけど、一応ね。
どこか間違っていたらツッコミ願います。

ベースイメージ
  Ubuntu9.10-ja
使用ツール

ツール名 用途
squashfs-tools HDDイメージを展開するツール
genisoimage ブータブルISOの作成
VirtualBox 作成環境の保持&作成したISOのテスト

手順(ISOは/media/cdrom0/にマウントされてる)

mkdir  extract-cd

作業用ディレクトリを作成し、

rsync --exclude=casper/filesystem.squashfs -a -v /media/cdrom0/ extract-cd

HDDイメージ以外をコピーする。

unsquashfs -d edit mnt/casper/filesystem.squashfs

HDDイメージを展開してeditディレクトリに入れてもらう。

sudo cp /etc/hosts edit/etc
sudo cp /etc/resolv.conf edit/etc

でネットワーク周りの設定をコピー

sudo chroot edit

editディレクトリをルートに切り替えて

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

必要なものをマウント
あとは、apt-getとかで必要なもの(linux-image-$(uname -r)とか)を入れて。

sudo rm /etc/hosts
rm /etc/resolv.conf

コピーしたネットワークの設定を廃棄。

umount /proc
umount /sys
umount /dev/pts
exit

アンマウント&脱出。"umount /proc"が失敗したら、"umount -lf /proc"で強制アンマウントできる。
脱出したらHDDイメージをまとめてISOへ。その前に

chmod +w extract-cd/casper/filesystem.manifest
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 -ie '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop

ちょっとはみ出した…HDDイメージの中のファイルをリストアップ。

sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

HDDイメージの作成。30分以上かかるから、暇つぶしの何かがいるかも。

sudo cp edit/vmlinuz extract-cd/casper/vmlinuz
sudo cp edit/inird.img extract-cd/casper/initrd.gz

カーネルイメージをコピーする。
ここで何回かはまった。Ubutnu9.10ではinitrdはgzではなくlzを使うっぽいので再圧縮。

mv extract-cd/casper/initrd.lz inird.lz.orig
gzip -dc extract-cd/casper/initrd.gz | lzma -7 > extract-cd/casper/initrd.lz
rm -f initrd.lz.orig
rm -f extract-cd/casper/initrd.gz

あとは、正規ディスク確認用MD5を書き換えて

sudo /bin/sh -c "rm extract-cd/md5sum.txt"
sudo /bin/sh -c "(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)"

ISOに焼き込んだらできあがり

mkisofs -iso-level 4 -allow-lowercase -L -relaxed-filenames -no-iso-translate -N
 -b "isolinux/isolinux.bin" -hide boot.catalog -hide "isolinux/isolinux.bin"
-no-emul-boot -boot-info-table -V "CustuUbuntu" -o CustuUbuntu.iso extract-cd

注意事項

・apt-getでなにか取得したらapt-get cleanを忘れないように。
・HDDイメージの展開先はパーミッションが設定できるファイルシステムでマウントさせてるドライブに。さもなくばISOイメージ起動中にパーミッションエラーで落ちる。

/etc/sudoers is mode 0777, should be 0440

こんな感じのエラー
・vmlinuzとinitrd.imgはchrootしたあとで"apt-get install linux-image-$(uname -r)"を実行すると自動生成される。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください