admin 管理员组

文章数量: 887021

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)

本文标签: 进不去 进不了 解决方案 情况 系统