再假設 /tmp/knoppix 中開了 mnt. cdrom 及 src 三個目錄
因為 knoppix 是用 cloop 這個 driver, 所以先到 knoppix的網站上抓 cloop 的 source code, 或是直接按這裡下載
下載回來之後, 解開來, 直接在裡面 make 就可以得到 cloop.o 這個 driver 和 create_compressed_fs/extract_compressed_fs 這兩支工具程式
再來, 解壓縮的方式有兩種:
第一種 把 knoppix 的 CD 給 mount 上來(假設 mount 在 /cdrom), 然後
- 代碼: 選擇全部
extract_compressed_fs /cdrom/KNOPPIX/KNOPPIX > /tmp/knoppix/knoppix_src.iso
就可以把原光碟上的 KNOPPIX 這個壓縮檔解開到 /tmp/knoppix/knoppix_src.iso
然後
- 代碼: 選擇全部
mount -t iso9660 -o ro,loop /tmp/knoppix/knoppix_src.iso /tmp/knoppix/mnt
現在東西都在 /tmp/knoppix/mnt 中了, copy 出來先
- 代碼: 選擇全部
cp -a /tmp/knoppix/mnt/* /tmp/knoppix/src
cp 的 -a 參數不要省喔! 因為我們要保留原檔案的 permission
第二種把 knoppix 的 CD 給 mount 上來(假設 mount 在 /cdrom), 然後
- 代碼: 選擇全部
mknod /dev/cloop b 240 0
insmod <path_of_cloop>/cloop.o file=/cdrom/KNOPPIX/KNOPPIX
mount -o ro /dev/cloop /tmp/knoppix/mnt
這樣就 mount 上來了, 然後用上面一樣的方法把東西 copy 出來!
再過來是要變更它的內容了, 先 chroot 過去
- 代碼: 選擇全部
chroot /tmp/knoppix/src /bin/bash
然後就就可以用 apt-get 或 dpkg 或任何你習慣的方式更動它的內容, 改完後
- 代碼: 選擇全部
apt-get clean
exit
清理一下不必要的檔案, 然後離開 chroot 的環境
要再把檔案包回原來的壓縮格式, 請確定你的 virtual memory 足夠, 然後
- 代碼: 選擇全部
mkisofs -R -l -V "KNOPPIX iso9660 filesystem" -hide-rr-moved -v /tmp/knoppix/src | create_compressed_fs - 65536 > /tmp/knoppix/KNOPPIX
這就是要換掉原光碟中的那個 KNOPPIX/KNOPPIX 的檔案
再來呢
- 代碼: 選擇全部
cp -a /cdrom/* /tmp/knoppix/cdrom
mv /tmp/knoppix/KNOPPIX /tmp/knoppix/cdrom/KNOPPIX
mkisofs -l -r -J -V "KNOPPIX-your_name" -hide-rr-moved -v -b KNOPPIX/boot-en.img -c KNOPPIX/boot.cat -o /tmp/knoppix/knoppix_dst.iso /tmp/knoppix/cdrom
那個 /tmp/knoppix/knoppix_dst.iso 就是可以用來燒錄的檔案了!
其它事項:
1. 在壓縮時, virtual memory 一定要夠, 粗略看了一下 code, create_compressed_fs 會把整個壓縮過的 image 一個 block 一個 block 用 linking list 的方式存放在記憶體中, 然後最後再寫到硬碟上.... 所以至少要有 700MB 左右的 virtual memory 空間....
2. 最後產生 iso 檔時, 是用 KNOPPIX/boot-en.img 當開機的 image, 當然, 這個也是可以改的....
3. 最後 mkisofs 會告訴你做出來的檔案多大, 以一般常用的片子, 80min 的最大只能燒到 700MB, 記得 check 一下喔!
實在不是很會表達, 囉哩囉嗦地說了這麼一堆, 希望您不要覺得我很煩才好....