grub命令行啟動linux
『壹』 linux redhat 開機後直接進入grub界面。提示信息為:minimal BASH-like editing is supported.
linux redhat 開機後直接進入grub界面,是設置錯誤造成的,解決方法如下:
1、首先啟動centos7電源,在下面圖形化界面處按下空格,讓系統停止在此界面,一般此界面默認時間為5秒。
『貳』 linux開機如何進入grub界面
我不知道大家為什麼都說按esc鍵,我按esc鍵就沒有任何反映,重點是一定要用滑鼠把虛擬機當前系統窗口點為激活狀態,也就是說虛擬機系統窗口看不到滑鼠了,然後你再按「任意鍵」就可以進入可選菜單了,說一下我的環境
VMware15Pr 安裝在win10操作系統上
CentOS 5.11 安裝 在VMware虛擬機上
從虛擬機開啟linux想要進入啟動時的grub需要注意幾個點:啟動菜單是否配置好,手速是否夠快,系統藍色窗口是否被滑鼠激活等,說明如下~~
/boot/grub/menu.lst(或者/boot/grub/grub.conf),此文件是否timeout參數設置過小,默認是5秒,如果你手速不夠快的話,可以改成10或者20秒。不夠快的話系統會默認進入可選菜單的第一項
hiddenmenu參數默認開啟,也就是說默認菜單選擇界面是不顯示的,只顯示藍色界面(當然你手速夠快也沒啥大問題),如果想開機顯示可選菜單就把這個參數給注釋掉,前面加上# 變成 #hiddenmenu
以上都沒有問題後,在藍色界面出現時按任意鍵就能夠進入可選菜單,這時按下方界面說明 按e、a、c、b等鍵可進行grub命令控制或者修改你的menu.lst文件
『叄』 Linux 修復grub開機引導(ubuntu)
問題 : 有時候Linux系統/boot分區損壞時,啟動Linux系統時直接進入字元介面的grub引導,並沒有進入到系統或者開機顯示 error:unknow filesystem提示
解決辦法:
Linux開機自動會進入到grub引導介面(如果沒進入到grub引導介面可以按C鍵進入)
第一步:找到系統對應的扇區及/boot/grub目錄
注意 :假設是硬碟介面類型sd,hd0對應是sda hd1對應是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇區信息(盤符、空間等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇區下的內容(文件、文本等)
如果列印每個扇區目錄信息,會出現兩種情況:
1、ls (hd1,gpt2)顯示Unknow filesystem提示說明這個扇區不是我們要找系統分區
2、ls (hd1,gpt2)顯示/boot /proc等系統目錄信息說明這個扇區是我們要找的系統分區
如果找到對應扇區的系統分區,可能會遇到兩種情況:
1、 A目錄下有/boot/grub
2、A目錄下有/boot,B目錄下有/grub (此時在第二步載入系統內核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:載入系統內核
grub > set root=hd1,2 #此處不需要括弧,加括弧也可以,hd0和hd1是有區別
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必須使用TAB補全(可能有後綴),注意sda或sdb需要看自己的實際情況
grub > initrd /initrd.img-xxx #TAB補全,多內核情況下版本需統一
grub > boot
提示 :如果在boot之後不幸進入BusyBox,說明參數設置有問題,可以仔細查看出錯的日誌,再重啟系統後重復執行第二步操作(重啟系統後上面設置的參數會被清空)。
第三步:修改grub引導
如果成功進入系統,記得要馬上信息grub引導,不然重啟系統後問題還是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重啟系統
重啟系統後即可正常進入系統
reboot
『肆』 如何用GRUB引導LINUX
步驟如下:
a 進入grub的命令模式。進入grub界面後按C鍵進入命令行界面。
b 先熟悉一下grub 的一些命令 grub>help
c 熟悉一下cat命令
d root指令來指定/boot所在的分區
e kernel指令來指定linux的內核,及所在的分區
f 用initrd命令來指定initrd文件
g boot引導系統
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
主要查看/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
root (hd[0-n,y) 指令來指定/boot所在的分區;
其實這個root (hd[0,n],y)是可以省略的,如果省略了,要在kerenl 命令中指定;前面已經說過 (hd[0-n],y) 硬碟分區的表示方法的用途;主要是用來指定 /boot所在的分區;
eg:
grub> root (hd0,0)
kernel 指令,用來指定Linux的內核,及/所在的分區;
kernel 這個指令可能初學者有點怕,不知道內核在哪個分區,及內核文件名的全稱是什麼。不要忘記tab鍵的命令補齊的應用;
如果已經通過root (hd[0-n],y) 指定了/boot所在的分區,語法有兩個:
如果/boot和Linux的/位於同一個分區,應該是下面的一種格式;
kernel /boot/vmlinuz在這里按tab鍵來補齊,就看到內核全稱了 ro root=/dev/hd[a-z]X
如果/boot有自己獨立的分區,應該是;
kernel /vmlinuz在這里按tab鍵來補齊,就看到內核全稱了 ro root=/dev/hd[a-z]X
在這里 root=/dev/hd[a-z]X 是Linux 的/根所位於的分區,如果不知道是哪個分區,就用tab出來的來計算,一個一個的嘗試;或用cat (hd[0-n],y)/etc/fstab 中得到Linux的/所在的分區或分區的標簽;
grub> kernel /boot/在這里按tab鍵;這樣就列出/boot中的文件了;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369
_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55
.1 xen-syms xen.gz
grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
註解: root=LABEL=/ 是Linux的/所在的分區的文件系統的標簽;如果您知道Linux的/在哪個具體的分區,用root=/dev/hd[a-z]X來指定也行。比如下面的一行也是可以的;
grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
也可以把/boot所在的分區的指定 root (hd[0-n],y)這行省掉,直接在kernel 中指定/boot所在的分區;所以就在下面的語法;
如果是/boot和Linux的根同處一個分區;
kernel (hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X
比如:
grub>kernel
如果是/boot和Linux所在的根不在一個分區;則是;
kernel (hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]X
grub> kernel (hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7
[Linux-bzImage, setup=0x1e00, size=0x18e473]
或下面的輸入,以cat 出/etc/fstab內容為准;
grub> kernel (hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
initrd 命令行來指定initrd文件;
grub> initrd /boot/initrd在這里tab 來補齊;
grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]
如果/boot是獨立的一個分區,應該是如下樣子的語法;比如下面的;
grub> initrd /initrd在這里tab 來補齊;
grub> initrd /initrd-2.6.11-1.1369_FC4.img
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]
boot 引導系統;
grub>boot
下面是在我機器上的命令:
grub> cat (hd0,0)/etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
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
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> kernel /boot/在這里按tab補齊,全列出/boot所有的文件;
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4
memtest86+-1.55.1 xen-syms xen.gz
grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/
[Linux-bzImage, setup=0x1e00, size=0x18e473]
grub> initrd /boot/在這里按tab補齊
Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK
memtest86+-1.55.1 xen-syms xen.gz
grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 注;輸入intrd文件名的全名;
[Linux-initrd @ 0x2e1000, 0x10e685 bytes]
grub> boot