ubuntu修復grub命令
今天在備份grub.cfg的時候出了點問題,導致誤刪了grub.cfg,要命的是我當時還沒有意識到這點。重啟後只見黑底白字的grub命令行界面,一行grub>等待著我輸入命令,好吧,我來修復你T T
1.grub>ls
顯示出來了多個分區,分別是(hd0)(hd0,msdos4),(hd0,msdos1),(hd0,msdos2),(hd0,msdos3)
2.grub>ls (hd0,msdosX)/boot/grub x代表數字
多次執行上面的命令,從1試到了4,終於在ls (hd0,msdos4)/boot/grub 的時候顯示出了一堆東西而不是no such file or directory了,到這裡就成功了一半了
3.grub>set root=(hd0,msdosx) x代表數字,在第二步中我找到我的數字是4了,輸入的是msdos4
grub>setprefix=(hd0,msdosx)/boot/grub x代表數字,在第二步中我找到我的數字是4了,輸入的是msdos4
grub>insmod normal
grub>normal
一般來說到了這裡就會啟動系統了,但是我的卻是提示未載入kernel,好吧,我這就載入kernel
4.grub>linux (hd0,msdosx)/boot/vmlinuz-(kernel版本號) ro root=/dev/sdax x代表數字,我的是msdos4.所以我這裡輸入sda4
這裡需要著重說明。首先,網上說的kernel (hd0,msdosx)/boot/vmlinuz-(kernel版本號) ro root=/dev/sdax在我的ubuntu13.04中提示無kernel這個命令,經過谷歌才知道已經不用kernel而是改用linux了。其次,關於kernel版本號,當你輸入到linux (hd0,msdosx)/boot/vmlinuz-這裡時,多次連續按下鍵盤左上角的Tab鍵就會出現多個你的系統裡面所有kernel版本的名字,你選一個合適的照著打就OK了。
5.grub>initrd /boot/initrd-(initrd版本號)
這裡輸入版本號也是和輸入kernel版本號的方法一樣,Tab鍵顯示系統所有的initrd版本。注意,這個版本號一定要和你剛才設定的kernel版本號一致!
6.grub>boot
一般來說,輸入這條命令後就會閃現一堆滾動的英文,然後卡在一個界面一段時間,之後就可以看見你的系統了!
7.不要高興得太早了,其實啟動的問題還沒有解決,終端輸入命令 update-grub ,OK啦,grub修復完成!