歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 通過GRUB命令行編輯啟動Linux操作系統

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

日期:2017/2/28 16:22:43   编辑: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