歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> GRUB配置解釋下面是個例子

GRUB配置解釋下面是個例子

日期:2017/2/27 14:15:39   编辑:更多Linux
  timeout 10 default 2 # --> Debian Linux <-- title Debian linux root (hd0,2) kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro initrd /boot/initrd-2.2.18.gz # --> Debian END <-- # --> Windows 菜單選項 <-- title Windows2000 root (hd0,0) LILO A. 從主引導記錄中移走LILO並重存原先的windows MBR 1. c:> fdisk /mbr 2. #/sbin/lilo -u /dev/hda 3. #dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1 4. #cat /boot/boot.0300 > /dev/hda 注意:只有你原先安裝windows 95後再安裝Linux時,/boot/boot.0300才是你原先的wi ndows 95 MBR。 B. 重存LILO到MBR 1. 用安裝軟盤或光盤啟動到boot: boot: vmlinuz root=/dev/hdXY (如: hda1 ) 啟動完成後運行 #/sbin/lilo 2. 用兩張軟盤啟動後: #mount -t ext2 /dev/hda1 /mnt #ln -s /mnt/boot boot #ln -s /mnt/etc/lilo.conf /etc/lilo.conf #/mnt/sbin/lilo C. 拷貝LILO到軟盤 1. /sbin/lilo -b /dev/fd0 2.用Redhat 安裝盤引導到 boot: boot: vmlinuz root=/dev/hdXY (hdXY 為你的根分區) update /etc/lilo.conf root=/dev/fd0 boot=/dev/fd0 再運行:#/sbin/lilo -v D. 制作一張Redhat Linux 引導盤 #mkbootdisk --device /dev/fd0 2.0.36-3 E. 拷貝內核至軟盤,讓軟盤單獨引導Linux並掛上硬盤上的根文件系統。 #fdformat /dev/fd0H1440 #dd if=/boot/vmlinuz of=/dev/fd0 #rdev /dev/fd0 /dev/hda1 -- chainloader +1 # --> Winddows 結束 <-- # --> RedHat linux 菜單選項 <-- title RedHat linux root (hd0,8) chainloader +1 # 在硬盤主引導分區裝了lilo,所以也用了chainloader。 # --> RedHat linux 結束 <-- # --> Mandrake linux 菜單選項 <-- title Mandrake linux root (hd0,5) kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro initrd /boot/initrd-2.4.3-20mdk.img # --> Mandrake linux 結束 <-- #例子到此結束 以符號井"#"開頭的行表示被注釋掉,沒有任何意義。 timeout表示默認等待的時間,這兒是10秒鐘。超過10秒,用戶還沒有作出選擇的話,系統將自動選擇默認的操作系統。 默認的操作系統就是由default控制的。default後加一個數字n,表明是第n+1個。需要注意的是,GRUB中,計數是從0開始的,第一個硬盤是hd0,第一個軟驅是fd0,等等。所以,default 2 表示默認的操作系統在這兒是 Redhat linux。 接下來,正如你所想象的,title表示的是“Debian linux”菜單項。root (hd0,2)表示第一個硬盤,第三個分區。這兒的root 於linux的root分區及其不同,此root非彼root也! 在 Linux 中,當談到 "root" 文件系統時,通常是指主 Linux 分區。但是,GRUB 有它自己的 root 分區定義。GRUB 的 root 分區是保存 Linux 內核的分區。這可能是您的正式 root 文件系統,也可能不是。我們討論的是 GRUB,需要指定 GRUB 的 root 分區。進入 root 分區時,GRUB 將把這個分區安裝成只讀型,這樣就可以從該分區中裝入 Linux 內核。GRUB 的一個很“酷”的功能是它可以讀取本機的 FAT、FFS、minix、ext2 和 ReiserFS 分區。


