制作成功后的基本最簡文件夾文件圖
一、系統的基本引導流程:
首先系統要引導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.c32 timeout 600這里定義的默認者是vesamenu.c32c,這個vesamenu.32c的作用就是啟動菜單外觀繪制拓展工具。以下定義的timeout是指用戶選擇時間上限。
label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet label 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 quiet menu separator # insert an empty line # utilities submenu menu begin ^Troubleshooting menu title Troubleshooting label vesa menu indent count 5 menu label Install CentOS 7 in ^basic graphics mode text help Try this option out if you're having trouble installing CentOS 7. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS xdriver=vesa nomodeset quiet label rescue menu indent count 5 menu label ^Rescue a CentOS system text help If the system will not boot, this lets you access files and edit config files to try to get it booting again. endtext kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rescue quiet label memtest menu label Run a ^memory test text help If your system is having issues, a problem with your system's memory may be the cause. Use this utility to see if the memory is working correctly. endtext kernel memtest menu separator # insert an empty line label local menu label Boot from ^local drive localboot 0xffff menu separator # insert an empty line menu separator # insert an empty line label returntomain menu label Return to ^main menu menu exit menu end這些是每項菜單的詳細定義,即定義了每一個菜單相應的調用vmlinuz和initrd.img的方式。
label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quietlabel是標簽。類似於grub的title 。
kernel項代表要載入的內核。append是后綴參數,相當於為了好看換行的作用。initrd=initrd.img是定義內核的掛在器是initrd.img,后面參數inst.stage2=hd:LABEL=CENTOS quiet 就是載入的root路徑。inst.stage2是指載入安裝程序文件的路徑。hd:LABEL=CENTOS是指root的路徑在卷標為CENTOS的儲存設備中。即U盤,所以該引導鏡像的名字和U盤卷標必須是CENTOS。
此處假設不想用菜單方式顯示,直接載入安裝文件。能夠省去vesamenu.32c 把開頭的default vesamenu.32c改成default linux 即默認載入label linux的定義。
第三步:制作引導鏡像文件CENTOS.iso
改動鏡像文件名稱字與syslinux.cfg中的root路徑卷標一致。把isolinux.bin設置成引導文件,勾選生成啟動信息表。這個啟動信息表就是最后文件夾中的ldlinux.sys啟動信息文件。
第四步:保存該鏡像並通過啟動-》寫入硬盤映像來寫到U盤中。這時候UItral So會自己主動的把syslinux.cfg文件盒ldlinux.sys文件生成在U盤上,而其它的文件也會拷貝到U盤上,這時候U盤里的isolinux.cfg能夠刪除掉,最后把安裝系統的鏡像拷到根文件夾下。
注:U盤中沒介紹的文件都是一些背景或者其它安裝選項中調用的linux的檢測工具。