Chinaunix首页 | 论坛 | 博客
  • 博客访问: 357478
  • 博文数量: 127
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 333
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-27 14:44
个人简介

兴趣是最好的学习契机!

文章分类

全部博文(127)

文章存档

2017年(1)

2016年(3)

2015年(54)

2014年(58)

2013年(11)

我的朋友

分类: LINUX

2015-04-27 21:44:06


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)

阅读(1766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~