linux系統的安裝和啟動過程
1. Linux安裝流程
1.1 安裝過程總覽
1. BIOS加電自檢
2. 運行isolinux目錄下面的isolinux.bin文件,這個isolinux.bin文件根據isolinux.cfg文件的選項來加載內核vmlinuz和 initrd.img文件,initrd.img文件會在內存中生成一個虛擬的linux操作系統,為安裝過程提供一個安裝環境。
3. initrd.img文件中的/sbin/loader文件會探測安裝介質,如果探測到是cd安裝,就會運行images目錄中的 stage2.img(安裝過程需要的所有鏡像)鏡像文件,這個文件中最重要的就是anaconda程序,我們看到的安裝過程中的向導圖就是這個 anaconda程序的作用。
4. 安裝完成,重啟系統。
文件的調用順序為isolinux/vmlinuz--->isolinux/initrd.img--->/init--->/sbin/loader--->imagaes/install.img---
>/usr/bin/anaconda
光盤結構介紹
* isolinux 目錄存放光盤啟動時的安裝界面信息
* images 目錄包括了必要的啟動映像文件,最重要的是引導第二階段安裝需要用到的鏡像文件install.img(rhel 5中是stage2.img),anaconda程序就在這個鏡像文件中。
* CentOS 目錄存放安裝軟件包及信息
* .discinfo 文件是安裝價質的識別信息 這個文件很重要
* lemp.tar.gz 文件存放系統初始化及其相關程序安裝腳本。
* EFI目錄:用於64位的基於EFI的系統引導。其中BOOT目錄下BOOTX64.conf為grub的配置文件,用於顯示引導菜單。
*TRANS.TBL文件:記錄當前目錄的列表,用mkisofs的-T參數重新生成,主要是為了長文件名稱。
/isolinux/iso.cfg
在iso文件中的isolinux目錄下面,isolinux.cfg這裡面就是我們在安裝的時候出現的第一個界面上面的信息,還指明了改加載的內核鏡像和initrd鏡像:
Install or upgrade an existing system
Install system with basic video driver
Rescue installed system
Boot from local drive
Memory test
/isolinux/boot.msg
這個文件信息只顯示了一句
Press the <Enter> key to begin installation process.
/isolinux/splash.jpg
這張圖片是我們安裝界面的背景圖片
1.2 vmlinuz
vmlinuz是可引導的、壓縮的內核。"vm"代表"Virtual Memory".Linux 支持虛擬內存,不像老的操作系統比如DOS有640KB內存的限制。Linux能夠使用硬盤空間作為虛擬內存,因此得名"vm",vmlinuz是可執行的Linux內核。vmlinuz是可引導的、壓縮的內核。"vm"代表"Virtual Memory".Linux 支持虛擬內存,不像老的操作系統比如DOS有640KB內存的限制。Linux能夠使用硬盤空間作為虛擬內存,因此得名"vm".vmlinuz是可執行的Linux內核,vmlinuz是可執行的Linux內核,它位於/boot/vmlinuz,vmlinuz的建立有兩種方式。一是編譯內核時通過"make zImage"創建,然後通過:
"cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz"產生。
vmlinux不是壓縮的內核,vmlinuz是壓縮的內核。
一般來講大家很容易理解的是這樣的:系統內核 vmlinuz被加載到內存後開始提供底層支持,在內核的支持下各種模塊,服務等被加載運行。這樣當然是大家最容易接受的方式,曾經的linux就是這樣的運行的。假設你的硬盤是scsi 接口而你的內核又不支持這種接口時,你的內核就沒有辦法訪問硬盤,當然也沒法加載硬盤上的文件系統,怎麼辦?好辦!把內核加入scsi驅動源碼然後重新編譯出一個新的內核文件替換原來vmlinuz.需要改變標准內核默認提供支持的例子還有很多,如果每次都需要編譯內核就太麻煩了。所以後來的linux就提供了一個靈活的方法來解決這些問題---initrd.img