到目前為止,您可能會感到一點疑惑,因為 GRUB 所使用的硬盤/分區命名約定與 Linux 使用的命名約定不同。在 Linux 中,第一個硬盤的第五個分區稱作 "hda5"。而 GRUB 把這個分區稱作 "(hd0,4)"。GRUB 對硬盤和分區的編號都是從 0 開始計算。另外,硬盤和分區都用逗號分隔,整個表達式用括號括起。現在,可以發現如果要引導 Linux 硬盤 hda5,應輸入 "root (hd0,4)"。 知道了內核在哪兒,還要具體指出哪個文件是內核文件,這就是kernel的工作。 kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro說明/boot/vmlinuz-2.2.18 就是要載入的內核。後面的都是傳遞給內核的參數。root=/dev/hda3就是linux的硬盤分區表示法,ro是以readonly的意思。 initrd用來初始的linux image,並設置相應的參數。 是不是感覺很簡單啊!再來看一看windows的定義段吧。 這裡,我添加了一項來引導 Windows2000。要完成此操作,GRUB 使用了“鏈式裝入器”(chainloader)。鏈式裝入器從分區 (hd0,0) 的引導記錄中裝入 win2000 自己的引導裝入器,然後引導它。這就是這種技術叫做鏈式裝入的原因 -- 它創建了一個從引導裝入器到另一個的鏈。這種鏈式裝入技術可以用於引導任何版本的 DOS 或 Windows。 我的RedHat linux在硬盤主引導分區裝了lilo,所以也用了chainloader。 GRUB的配置文件要簡單就這麼簡單,如果你要更個性化一點,試一試把“color light-gray/blue ”加在default語句的下面,下一次啟動GRUB時,看看有什麼變化,再試一試“color light-blue/red",驚喜嗎? 有趣吧! # GRUB的交互性 # 事實上,如有必要,只要更新 menu.lst 文件即可,一切將保持正常。 只有少數情況下,才需要將 GRUB 引導裝入器重新安裝到引導記錄。首先,如果更改 GRUB root 分區的分區類型(例如,從 ext2 改成 ReiserFS),則需要重新安裝。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由於它們來自更新版本的 GRUB,很有可能要重新安裝引導裝入器。其它情況下,可以不必理睬! GRUB的最大的特點就是交互性特別強。在開機時,按一下“c”,將進入GRUB 控制台。顯示如下: GRUB version 0.5.96.1 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first Word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> 歡迎使用 GRUB 控制台。現在,再研究命令: 我將通過GRUB 控制台繞過lilo來啟動RedHat linux, grub> root (h 現在,按一次 Tab 鍵。如果系統中有多個硬盤,GRUB 將顯示可能完成的列表,從 "hd0" 開始。如果只有一個硬盤,GRUB 將插入 "hd0,"。如果有多個硬盤,繼續進行,在 ("hd2") 中輸入名稱並在名稱後緊跟著輸入逗號,但不要按 Enter 鍵。部分完成的 root 命令看起來如下: grub> root (hd0, 現在,繼續操作,再按一次 Tab 鍵。GRUB 將顯示特定硬盤上所有分區的列表,以及它們的文件系統類型。在我的系統中,按 Tab 鍵時得到以下列表: grub> root (hd0, (tab,按tab一下鍵) Possible partitions are: Partition num: 0, Filesystem type is fat, partition type 0x6 Partition num: 2, Filesystem type is ext2fs, partition type 0x83 Partition num: 4, Filesystem type unknown, partition type 0x7 Partition num: 5, Filesystem type is ext2fs, partition type 0x83 Partition num: 6, Filesystem type is fat, partition type 0xb Partition num: 7, Filesystem type is fat, partition type 0xb Partition num: 8, Filesystem type is ext2fs, partition type 0x83 Partition num: 9, Filesystem type unknown, partition type 0x82 如您所見,GRUB 的交互式硬盤和分區名稱實現功能非常有條理。這些,只需要好好理解 GRUB 新奇的硬盤和分區命名語法,然後就可以繼續操作了 grub> root (hd0,8) 現在已安裝了 root 文件系統,到裝入內核的時候了 grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro

[Linux-bzImage, setup=0x1200, size=0xe1a30] 您已經安裝了 root 文件系統並裝入了內核。現在,可以引導了。只要輸入 "boot",Linux 引導過程就將開始。是不是很cool啊,GRUB的menu.lst更像一個linux下的腳本程序。 ##################### # GRUB啟動盤 # ##################### 要制作引導盤,需執行一些簡單的步驟。首先,在新的軟盤上創建 ext2 文件系統。然後,將其安裝,並將一些 GRUB 文件復制到該文件系統,最後運行 "grub" 程序,它將負責設置軟盤的引導扇區。准備好了嗎? 將一張空盤插入 1.44MB 軟驅,輸入: # mke2fs /dev/fd0 創建了 ext2 文件系統後,需要安裝該文件系統: # mount /dev/fd0 /mnt/floppy 現在,需要創建一些目錄,並將一些關鍵文件(原先安裝 GRUB 時已安裝了這些文件)復制到軟盤: # mkdir /mnt/floppy/boot # mkdir /mnt/floppy/boot/grub # cp /boot/grub/stage1 /mnt/floppy/boot/grub # cp /boot/grub/stage2 /mnt/floppy/boot/grub 再有一個步驟,就能得到可用的引導盤。 在linux bash中,從 root 用戶運行“grub”,該程序非常有趣並值得注意,因為它實際上是 GRUB 引導裝入器的半功能性版本。盡管 Linux 已經啟動並正在運行,您仍可以運行 GRUB 並執行某些任務,而且其界面與使用 GRUB 引導盤或將 GRUB 安裝到硬盤 MBR 時看到的界面(即GRUB控制台)完全相同。 在 grub> 提示符處,輸入: grub> root (fd0) grub> setup (fd0) grub> quit 現在,引導盤完成了。 如果要把GRUB裝到硬盤上,也很容易。這個過程幾乎與引導盤安裝過程一樣。首先,需要決定哪個硬盤分區將成為 root GRUB 分區。在這個分區上,創建 /boot/grub 目錄,並將 stage1 和 stage2 文件復制到該目錄中,可以通過重新引導系統並使用引導盤,或者使用駐留版本的 GRUB 來執行後一步操作。在這兩種情況下,啟動 GRUB,並用 root 命令指定 root 分區。例如,如果將 stage1 和 stage2 文件復制到 hda5 的 /boot/grub 目錄中,應輸入 "root (hd0,4)"。接著,決定在哪裡安裝 GRUB -- 在硬盤的 MBR,或者如果與 GRUB 一起使用另一個“主”引導裝入器,則安裝在特定分區的引導記錄中。如果安裝到 MBR,則可以指定整個磁盤而不必指定分區,如下(對於 hda): grub> setup (hd0) 如果要將 GRUB 安裝到 /dev/hda5 的引導記錄中,應輸入: grub> setup (hd0,4) 現在,已安裝 GRUB。引導系統時,應該立即以 GRUB 的控制台方式結束(如果安裝到 MBR)。現在,應創建引導菜單,這樣就不必在每次引導系統時都輸入那些命令



grub> setup (hd0,4) 現在,已安裝 GRUB。引導系統時,應該立即以 GRUB 的控制台方式結束(如果安裝到 MBR)。現在,應創建引導菜單,這樣就不必在每次引導系統時都輸入那些命令



Copyright © Linux教程網 All Rights Reserved