標籤:linux linux核心 檔案系統
製作成功後的基本最簡目錄檔案圖
一、系統的基本引導流程:
首先系統要引導isolinux.bin可執行程式,此程式是移動介質上引導用的,isolinux.bin運行成功後會載入其設定檔syslinux.cfg,該檔案中定義了vmlinuz和initrd.img的調用方式。vmlinuz是vmlinux的壓縮版,二者都是linux核心。isolinux.bin根據其配置方式中定義的initrd.img的參數傳給vmlinuz即Linux核心並載入核心,然後Linux核心會根據獲得的initrd.img的調用參數調用initrd.img。initrd.img的準系統就是root路徑掛載器,其存在的意義是省去了不同root路徑硬體下vmlinuz核心的重編譯工作。initrd.img根據調用參數去參數路徑中找系統啟動程式(這裡使用的就是iso的安裝鏡像),系統便啟動起來了。
二、引導盤的基本製作過程:
第一步:提取製作引導鏡像所需的檔案,這些檔案在Linux安裝盤的isolinux目錄中,這個目錄就是個微型Linux系統。
第二步:編輯isolinux.bin的執行設定檔syslinux.cfg的原檔案isolinux.cfg。
default vesamenu.c32timeout 600
這裡定義的預設者是vesamenu.c32c,這個vesamenu.32c的作用就是啟動菜單外觀繪製拓展工具。下面定義的timeout是指使用者選擇時間上限。
label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quietlabel check menu label Test this ^media & install CentOS 7 menu default kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rd.live.check quietmenu separator # insert an empty line# utilities submenumenu begin ^Troubleshooting menu title Troubleshootinglabel vesa menu indent count 5 menu label Install CentOS 7 in ^basic graphics mode text helpTry this option out if you're having trouble installingCentOS 7. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS xdriver=vesa nomodeset quietlabel rescue menu indent count 5 menu label ^Rescue a CentOS system text helpIf the system will not boot, this lets you access filesand edit config files to try to get it booting again. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rescue quietlabel memtest menu label Run a ^memory test text helpIf your system is having issues, a problem with yoursystem's memory may be the cause. Use this utility tosee if the memory is working correctly. endtext kernel memtestmenu separator # insert an empty linelabel local menu label Boot from ^local drive localboot 0xffffmenu separator # insert an empty linemenu separator # insert an empty linelabel returntomain menu label Return to ^main menu menu exitmenu end
這些是每項菜單的具體定義,即定義了每個菜單對應的調用vmlinuz和initrd.img的方式。
label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet
label是標籤,類似於grub的title 。kernel項代表要載入的核心,append是尾碼參數,相當於為了好看換行的作用。initrd=initrd.img是定義核心的掛在器是initrd.img,後面參數inst.stage2=hd:LABEL=CENTOS quiet 就是載入的root路徑,inst.stage2是指載入iso的檔案,hd:LABEL=CENTOS是指root的路徑在卷標為CENTOS的儲存裝置中,即隨身碟,所以該引導鏡像的名字和隨身碟卷標必須是CENTOS。
此處如果不想用菜單方式顯示,直接載入安裝檔案,可以省去vesamenu.32c 把開頭的default vesamenu.32c改成default linux 即預設載入label linux的定義。
第三步:製作引導鏡像檔案CENTOS.iso
修改鏡像檔案名字與syslinux.cfg中的root路徑卷標一致。把isolinux.bin設定成引導檔案,勾選產生啟動資訊表,這個啟動資訊表就是最後目錄中的ldlinux.sys啟動資訊檔。
第四步:儲存該鏡像並通過啟動-》寫入硬碟映像來寫到隨身碟中。這時候UItral So會自動的把syslinux.cfg檔案盒ldlinux.sys檔案產生在隨身碟上,而其他的檔案也會複製到隨身碟上,這時候隨身碟裡的isolinux.cfg可以刪除掉,最後把安裝系統的鏡像拷到根目錄下。
註:隨身碟中沒介紹的檔案都是一些背景或者其他安裝選項中調用的linux的偵查工具。