製作Fedora Live CD

來源:互聯網
上載者:User
製作Fedora Live CD

 



第一步是擷取 livecd-tools RPM,可從 Zeuthen 的 Fedora 首頁
獲得。直接擷取並安裝 livecd-tools-001-1.i386.rpm,如下所示:

 

$ su -
<Enter root password>
# wget -c http://people.redhat.com/davidz/livecd/i386/livecd-tools-001-1.i386.rpm
# rpm -ivh livecd-tools-001-1.i386.rpm

 

現在應該使用 livecd-creator
命令,不使用任何選項調用該命令可擷取一個簡單的命令列表。

清單 2. livecd-creator 命令提供的選項

$ livecd-creator
No packages specified.

usage: livecd-creator [--help]
[--repo=<name1>,<url1> ...] [--repo=<name2>,<url2>]
--package=<p1> [--package=<p2> ...]
[--exclude-package=<e1>] --exclude-package=<e2> ...]
[--base-on=<path-to-iso-file>]
[--fslabel=<label>]

--help : Print usage and exit
--repo : Path to yum repository
--package : Include this package
--exclude-package : Exclude this package
--base-on : Add packages to an existing live CD iso9660 image
--fslabel : File system label (default: livecd-YYYYMMDD-HHMI)

 

建立核心包的本機存放區庫

另外,您還需要能夠訪問定製 Live CD 上所需工具的 RPM。如果您擁有快速的 網際網路連線,則可在建立 Live CD 之前使用 livecd-creator
命令下載這些 RPM 及其依賴的包。另一個選擇是從 Fedora Core 6 安裝 CD 或 DVD 中複製所有包並建立本地的“核心”存放庫。要建立本機存放區庫,需要 createrepo 工具

清單 3. 安裝 createrepo 工具

# wget -c http://tqmcube.com/files/createrepo-0.4.3-5.1.noarch.rpm
# rpm -ivh createrepo-0.4.3-5.1.noarch.rpm

 

現在建立本機存放區庫,首先從 Core 6 的 5 張 CD 或 1 張 DVD 中複製所有的 RPM,然後使用 createrepo 工具。

清單 4. 建立本機存放區庫

# mkdir /var/www/html/repo/core/
# cp <PATH TO RPMs> /var/www/html/repo/core/
# createrepo /var/www/html/repo/core/

 

執行完最後一條命令要花費些時間,它將建立一個 repodata 目錄。livecd-creator
命令使用此目錄來訪問包。

建立配置包的本機存放區庫

由於要使用 Zeuthen 的包作為 Live CD 的基礎,因此也需要為它們建立本機存放區庫。

清單 5. 建立 LiveCD 包的存放庫

# mkdir base_packages
# cd base_packages
# wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-6-1.i386.rpm
# wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-gnome-6-1.i386.rpm
# wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-desktop-6-1.i386.rpm
# createrepo /root/base_packages

 

跟以前一樣,最後一條命令將產生 repodata 目錄,協助 livecd-creator
定位配置包。

製作 CD

設定好存放庫後,就可輕鬆地建立定製 Live CD 了。livecd-creator
命令產生 ISO 映像,這些映像可被燒製成 CD-R。但是我建議使用虛擬化軟體測試 ISO,而不要實際將它們燒制到物理介質上。有幾種這類軟體可免費獲得,如 VMware Player、QEMU 和 VirtualBox。

最小的 Live CD

要熟悉 livecd-creator
命令的用法,可由建立最小的 Live CD 開始:

清單 6. 建立最小的 Live CD

# livecd-creator --repo=c6,file:///var/www/html/repo/core --package=bash
--package=kernel --package=grub --fslabel=Fedora-minimal-LiveCD

 

此命令要求 livecd-creator
從本機存放區庫中擷取三個包 —— bash、grub 和 kernel,並將它們包含到名為 Fedora-minimal-LiveCD 的 Live CD 中。livecd-creator
命令使用 Fedora 的 YUM 安裝這些包,也因此要安裝指定包依賴的其他應用程式。

執行完該命令要花費些時間,因為它將建立工作區,然後安裝指定的包和它們的依賴項,重新標記 SELinux(Fedora 的安全機制)的工作區,壓縮整個工作區,配置 Live CD bootloader、GRUB,並最終建立 ISO 映像。

恭喜您!您成功建立了您的第一個 Live CD。當然,您尚不能使用它來實現多少功能,因為缺乏設定檔。

帶 GNOME 的 Live CD

