歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

通過GRUB命令行編輯啟動Linux操作系統

GRUB的命令行才是王道,如果知道怎麼用命令行來啟動操作系統,那理解menu.lst的寫法也不難;也就是說在開機的時候,不用GRUB的菜單,通過GRUB的命令也是一樣能把操作系統引導起來。

因為menu.lst的內容就是GRUB的一個一個的指令集合;是不是Linux這玩意很神奇?

1、為什麼需要學習GRUB的命令行;

當我們把GRUB的menu.lst寫錯的時候,或者丟掉了menu.lst的時,比如在開機的時候,GRUB會出現grub>類似的命令提示符,這時需要我們用命令行啟動系統;當然您可以不用定義GRUB的菜單,直接用命令行來啟動系統,比如我現在就是,為了寫GRUB的文檔,就把menu.lst 刪除了,直接用命令來啟動系統;

2、用命令行來引導Linux操作系統的步驟;

通過命令行來引導操作系統的流程,也沒有什麼難的;無非是把指令手工輸入到grub>提示符的後面;在這個過程中,tab鍵的命令補齊功能就顯得很重要了。如果您不知道有哪些命令,可以輸入help;


1)進入GRUB的命令行模式 grub>

如果開機時,GRUB出現的是grub>,說明你沒有/etc/grub/menu.lst ,您需要自己寫一個才會GRUB的菜單,讓我們來選擇進入哪個系統。如果有GRUB的菜單,www.linuxidc.com 您可以按Ctrl+c組合鍵進入GRUB的命令行模式,會出現 grub> 提示符;
grub>


2)獲取幫助GRUB的 help
只要您在grub>提示符的後面輸入help 就能得到GRUB所有的命令提示;

grub> help
blocklist FILE                         boot
cat FILE                               chainloader [--force] FILE
clear                                  color NORMAL [HIGHLIGHT]
configfile FILE                        device DRIVE DEVICE
displayapm                             displaymem
find FILENAME                          geometry DRIVE [CYLINDER HEAD SECTOR [
halt [--no-apm]                        help [--all] [PATTERN ...]
hide PARTITION                         initrd FILE [ARG ...]
kernel [--no-mem-option] [--type=TYPE] makeactive
map TO_DRIVE FROM_DRIVE                md5crypt
module FILE [ARG ...]                  modulenounzip FILE [ARG ...]
pager [FLAG]                           partnew PART TYPE START LEN
parttype PART TYPE                     quit
reboot                                 root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]]         serial [--unit=UNIT] [--port=PORT] [--
setkey [TO_KEY FROM_KEY]               setup [--prefix=DIR] [--stage2=STAGE2_
terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address
testvbe MODE                           unhide PARTITION
uppermem KBYTES                        vbeprobe [MODE]
如果需要得到某個指令的幫助,就在 help 後面空一格,然後輸入指令,比如;

grub>help kernel


3)cat的用法;
cat指令是用來查看文件內容的,有時我們不知道Linux的/boot分區,以及/根分區所在的位置,要查看/etc/fstab的內容來得知,這時,我們就要用到cat (hd[0-n],y)/etc/fstab 來獲得這些內容;注意要學會用tab鍵命令補齊的功能;
grub> cat (     按tab 鍵會出來hd0或hd1之類的;
grub> cat (hd0, 注:輸入hd0,然後再按tab鍵;會出來分區之類的;
grub> cat (hd0,6)
Possible partitions are:
   Partition num: 0,  Filesystem type unknown, partition type 0x7
   Partition num: 4,  Filesystem type is fat, partition type 0xb
   Partition num: 5,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 6,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 7,  Filesystem type unknown, partition type 0x83
   Partition num: 8,  Filesystem type is reiserfs, partition type 0x83
   Partition num: 9,  Filesystem type unknown, partition type 0x82

grub> cat (hd0,6)/etc/fstab 注:比如我想查看一下 (hd0,6)/etc/fstab的內容就這樣輸入;

LABEL=/                 /                       ext3    defaults        1 1
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda1         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrecorder       auto    pamconsole,exec,noauto,
managed 0 0
有的弟兄可能會說,我不知道Linux安裝在了哪個分區。那根據文件系統來判斷一個一個的嘗試總可以吧我;只要能cat出/etc/fstab就能為以後引導帶來方便;

主要查看/etc/fstab中的內容,主要是Linux的/分區及/boot是否是獨立的分區;如果沒有/boot類似的行,證明/boot和 Linux的/處於同一個硬盤分區;比如上面的例子中LABEL=/ 這行是極為重要的;說明Linux系統就安在標簽為LABEL=/的分區中;

如果您的Linux系統/boot和/沒有位於同一個分區,可能cat (hd[a-n],y) 查到的是類似下面的;

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2

Copyright © Linux教程網 All Rights Reserved