為Linux手動製作隨身碟啟動及基本原理

來源:互聯網
上載者:User

標籤: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的偵查工具。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.