• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      如何制作Live CD

      2010-03-22 11:48:39李晨光
      關(guān)鍵詞:源碼拷貝光盤

      李晨光

      (中鐵工程設(shè)計(jì)咨詢集團(tuán)有限公司信息中心,北京100055)

      LiveCD是一種無(wú)需安裝、完全從CDROM啟動(dòng)的瘦Linux版 。當(dāng)它運(yùn)行時(shí)所有的工具都存放在CDROM上或者內(nèi)存里,而不是硬盤上,這是和傳統(tǒng)的操作系統(tǒng)最大區(qū)別。各Live CD在功能上的區(qū)分并不是絕對(duì)的,因?yàn)榇蟛糠諰ive CD本身就是一個(gè)非常完整的Linux系統(tǒng),可以用它來(lái)實(shí)現(xiàn)各種功能 。

      1 制作LiveCD

      計(jì)算機(jī)加電以后, 由位于主板上的BIOS負(fù)責(zé)引導(dǎo)操作系統(tǒng)。Linux平臺(tái)上主要的引導(dǎo)程序(bootloader)是LILO(Linux Loader)和GRUB。這兩個(gè)引導(dǎo)程序分為2部分, 第1部分(Firststage)尺寸很小, 以便裝入MBR,它負(fù)責(zé)引導(dǎo)第2部分(Second stage)來(lái)完成主要的引導(dǎo)工作。當(dāng)?shù)?部分加載后,它根據(jù)預(yù)先的配置顯示選單界面,供用戶選擇引導(dǎo)的操作系統(tǒng)及啟動(dòng)參數(shù)。接下來(lái),引導(dǎo)程序?qū)?nèi)核映像文件和初始Ramdisk(initrd)映像加載入內(nèi)存,initrd映像用于存放一些用于系統(tǒng)引導(dǎo)的關(guān)鍵驅(qū)動(dòng)模塊,而這些文件又無(wú)法從磁盤上的文件系統(tǒng)加載。映像加載完畢后,控制權(quán)就由引導(dǎo)程序交給Linux內(nèi)核。Linux內(nèi)核啟動(dòng)后,首先會(huì)初始化,并配置系統(tǒng)的可用內(nèi)存以及各種相關(guān)設(shè)備,解壓并掛載內(nèi)存中的initrd映像、加載其中的驅(qū)動(dòng)程序,初始化和文件系統(tǒng)相關(guān)的各種虛擬設(shè)備。最后, 內(nèi)核加載根(/)文件系統(tǒng)、釋放不再使用的內(nèi)存,執(zhí)行第1個(gè)程序/sbin/init。/sbin/init程序是系統(tǒng)啟動(dòng)后運(yùn)行的第1個(gè)進(jìn)程,它根據(jù)配置文件/etc/inittab依次執(zhí)行/etc/rcx.d目錄中的啟動(dòng)腳本,由這些腳本完成各種初始化,啟動(dòng)各種服務(wù)程序。至此,Linux系統(tǒng)已經(jīng)引導(dǎo)完成了。

      2 準(zhǔn)備創(chuàng)建LiveCD

      2.1 下載鏡像

      從http://easynews.dl.sourceforge.net/sourceforge/souptonuts/cdrom_linux_boot_proj1.iso下載文件cdrom_linux_boot_proj1.iso,并將其刻錄至光盤之上。使用該光盤重新啟動(dòng)系統(tǒng)。目的是為了檢測(cè)內(nèi)核中是否編譯了所需的網(wǎng)絡(luò)、視頻和鍵盤(包含USB)驅(qū)動(dòng)器。如果有重要的設(shè)備沒有被識(shí)別,那么可以將其加到內(nèi)核之中。

      2.2 下載項(xiàng)目環(huán)境

      從http://prdownloads.sourceforge.net/souptonuts/proj1.tar.gz下載完整的項(xiàng)目環(huán)境 proj1.tar.gz。該軟件包中包含了所有用于創(chuàng)建和 定制cdrom_linux_boot_ proj1.iso所需的東西,這其中包括BusyBox源碼、各種庫(kù)和SSH。目錄 “_install”包含了用于SSH、init和tcpdump所需的庫(kù)。2.6.11內(nèi) 核 的 “.config”可以在文檔目錄中找到。此外,staginig_iso_image目錄包含了一份內(nèi)核bzImage以及isolinux啟動(dòng)加載器。proj1.tar.gz文件的大小是l1 MB,由于其包含了除源代碼以外用戶所需的所有東西,所以只需再下載內(nèi)核代碼即可。下 載地址為http://www.kernel.org/pub/linux/kernel/v2.6/。

      在后面的步驟中,介紹配置和安裝最新內(nèi)核的方法。在解壓proj1.tar.gz文件時(shí),解壓該文件會(huì)創(chuàng)建所有必需的字符和塊設(shè)備,所以需要以root的身份使用“tar -xzf”命令進(jìn)行解壓縮。

      用如下命令檢查下載完整性:$md5sum proj1.tar.gz

      用如下命令解壓解包文件:#tar -xzf proj1.tar.gz

      轉(zhuǎn)換成root身份,以確??梢詣?chuàng)建所有/dev設(shè)備。完成上述步驟后,這時(shí)可以使用如下命令查看全部的設(shè)備:[root@third-fl-71_install] #lS -l dev。

      如果使用普通賬號(hào)進(jìn)行上述步驟 ,會(huì)發(fā)現(xiàn)很多文件都沒有被創(chuàng)建 。執(zhí)行createiso腳本:#./createiso該腳本會(huì)執(zhí)行很多操作,它會(huì)以 ./cdrom為掛載點(diǎn)創(chuàng)建一個(gè)loop back設(shè)備,會(huì)拷貝_install的內(nèi)容。之后,它會(huì)卸載./cdrom。接下來(lái),它會(huì)拷貝staging目錄中的內(nèi)容 。并且會(huì)創(chuàng)建一個(gè)可啟動(dòng)的CD映像 ,還會(huì)創(chuàng)建一個(gè)虛擬的文件系統(tǒng)。

      3 編譯LiveCD源碼

      3.1 下載 BusyBox

      從http://www.busybox.net/downloads/busybox-1.00.tar.gz下載BusyBox

      $wget http://www.busybox.net/downloads/busybox-1.00.tar.gz

      $wget https://www.busybox.net/downloads/busybox-1.00.tar.gz.sign

      $md5sum busybox-1.00.tar.gz

      fa62459e098fc00b22772aaf2e75bc98 busybox-1.00.tar.gz

      接下來(lái)解壓文件 :

      $tar --xzf busybox-1.00.tar.gz

      3.2 配置BusyBox

      如果用戶不想自己寫配置文件 ,可以從以下網(wǎng)址:http://prdownloads.sourceforge.net/souptonuts/chiricobusybox.config下載一個(gè)樣例文件。注意下載完成后,將其文件名更改為 “.config”。具體命令如下 :

      $cd busybox-1.00

      $wget http://osdn.dl.soureceforge.net/sourceforget/souptonuts/chiricobusybox.onfig

      $cp chiricobusybox.config .config

      可以運(yùn)行“make”和 “make install”來(lái)編譯安裝。在上述命令執(zhí)行完成的最后階段,會(huì)顯示如下信息“work properly.”,將BusyBox的權(quán)限改為root:$chmod 4755 ./_install/bin/busybox

      3.3 創(chuàng)建所需目錄

      需要在_install下創(chuàng)建一些目錄。首先查看當(dāng)前目錄的內(nèi)容,創(chuàng)建 dev、etc、lib、proc、tmp、var和 sys:

      $mkdirp dev sys etc/init.d lib proc tmp var/lib/misc var/lock var/log var/run var/tmp

      3.4 創(chuàng)建設(shè)備目錄

      /dev目錄中是必須的設(shè)備文件,這些文件可從現(xiàn)有的系統(tǒng)中拷貝,也可以使用mknod -m命令來(lái)創(chuàng)建 。要注意下述操作需要以root的身份進(jìn)行 。由于有太多的文件,并且可能需要編譯 _install,所以建議將這些文件做成一個(gè)文件 。使用如下命令在_install中轉(zhuǎn)換成 root用戶。

      # chmod 700 createdev

      當(dāng)然,這些文件也可以使用mknod命令創(chuàng)建。

      3.5 創(chuàng)建所須文件和目錄

      在/etc目錄中創(chuàng)建所需的文件。使用“Exit out of root” 模式,就不會(huì)出現(xiàn)覆蓋/etc的情況。如果目錄“/”出現(xiàn)問題,則/etc也不會(huì)幸免,所以不要拷貝東西至“/”,因?yàn)樗钱?dāng)前正在運(yùn)行的系統(tǒng)。由于要運(yùn)行SSH后臺(tái)程序,所以要為其在/etc/passwd中創(chuàng)建賬號(hào)。在/etc/group文件中 ,root和sshd被加入到了組中。

      注意,這里的root賬號(hào)已經(jīng)有一個(gè)密碼 是root。如 果 想 要?jiǎng)?chuàng)建自己的密碼 ,可以從/etc/shadow和/etc/shadow文件中拷貝一個(gè)現(xiàn)有賬號(hào)的密碼,相關(guān)文件請(qǐng)參考Live CD_ Output。

      3.6 與庫(kù)相關(guān)的操作

      這個(gè)配置使用的是G N U Libc(glibc)。與之相反,“uClibc”更小,易于使用,也更加易于配置SSH。如果沒有拷貝合適的NSS(Name Service Switch),那么SSH 或任何其它需要C語(yǔ)言調(diào)用getpwname的程序都將無(wú)法在glibc下正常執(zhí)行 。

      在大部分情況下,可以通過“l(fā)dd”命令來(lái)發(fā)現(xiàn)哪一個(gè)庫(kù)和某一個(gè)應(yīng)用程序具有動(dòng)態(tài)鏈接關(guān)系。

      3.7 編譯和配置SSH

      使用如下命令下載 openssh:$wget http://mirror.mcs.anl.gov/openssh/portable/openssh-3.9p1.tar.gz

      接下來(lái)檢查簽名密鑰:

      $ wget http://mirror.mcs.anl.gov/openssh/portable/openssh-3.9p.tar.gz.sin

      $ gpg -import DJM-GPG-KEY.asc

      $gpg -verify openssh-3.9p1.tar.gzsig openssh-3.9p1.tar.gz

      如果是在proj1目錄下,那么需要清除所有現(xiàn)有的SSH文件:

      $cd proj1

      $find _install/usr/ -iname `ssh*` -exec rm –f {} ;

      在proj1/_install目錄中以root身份執(zhí)行以下命令 :

      $tar --xzf openssh-3.9131.tar.gz

      $cd openssh-3.9p1

      $./configure –prefix= #

      如果一切正常 ,那么退出chroot

      3.8 編譯內(nèi)核

      下載內(nèi) 核 ,命令如下:

      $wget http://www.kernet.org/pub/linuxkernet/v2.6/linux-2.6.11.tar.gz

      $wget http://ww.kernet.org/pub/linux/kernet/v2.6/liinux-2.6.11.tar.gz.sign

      獲取正確的鑰匙 ,然后驗(yàn)證簽名 :

      $pgp -keyserverwwwkeys.pgp.net -recv-keys 0x517D0F0E

      $pgp -verify linux-2.6.11.tar.gz.sign linux-2.6.11.tar.gz

      確認(rèn)所獲取的源碼沒問題,解開該源碼包:$tar -xzf linux-2.6.11.tar.gz

      3.9 ISOLINUX啟動(dòng)加載器

      啟動(dòng)加載器是第1個(gè)從光盤上運(yùn)行的程序。下面的目錄位于:

      “proj1/staging_iso_image/” 目錄中:

      $ cd proj1/staging_iso_image

      對(duì)各個(gè)文件的描述如下 :

      Boot.cat啟動(dòng)目錄 。

      Isolinux.bin ISOLINUX啟動(dòng)加載器程序 。

      Isolinux.cfg —個(gè)配置文件,用于配置加載內(nèi)核所需的指令。

      Linux2.6是內(nèi)核文件,在內(nèi)核加載后,壓縮的映像文件“initrd.bin”被掛載至/Dev/ram0。而后,/sbin/init程序開始運(yùn)行 。 Linux 2.6是內(nèi)核映像,或是通過命令“make bzImage”生成的文件。

      3.10 完成打包、創(chuàng)建光盤映像

      配置好軟件后,將重新將系統(tǒng)目錄樹打包壓縮,并制作成最終的ISo映像。在打包以前,需要對(duì)定制過程中生成的臨時(shí)文件進(jìn)行清理,避免浪費(fèi)空間、使最終生成文件大于刻錄盤容量大小而無(wú)法刻錄。下面命令是從proj1目錄中執(zhí)行的。如果需要,用戶可查看createiso文件了解整個(gè)過程:

      $mkisofs -R -b isolinux/isolinux.bin -c iso linux/boot.cat -no-emul-boot -boot-load-size 4 -bootinfo-table -o iso /cdrom_linux_boot_proj1.iso staging_iso_image/bot

      LiveCD創(chuàng)建完成 ?,F(xiàn)在用戶就可以將上述文件刻錄至光盤了。另外,還可以將它裁減至一個(gè)U盤所在的容量?jī)?nèi), 就方便隨身攜帶了。

      4 結(jié)束語(yǔ)

      一個(gè)實(shí)用、方便的個(gè)人化LiveCD就制作好了,本文只介紹了制作一個(gè)基本的LiveCD,其實(shí)還可以根據(jù)自己的需要自行添加各種程序和功能,希望本文能起到拋磚引玉的作用。

      [1] (美)拉芙(Love,R.). Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)[M] . 北京:機(jī)械工業(yè)出版社,2006.

      [2] 邱世華. Linux操作系統(tǒng)之奧秘[M] . 北京:電子工業(yè)出版社,2008.

      [3] (美)博韋,西斯特. 深入理解LINUX內(nèi)核[M] . 北京:中國(guó)電力出版社,2007.

      猜你喜歡
      源碼拷貝光盤
      基于網(wǎng)頁(yè)源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
      基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
      光盤行動(dòng)
      幼兒園(2021年13期)2021-12-02 05:13:48
      企業(yè)如何保護(hù)源碼
      中國(guó)生殖健康(2018年1期)2018-11-06 07:14:38
      光盤小熊
      基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
      光盤光榮
      文件拷貝誰(shuí)最“給力”
      漫話拷貝
      鱼台县| 芜湖市| 如东县| 晴隆县| 关岭| 漳平市| 上栗县| 潜山县| 舒城县| 景德镇市| 安龙县| 横山县| 小金县| 松原市| 温宿县| 瓦房店市| 昂仁县| 武宁县| 化州市| 大宁县| 会昌县| 阜城县| 富川| 庄河市| 余姚市| 霍邱县| 台南市| 攀枝花市| 航空| 万荣县| 固安县| 太保市| 灵武市| 隆化县| 格尔木市| 汝城县| 德庆县| 青州市| 奈曼旗| 鸡东县| 许昌市|