Linux LiveCD 的制作


Knoppix,只需一張光盤, 就能夠讓我們在任何場所,隨心所欲地使用 Linux1, 打破了操作系統只能先安裝再使用的傳統概念。 Knoppix 最初的設計用途是教學,但由於這項技術很受歡迎,使得 LiveCD 這項技術不斷發展, 現在它的應用已經非常廣泛,涉及:系統演示、系統急救、網絡防火牆、產品宣傳、游戲,等等。

雖 然有眾多的 LiveCD 供我們挑選,但有時候找一張完全滿足個人需要的版本還真是不容易。 不過沒關系,因為絕大多數 LiveCD 采用的都是開放源碼的自由軟件,這讓我們完全可以自己動手, 按自己要求制作 LiveCD。這篇文章就是示范如何在已有 LiveCD 的基礎上定制符合自己要求的 LiveCD。

2

  • 要有網絡瀏覽器。便於通過 WebMail 查閱郵件。
  • 要能打開 MS Word 和 pdf 格式的文件。
  • 容量不超過 200M,可以刻錄到 MiniCD 上,便於攜帶。

Knoppix 是最有名的 LiveCD,估計很多人都會首先想到從它入手,但是 Knoppix 采用 KDE 作為桌面環境, 按照上面最后一項的要求,Knoppix 怎么樣都無法裁減到 200M 以內,因此不合適。

經過尋找和比較各種已有的 LiveCD,發現 Morphix 符合要求,它與 Debian,Knoppix 一脈相承,采用模塊化設計是它的主要特點, 就是將 LiveCD 的各個部分分解成模塊,可以隨意組合成不同用途的 LiveCD。 由於可以選擇輕量級的桌面管理器,LiveCD 的尺寸能容易控制在 200M 以內。

3 作為基礎, 你可以從 SourceForge.net 的 morphix 項目 下載

4

# mkdir -p mod/light# module-extract iso/Morphix/mainmod/light.mod mod/light

 

  • 掛載 /proc

    # mount --bind -t proc /proc mod/light/proc

  • chroot

    # chroot mod/light

  • 添加中文 locale。在下載的 Morphix LiveCD 里面,locale 只有 C 和 POSIX, 所以要修改 /etc/locale.gen 文件,包含下列內容

    en_US ISO-8859-1en_US.UTF-8 UTF-8zh_CN GB2312zh_CN.GB18030 GB18030zh_CN.GBK GBKzh_CN.UTF-8 UTF-8

    接着執行 locale-gen 命令生成新的 locale。

  • 修改 resolv.conf,聯通網絡。例如,使用

    # echo "nameserver 202.96.134.133" > /etc/resolv.conf

  • 更改默認的 debian 軟件包源指向離自己最近的鏡像。例如,我使用 cn99 的源

    deb http://debian.cn99.com/debian unstable main contrib non-free

  • 更新軟件包。按照自己的定制要求,添加和刪除軟件包。

    # apt-get update# apt-get install 一些軟件# apt-get remove --purge 不需要的軟件# apt-get upgrade# apt-get clean

  • 清理空間。為了方便清理,先安裝 deborphan 這個工具,然后用下面命令清理:

    # deborphan | xargs apt-get -y --purge remove

  • 清空軟件包緩存

    # cd /var/lib/apt/lists/# rm -f *# touch lock# cd /var/cache/apt/# rm -f *# cd /var/tmp/# rm -f *

  • 清理其他的空間。為了最大程度地節約空間,可以將 /usr/share/locale 目錄下, 不使用語言的 mo 文件刪除。另外在 /usr/share/doc, /usr/share/man 下面也有這樣的文件, 也可以刪除。
  • 更新文件名數據庫

    # updatedb

  • 恢復配置

    # rm /etc/resolv.conf# touch /etc/resolv.conf# umount /proc

  • 壓制 MainModule

    # module-builder -t ext3 mod/light iso/Morphix/mainmod/light.mod

morphix 網站上下載它提供的內核源碼。如果已經將 morphix 添加到 source.list,使用 apt-get 就能方便地得到所需的文件。

除了 kernel-source 之外,LiveCD 還需 cloop 和 cowloop 這兩個額外的內核模塊,cloop 在 Debian 的源里面的 名稱為 cloop-src,而 cowloop 則需要到 cowloop 網站下載。

編 譯內核的方法和步驟,跟平時一樣,可以參閱 Debian 參考手冊完成。最后可以生成 deb 包格式,也可以使用 Linux 的普通方式。 morphix 提供了一個腳本 morphix-changekernel 進行內核替換,但它是針對 2.4 的內核, 不能直接用於現在的 2.6 內核,不過我們可以拿它作為參考,了解整個替換過程。

其他需要注意的是,自己編譯的內核與模塊的 gcc 版本和 體系架構要保持一致,這點可以通過使用 strings 命令查看 vermagic 來確定。

修改 bootsplash

LiveCD 啟動時的畫面也能定制,可以換成與自己 LiveCD 主題匹配的說明和圖像。

啟動畫面圖像保存在 LiveCD 根目錄 boot/miniroot.gz 文件里面,將它解壓,掛載到一個臨時目錄

# mkdir -p tmp/miniroot# gzip -d miniroot.gz# mount -o loop miniroot tmp/miniroot

啟動時的圖像和設置位於 bootsplash 目錄,我們可以修改 config 中的配置文件, 也可以直接替換 images 目錄下面的文件。

這些圖像是以 jpeg 格式保存,但 bootsplash 當前只支持 16bit 色,如果你手頭的 jpeg 是 24bit 色, 需要先進行轉換處理。

下面是采用 netpbm 軟件包里面的工具完成轉換工作。

$ jpegtopnm image24.jpg |ppmtojpeg > image16.jpg

壓制 iso 文件

定制工作完成以后,用下面命令就可以生成可以啟動的 iso 文件

# mkisofs -pad -l -r -J -v -V "SoForge" -b boot/grub/iso9660_stage1_5 \-c base/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \-hide -rr -moved -o SoForge.iso iso/Morphix


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM