学习 Linux_01: 引导程序
學習 Linux_01: 引導程序
當PC啟動時,執行ROM中的BIOS程序:首先自檢,然后從引導驅動器上的主引導記錄(MBR)加載第一個扇區。MBR包含主分區表,因此可執行代碼少于512byte,這部分代碼叫做:第一階段啟動加載程序。加載過程為,加載MBR->運行,發現標記為active的引導驅動器上主分區->加載分區引導記錄->運行該記錄加載該分區一組塊。
當一個引導程序獲取控制權之后,它可能做的一件事就是加載另一個引導程序。這稱為鏈式加載(chain loading)
GRUB(Grand Unified Bootloader)
GRUB包含三個文件:
stage1:引導扇區引導程序的備份,只有512字節(前446字節為引導程序),作用是在系統啟動時裝載STAGE1.5/2并將控制權交給后者
stage1.5:(選擇裝入)用來識別不同文件系統格式的stage2,由于緊接著mbr,fs再怎么也只能從0面1柱面1扇區開始,這樣就兩個好處:一來stage1可以方便的找到他,二來stage2可以通過它來解釋,stage1.5是為了配合stage2安裝的,例如當初安裝stage2的時候如果是安裝在了ext2文件系統上,stage1.5就是用來解釋ext2的文件。
stage2:除了加載自己,所有功能都由它實現
start.s:加載stage1.5或stage2
整個過程為:
Bios->stage1->start.s(->stage1.5)->stage2
恢復
另一個安裝損壞了MBR(本質上是stage1部分壞了)
比如又一次安裝了windows,此時覆蓋掉了stage1,只要想辦法進入到linux,運行grub-install就可以了。具體的方法是通過啟動盤(軟盤,U盤,安裝盤)
移動一個分區(本質上是stage2搬家了)
避免這個問題的方法是使用UUIDs,這樣只需要更新配置文件而不需要更新/etc/fsab,在使用USB驅動器的時候特別有用
另一個方法是使用一個獨立的boot分區,這個分區不易變動,專職啟動(將stage2裝于此)
構建一個自含式啟動軟盤或 CD-ROM
將stage1~stage2都裝在CD-ROM或軟盤上,用來啟動
另外學到的一些知識:
grub-install命令是安裝stage1到mbr或者dbr,:
grub-install /dev/sda?或
grub-install '(hd0)'
grub-install /dev/sda11或
grub-install '(hd0,10)'
grub自帶命令root,setup是配置整個過程的,是按照默認的方式運行(通過help得到的知識是:自動安裝grub到root指定的設備,使用的是root指定設備上的映像)
也可以將stage1和stage2直接拷貝到軟盤中,這樣會破壞fs,使用的是dd命令進行拷貝
轉載于:https://www.cnblogs.com/observer/archive/2011/10/04/2199058.html
總結
以上是生活随笔為你收集整理的学习 Linux_01: 引导程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软.Net开发中的多线程编程总结
- 下一篇: 中国建设银行(2011.11.19南京大