請問 GRUB 為何能夠懂硬碟檔案系統? 如題,GRUB 在進入 stage2 後,是有何特異功能得以讀取硬碟檔案資料的? 還有為何開機一定得需要 initrd 呢? 鳥哥文章提到若為 ide 硬碟且 filesystem 非 lvm,raid (例如ext2/3)可以不需要 initrd [url]http://linux.vbird.org/linux_basic/0510osloader.php[/url] 但我在虛擬機器試過,若將之註解掉,則: kernel panic - not syncing: VFS: Unable to mount root filesystem on unknown-block(0,0) |
回覆: 請問 GRUB 為何能夠懂硬碟檔案系統? 您的問題其實在您貼出來的link中都有提到,不過鵝還是多嘴一下好了:sleep:....grub讀得懂特定filesystem就在於grub帶了一些相關module(就是通常在/boot/grub/中的那些*_stage1_5),如果要更詳細的資料建議您去找grub的source code回來看一下,至於initrd的問題主要還是看kernel mount root時所須的東東(i.e. filesystem/storage等等)有沒有static link進kernel中,如果沒有的話就得包在initrd中給kernel,不然kernel缺了那些東東又要如何讀到放在filesystem中的module呢:sleep:....不過因為kernel要包哪些東東/不包哪些東東每個人的習慣不見得一樣,所以很難一概而論(i.e. filesystem/storage通常都可以config成module,也可以static link進kernel中),只能說如果root是放在LVM中的話就非動到initrd不可(i.e. LVM相關的pvscan/lvscan/vgchange都是user space的東東,沒辦法直接讓kernel去做這些事,再說pvscan/lvscan要花一點時間,如果kernel沒有停下來等pvscan/lvscan/vgchange就直接mount root的話只會得到panic:unable to mount root而已:p:p).... |
回覆: 請問 GRUB 為何能夠懂硬碟檔案系統? [QUOTE=wangcm;1060572]您的問題其實在您貼出來的link中都有提到,不過鵝還是多嘴一下好了:sleep:....grub讀得懂特定filesystem就在於grub帶了一些相關module(就是通常在/boot/grub/中的那些*_stage1_5),[/QUOTE] 感謝, 但這就是我的疑問,grub在讀取*_stage1_5前又是如何驅動與認識硬碟的檔案系統的呢? |
回覆: 請問 GRUB 為何能夠懂硬碟檔案系統? [QUOTE=b90220208;1065652]感謝, 但這就是我的疑問,grub在讀取*_stage1_5前又是如何驅動與認識硬碟的檔案系統的呢?[/QUOTE] 讀取前還不認識. 讀取後才認識, 直接讀取 stage2 *_stage1_5 檔案儲存的硬碟位置. |
所有時間均為 +8。現在的時間是 10:19 AM。 |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。