2011年4月24日 星期日

改裝 Ubuntu

1. 使用超級使用者登錄, 事先安裝好 squashfs-tools
sudo su
apt-get install squashfs-tools
如果要製作 Grub2 boot CDROM時, 需要安裝 xorriso
apt-get install xorriso

2. 製作 4G 映像檔
dd if=/dev/zero of=ubuntu.img bs=1k count=1 seek=3999999
p.s. 該映像檔案(ubuntu.img)盡可能放在 ext3 或 ext4 系統上, 速度會比較快, 千萬不要放在 ntfs 上(有可能在操作 unsquashfs 時, 因速度慢, 造成當機的假像).
3. 轉換成 ext4 格式映像檔
mkfs.ext4 ubuntu.img

4. 掛載檔案系統, 進入工作目錄
mkdir rootfs
mount -o loop ubuntu.img rootfs
cd rootfs

5. 解出在 CDROM 上的 squashfs 檔案系統, 會自動產生 squashfs-root
unsquashfs /cdrom/casper/filesystem.squashfs

6. 複製網路設定檔 hosts, resolv.conf
cp /etc/hosts squashfs-root/etc
cp /etc/resolv.conf squashfs-root/etc

7 bind /dev, 並 chroot
mount --bind /dev squashfs-root/dev
chroot squashfs-root

8.掛在系統特殊目錄
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

9. 加加減減 apt-get install, 或 apt-get purge
我想增加的 package計有
squashfs-tools
xorriso
bareftp
proftpd
gerbv
qcad
freemat
geany
apache2
php5
mysql-server
php5-mysql
php5-curl
php5-sqlite
php5-sybase
php5-gd
qemu

10. 刪除不必要檔案, 並退出 chroot
rm -f /root/.bash_history
rm -f /etc/hosts
rm -f /etc/resolv.conf
rm -f /tmp/*
rm -f /var/tmp/*
apt-get clean
umount /dev/pts
umount /sys
umount -lf /proc
exit
umount -lf squashfs-root/dev

11.產生iso工作目錄,並準備製作成Ubuntu所需的檔案放入casper目錄內
mkiso /iso
mkdir /iso/casper
mkdir /iso/boot
mkdir /iso/boot/grub
cp /cdrom/casper/initrd.lz /iso/casper
cp /cdrom/casper/vmlinuz /iso/casper
cp /cdrom/.disk /iso


mksquashfs squashfs-root /iso/casper/filesystem.squashfs
chroot squashfs-root dpkg-query -W --showformat='${Package} ${Version}\n' > /iso/casper/filesystem.manifest

12. 編輯 /iso/boot/grub/grub.cfg
menuentry "Remaster Ubuntu" {
linux /casper/vmlinuz boot=casper locale=zh_TW.UTF-8 quiet splash
initrd /casper/initrd.lz
}

13 將 /iso目錄轉換,產生可開機CDROM映像檔
grub-mkrescue -o new.iso /iso

14.如有需要將new.iso燒成cdrom或DVD或使用qemu來測試
qemu -boot d -cdrom new.iso

沒有留言: