GRUB命名約定和鏈式載入引導項

2021-08-17 10:45:02 字數 1330 閱讀 9518

grub使用的裝置符和之前在你的作業系統中見過的有點不同,而且你需要了解它以便你能夠指定驅動器或者分割槽。

請看如下例子和解釋:

(fd0)
首先,grub需要裝置名稱附上左右括號()。「fd」部分代表這是乙個軟盤(floppy disk)。數字「0」代表它的驅動器編號為0。這個表示式意味著grub將會使用整個軟盤。

(hd0,msdos2)
在這裡,「hd」代表這是乙個硬碟(hard disk)。第乙個整數「0」表示驅動器號,也就是說這是第一塊硬碟,字串「msdos」表示分割槽結構,整數「2」表示分割槽號(或者是bsd術語中的pc切片號)。分割槽號從1開始計數,不是從0計數的(就像從前的grub版本一樣)。這個表示式代表第一塊硬碟的第二分割槽。在這種情況下,grub使用的是磁碟中的乙個分割槽,而不是整個磁碟。

(hd1,msdos1,bsd1)
這代表bsd「a」分割槽在第二塊硬碟的第乙個分割槽上。

當然,要使grub能訪問磁碟或分割槽,你需要在命令列中使用裝置規範語法規則,像「set root(fd0)」或「parttool (hd0,msdos3) hidden-」。為了幫你找出哪個數字是你想要的分割槽號,grub命令列(詳情見command-line inte***ce)選項有完整的引數提示。這代表著,例如,你只需要去打set root=(然後按tab鍵,grub將會列出所有的驅動器,分割槽,或者檔名。因此,就算你對語法不太了解,這樣應該也會非常容易找出你想要的分割槽。

注意,grub不區分ide和scsi-它簡單地從0開始計算驅動器號,不管它們的型別是什麼。通常來說,任何ide驅動號都小於scsi驅動號,但如果你通過在你的bios中交換ide和scsi驅動器來改變引導序列,那就不對了。

現在問題是,如何指定檔案?再來思考乙個例子:

(hd0,msdos1)/vmlinuz
這個例子指定了名為「vmlinuz」的檔案,它是在第一塊硬碟的第乙個分割槽找到的。注意完整的引數提示也適用於檔名。

不支援多引導和沒有在grub中有特殊說明的作業系統(linux,freebsd,netbsd和openbsd可以使用特定支援)必須被鏈式載入,這需要載入另乙個引導引導程式並跳轉到真正的作業系統中去。

鏈式載入命令就是被用於載入這種作業系統的。載入一些grub模組和設定合適的根裝置通常來說是很有必要的。把這些放在一起,我們得到這樣的東西,對於在第一塊硬碟的第乙個分割槽的windows作業系統來說:

menuentry 「windows」

在多硬碟的系統上,可能需要額外的變通方法。

鏈式載入僅在pc的bios和efi平台支援。

文章源自[1]:

php 命名空間和自動載入

命名空間 namespace class function get class model class get 使用命名空間的get 函式use class model 使用命名空間的model類當某個類被例項化使用時,autoload函式會自動載入該類,並用引數接收類的命名空間和類名 functi...

PHP 命名空間和自動載入

php5.3 之後引入了命名空間的特性,從本質上講,命名空間就是乙個容器,你可以將類 函式和變數放在其中,在命名空間中,你可以無條件地訪問這些項,在命名空間之外,必須匯入或引用命名空間,才能訪問它所包含的項。namespace my require one outputter3.php class ...

PHP自動載入autoload和命名空間的應用小結

先給大家說下什麼是命名空間。什麼是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案 foo.txt 可以同時在目錄 home greg 和 home o...