既然您已經瞭解了 livecd-creator
命令的用法,現在就可以使用它建立包含 GNOME 的 Live CD 了。

清單 7. 建立帶 GNOME 的 Live CD

# livecd-creator --repo=c6,file:///var/www/html/repo/core
--repo=lcd6,file:///root/base_packages
--package=fedora-livecd-gnome
--repo=e6,http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386
--fslabel=My-Fedora-LiveCD-1

 

這裡,使用本機存放區庫擷取基礎包並指定 CD 應該基於哪個配置包。還要指定 fedora-livecd-gnome
所需的包都應從本地核心存放庫中擷取。fedora-livecd-gnome 中有一些包不在核心存放庫中,這些包將通過給定的 URL
從附加存放庫中擷取。最後,它將建立名為 My-Fedora-LiveCD-1.iso 的 ISO。

如果 livecd-creator
無法找到包 —— 例如,如果它不在指定的存放庫中 —— 則命令會跳過該包並仍將繼續建立 Live CD。除非缺少的包是關鍵包(如 kernel),否則,您均將得到一個可用的 Live CD。

除配置 RPM 中提到的包外,還可使用 --package
開關添加定製包。livecd-creator
命令也可使用多個存放庫構建 CD。

清單 8. 使用多個存放庫建立 Live CD



 # livecd-creator --repo=c6,file:///var/www/html/repo/core
--package=openoffice
--repo=lcd6,file:///root/base_packages
--package=fedora-livecd-gnome
--repo=e6,http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386
--repo=livna,http://rpm.livna.org/fedora/6/i386
--package=vlc
--fslabel=My-LiveCD-2

 

與前一個樣本中一樣,此命令使用所有來自 fedora-livecd-gnome 的包建立 Live CD。另外,它將包含
OpenOffice.org 辦公套件,該套件可從核心存放庫中獲得。它也將添加來自 livna 存放庫的 VLC Media
Player。我們將其稱作 My-LiveCD-2,因為它包含來自第三方存放庫的包,不能被稱作 Fedora Live CD。

如果建立 CD 後,想要將另一個應用程式(如 Evolution e-mail client)添加到定製 CD 中可以嗎?沒問題。如果前一個 CD 的 ISO 可用,則只需讓 livecd-creator
使用此 ISO 的包並追加新包即可。

清單 9. 向現有的 Live CD ISO 中添加新包

# livecd-creator --repo=c6,file:///var/www/html/repo/core
--base-on=My-LiveCD-2.iso
--package=evolution
--fslabel=My-LiveCD-New

 

這將根據前一個 ISO 中的包和附加的 Evolution 包建立一個新的 Live CD。

建立定製配置包

我希望上述樣本能讓您瞭解建立 Live CD 實際上是一項很簡單的工作。使用 Zeuthen 提供的包,您可繼續建立 Live CD,向其中添加來自任何存放庫的應用程式。

但是假設您需要建立可用於編寫文檔和代碼的 Live CD。您希望為編寫代碼文檔將 OpenOffice.org、Evolution
e-mail client、Beagle desktop search、GAIM instant messenger、Xchat IRC
client、GIMP image manipulator、GCC compiler、GDB debugger 和 Doxygen 包含進來。

可以在每次想要裝配 CD 時使用 --package
開關指定它們,也可以編寫自己的設定檔。使用設定檔的附加優點是還可以指定定製配置。

設定檔剖析

建立自己的設定檔之前,請先查看一下用來建立 Live CD 的設定檔:fedora-gnome。可從 RPM 提取該設定檔,方法是在 fedora-livecd-gnome-6-1.i386.rpm 上右擊並選擇 Extract Here
選項。這應該會在 etc/livecd/ 目錄下產生一個名為 20-fedora-livecd-gnome.conf
的檔案。首碼數字用於協助識別包樹中的特定的包。因此,20-* 包在 10-* 包之後並可能會依賴於後者,而 30-* 包則在 20-*
之後並可能會依賴於 20-* 和首碼更小的包。

檔案的第一部分包含要安裝的應用程式的列表,第二部分則包含該特殊環境中所需做出的配置。

清單 10. 20-fedora-livecd-gnome.conf 檔案的內容

case $1 in
# inquire what packages to install; must print packages to install
pkgadd)
echo "
chkconfig
gdm
gnome-panel
nautilus
metacity
gnome-themes
redhat-artwork
gnome-power-manager
gnome-volume-manager
desktop-printing
gnome-terminal
gedit
.
.
.
.

