grub shell 错误_各种情况GRUB损坏进不了系统的解决方案
1.在磁盤分區表變動之后,比如刪除了grub.cfg所在分區的前一個分區,導致分區號前移一位時,開機顯示 grub rescue> 。
處理方法:(假設原來grub.cfg在/dev/sda4,而現在變成了/dev/sda3)
ls
(查看分區)
ls (hd0,7)/boot/
(查看該分區是不是能被識別的linux分區,grub是否被裝在該分區)
set
(顯示環境變量)
prefix=(hd0,3)/boot/grub
root=hd0,3
insmod /boot/grub/linux.mod
(進入grub命令行)
normal
(即可使用原來的grub啟動菜單)
2.在grub.cfg損壞的情況下
linux /boot/vmlinuz(按TAB補完)root=/dev/sda3 (不要忘了!)
(grub1是kernel指令)
initrd /boot/initrd.img(按TAB補完)
boot
(啟動原有系統)
3.從優盤/光盤啟動ubuntu修復原有系統(Ubuntu 8.04):
ubuntu 8.10開始支持優盤啟動,并且基本做到兼容所有硬件。
# grub-install /dev/sda --root-directory=/media/sda3
找個干凈的環境,避免把優盤上的系統也寫進啟動項
a)for grub
# update-grub
b)for grub2
# grub-mkconfig -o /boot/grub/grub.cfg
# update-grub2
(ubuntu 8.04的grub2沒有grub-mkconfig,只能用這個,這個沒有辦法自動加入Windows啟動項)
可能需要修改 /boot/grub/device.map
#----------------------------------------------------------------------
(hd0)/dev/sda
(hd1)/dev/sdb
(hd2)/dev/sdc
#----------------------------------------------------------------------
安裝grub2:
# sudo apt-get install grub2
# grub-install --version #顯示為1.97
4.從優盤/光盤啟動ubuntu修復原有系統(Ubuntu 10.04):
ubuntu 10.04開始方法又改變了,優盤啟動的環境下"/"上掛載的是squashfs,然后grub-mkconfig和update-grub2都會提示"cannot find a device for /"失敗。
不過grub-install已經成功了,所以如果重啟用rescue模式進入系統再grub-mkconfig也可以。
ubuntu 10.04安裝盤開始默認不給選擇語言、安裝還是試用的界面了,如果要用這個界面,啟動時按Enter。
更方便的方法是使用:(假設Ubuntu裝在/dev/sda1)
#----------------------------------------------------------------------
# mount ? ? ? ? ? /dev/sda1 /mnt
# mount -t proc ? proc ? ? ?/mnt/proc #可省略
# mount -t sysfs ?sys ? ? ? /mnt/sys ?#可省略
# mount -o bind ? /dev ? ? ?/mnt/dev
# chroot /mnt /bin/bash
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
#
# cd /
# umount -a
# exit
# cd /
# umount -a
# reboot
#----------------------------------------------------------------------
5.配置grub2的參數
grub2不建議修改/boot/grub/grub.cfg,而是由配置文件和配置腳本在每次改動內核時自動生成,配置文件如下:
#----------------------------------------------------------------------
/etc/default/grub #控制變量定義
/etc/grub.d/* #生成grub.cfg使用到的scripts
#----------------------------------------------------------------------
以上全部使用 bash 的語法。
在grub2啟動界面上按e來臨時修改啟動項,編輯后Ctrl+x啟動
按c來進入grub shell,指令vbeinfo能夠看到所有支持的VESA模式
6.調整GRUB界面的分辨率
grub通過啟動內核參數vga=792(1024x768x32),vga=795(1280x1024x32)等來啟動framebuffer,修改控制字符界面的分辨率。
grub2廢棄了vga選項,但是用vga還是可以用的。
在/etc/default/grub 中加入以下變量定義,就能設置所有linux啟動項的字符界面分辨率為720x400x32(至少是寬屏的,能在寬屏筆記本上看上去少難看一點):
#----------------------------------------------------------------------
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="quiet splash gfxpayload=keep"
GRUB_GFXMODE=720x400x32
GRUB_GFXPAYLOAD_LINUX="$GRUB_GFXMODE"
#----------------------------------------------------------------------
(grub2 1.98的grub.d才會根據GRUB_GFXMODE決定是否寫入設置gfxpayload的項,grub2 1.96就不會理會)
(Ubuntu 10.04 apt-get默認得到grub2 1.98)
(Ubuntu 8.04 apt-get默認得到grub2 1.96)
總結
以上是生活随笔為你收集整理的grub shell 错误_各种情况GRUB损坏进不了系统的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java字节流分为_Java文件流可分为
- 下一篇: linux 磁盘簇,linux系统exe