grub
多重引導程序grub的命令行shell工具
補充說明
grub命令 是多重引導程序grub的命令行shell工具。
語法
1grub(選項)
選項
1--batch:打開批處理模式;
2--boot-drive=<驅動器>:指定stage2的引導驅動器;
3--config-file<配置文件>:指定stage2的配置文件;
4--device-map=<文件>:指定設備的映射文件;
5--help:顯示幫助信息;
6--install-partition=<分區>:指定stage2安裝分區;
7--no-config-file:不使用配置文件;
8--no-pager:不使用內部分頁器;
9--preset-menu:使用預設菜單;
10--probe-second-floppy:檢測第二個軟盤驅動器;
11--read-only:只讀模式。
實例
利用grub命令來啓動損壞的Linux系統,可能你的電腦因爲某些原因損壞不能自動啓動了。當然原因很多,可能的現象也很多。
這裏說一下這種情況下的處理方法,即:屏幕上提示grub>
,但你的硬盤上數據沒有丟失,各分區都是好的。這種情況是你的grub信息損壞了,但比較嚴重的是系統啓動不了。
當然,在正常啓動情況下,屏幕上出現grub的啓動項選擇菜單時按c
鍵也是可以進入grub>
狀態的。這時候我們需要用grub的命令來手工啓動系統。
只需要用到四個命令boot、kernel、initrd、boot。
但grub本身命令很多,比如查看文件內容的cat ,你輸入help會得到。
首先,輸入“ root (hd ” ,然後按兩次 TAB 鍵; /* 這會列出你電腦上可能的磁盤設備,硬盤爲 hd0/hd1 或 sd0/sd1 等 */
然後,選擇你的安裝 Linux 系統的硬盤,比如 hd0 ,輸入 “ root (hd0, ” 再按兩次 TAB 鍵; /* 這會列出你的第一塊硬盤上的分區情況,你會知道哪個是 swap 交換分區, 0x82 ,哪個是 Linux 分區 0x83 */
選擇你認爲可能的 /boot 目錄所在的分區, 輸入root (hd0, 1)
回車;
接着,輸入cat /boot/vm
, 按兩次 TAB 鍵,如果出現一些 vm 開頭的文件,比如 vmlinuz-2.6.15-26-386 說明這裏是 /boot 所在的分區。
刪除上一次的輸入,再輸入cat /boot/initrd
,按兩次 TAB 鍵,如果出現一些 initrd 開頭的文件,比如 initrd.img-2.6.15-26-386 說明這個 /boot 所在的分區有 initrd ,即 ramdisk 鏡像;
刪除上一次的輸入,再輸入cat /sbin/init
,按兩次 TAB 鍵,如果出現一些 init 開頭的文件,比如/sbin/init
說明這個分區是/
所在的分區;
如果沒有出現/sbin/init
文件,說明(hd0,1)
分區僅僅是/boot
分區而不是/
分區。重新輸入root (hd0,N)
命令,這裏 N 是某個 Linux 分區,然後再試cat /sbin/init
, 直到屏幕上出現/sbin/init
,說明你找到了/
分區,嚴格來說,應該是/sbin
目錄所在的分區;
依次輸入命令:
1root (hd0,1) /* 假設 /dev/hda2 是你的 /boot 所在的分區 */
2kernel /boot/vmlinuz-2.6.15-26-386 ro dev=/dev/hda3 /* 假設 /dev/hda3 是你的 / 所在的分區 */
3initrd /boot/initrd.img-2.6.15-26-386
4boot
即可啓動系統。
這裏的關鍵問題是如何確定系統的幾個分區:/boot
/
/sbin
參考資料
- 自由軟件基金會 - grub 文檔 https://www.gnu.org/software/grub/ 來源:https://github.com/jaywcjlove/linux-command
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。