# run configuration scripts when all packages are installed
post)
# mount livecd
mkdir -p /mnt/livecd
mount -o ro -t iso9660 /dev/livecd /mnt/livecd
# add fedora user with no passwd
useradd -c "Fedora live CD" fedora
passwd -d fedora > /dev/null
.
.
.
.

 

如您所見,大多數工作(如設定使用者、設定網路)都由 fedora-gnome 包完成。

建立設定檔

建立設定檔的最佳方法是使用 20-fedora-livecd-gnome.conf 並刪除 GNOME 特有的位。讓我們調用 40-fedora-livecd-office
-code.conf 檔案。這應該能夠奏效:

# cp 20-fedora-livecd-gnome.conf 40-fedora-livecd-office-code.conf

刪除 GNOME 位後,可添加所需包的列表。新檔案應顯示如下內容(請注意:為節省空間的起見,我刪除了許可證位):

清單 11. 最新建立的 40-fedora-live-office.conf 檔案

        #!/bin/bash

# livecd configuration for Base Fedora system

# PLEASE ADD LICENSE RELATED NOTE

case $1 in
# inquire what packages to install; prints package list on stdout
pkgadd)
echo "
evolution
evolution-connector
evolution-webcal
gaim
xchat
beagle
gimp

openoffice.org-core
openoffice.org-draw
openoffice.org-calc
openoffice.org-graphicfilter
openoffice.org-math
openoffice.org-writer
openoffice.org-xsltfilter
openoffice.org-impress

gcc
gdb
doxygen
"
;;

# run configuration scripts when all packages are installed
post)
;;

# run when an livecd install is complete to clean up
install-post)
;;

# run when an livecd install is complete; must prints packages to remove
install-pkgrem)
echo "
fedora-livecd-office-code
"
;;
esac

 

別忘了建立 ISO 之前將配置包的名稱包含到要刪除包的列表中。

建立 RPM

在您可以實際使用此設定檔之前,需要先利用它來建立 RPM。建立 RPM 需要 SPEC 檔案。可以使用 Zeuthen 的 fedora-livecd.spec
並對它進行編輯,以便包含關於新設定檔的資訊。

大致說來,SPEC 檔案包含將被包含到 RPM 中的檔案清單,以及安裝 RPM 時存放這些檔案的位置。我無意深入探討建立 SPEC
檔案的細節,但是您可以使用我為本文建立的 SPEC 檔案。請從本文後面的 下載 部分下載該檔案,並閱讀注釋以瞭解對 Zeuthen
的原始檔案做出的更改。

請注意:SPEC 檔案指向其他包(如 fedora-live-gnome-fedora-livecd-desktop)的設定檔。要確保這些設定檔也都可用。

Fedora 使用 rpmbuild
命令來利用 SPEC 檔案建立 RPM。rpmbuild
命令要求所有的 .conf 設定檔都位於 /usr/src/redhat/SOURCES 目錄下,並且 SPEC 檔案中所有稱作
SOURCE 的檔案也應位於該目錄下。另外還要確保 fedora-livecd.spec 檔案位於 /usr/src/redhat/SPECS
目錄下。

清單 12. 建立新的 RPM

# cd /usr/src/redhat/SPECS
# rpmbuild -bb fedora-livecd.spec
# ls /usr/src/redhat/RPMS/i386
fedora-livecd-6-2.i386.rpm
fedora-livecd-gnome-6-2.i386.rpm
fedora-livecd-desktop-6-2.i386.rpm
fedora-livecd-office-6-2.i386.rpm

 

為了區別定製 RPM 和原始 RPM,我已將其版本定為 6-2 而不是原始的 6-1。

使用定製 RPM 構建 Live CD

一旦您可以自由處理 RPM,建立 Live CD 的過程也就大同小異了。使用新的 RPM 重新建立包的本機存放區庫即可。

清單 13. 使用新的 RPM 建立配置包的本機存放區庫

# rm /root/base_packages/*
# cp /usr/src/redhat/RPMS/* /root/base_packages/
# createrepo /root/base_packages

 

現在通過 livecd-creator
來使用最新建立的包。

清單 14. 使用新的 Fedora-Office-Code-LiveCD RPM 建立 Live CD

# livecd-creator --repo=c6,file:///var/www/html/repo/core
--repo=lcd6,file:///root/base_packages
--package=fedora-livecd-office-code
--repo=e6,http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386
--fslabel=My-Fedora-Office-Code-LiveCD

轉眼之間!您就從完全由自己定製的配置獲得了完全由自己定製的 Live CD.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.