存档

文章标签 ‘grub’

使用 grub2

2009年7月24日 wd 没有评论

看到 ub 要默认用 grub2 了,看来这个东西够稳定了,就折腾了下。过程还有点头大,呵呵。这个东西最大的问题就是文档怎么那么少?。。。

国内的大都是抄的 这个 ,里面不知道为什么没有排版,那个样例用的是 debian,我用的 gentoo,有点小区别。

gentoo 里面先 keyword unmask grub 1.96,然后安装他。

echo "=sys-boot/grub-1.96 **" >> /etc/portage/package.keywords

安装之后,先重新生成 device.map。然后执行 update-grub 生成 grub 的一些配置文件,这个生成是根据的 /etc/grub.d 下面的文件,如果有兴趣可以去配置,我反正没配置,我手动修改的配置文件。

sudo grub-mkdevicemap
sudo update-grub # 不是必须,可以手动生成配置文件

现在去看看 /boot/grub/grub.cfg 文件,里面应该会根据你的系统生成了一些东西。再改巴改巴,下面是我的。对了这个文件是只读的,改一下属性就好了。

set default=0
set timeout=5
set root=(hd0,1)
 
insmod terminal
insmod gfxterm
insmod vbe
insmod font
insmod png
 
font /boot/grub/unifont.pff
set gfxmode=1024x768
terminal gfxterm
 
set menu_color_normal=white/black
set menu_color_highlight=white/dark-gray
 
#background_image /boot/grub/bg.tga
background_image /boot/grub/dev2.png
 
 
### END /etc/grub.d/00_header ###
 
### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###
 
### BEGIN /etc/grub.d/10_linux ###
menuentry "无敌Gentoo" {
	linux	/vmlinuz root=/dev/hda5 ro video=uvesafb:1024x768-32,mtrr:3,ywrap
}
 
menuentry "Gentoo (old kernel)" {
	linux /vmlinuz-old root=/dev/hda5 ro video=uvesafb:1024x768-32,mtrr:3,ywrap
}
 
menuentry "测试JPEG背景图片" {
  background_image /boot/grub/dev.tga
}
 
 
#title		Gentoo bootchartd
#root		(hd0,0)
#kernel		/vmlinuz root=/dev/hda5 video=uvesafb:1024x768-32,mtrr:3,ywrap init=/sbin/bootchartd
#savedefault
#
#
#title		Gentoo (rescue)
#root		(hd0,0)
#kernel		/vmlinuz root=/dev/hda5 init=/bin/bb
#savedefault

注意后面两个注释,其实就是老的 grub 用的,对照一下就应该知道怎么改了。原来的 hd0,0 变成了 hd0,1 ,这个是需要注意的。

那个背景图片是有要求的,我的用 file 查看是这样的 “dev.png: PNG image, 800 x 600, 8-bit/color RGBA, non-interlaced”,具体对 png jpg tga 的要求,还是去看 man 吧。我试了 tga 文件,好像有点慢,我那个 png 速度还行。

那个 font 是从 这里 下的,支持中文。

配置好之后执行 sudo grub-install /dev/hda 就安装好了,没什么错误的话就可以重启看效果了。

分类: Linux 标签:

恢复grub

2006年12月30日 wd 没有评论

安装双系统的时候,如果后安装的 win ,那么就会把mbr的grub信息干掉。通常的建议是先安装win后安装linux。

今天遇到的情况是通过 vmware  安装 suse 到物理硬盘的时候,没有将 grub 安装到 mbr,这样需要重新安装一下grub。

我的方法是找了一个 knoppix ,然后启动到 level 2 ,启动之后执行下面的命令先。

mount /dev/hdax /mnt/hdax #挂载linux的/分区
mount -o proc none /mnt/hdax/proc
mount --bind /dev/ /mnt/hdax/dev

这样操作之后,就可以chroot到硬盘上面的系统了。

chroot /mnt/hdax /bin/bash

然后自己修改 /boot/grub/menu.1st 文件。之后执行 grub 命令。

grub>root (hd0,x-1)
grub> setup (hd0)

我这里操作的时候遇到一个问题,suse好像往grub的map.xxx.gz里面写了关于fd0的信息,这样运行grub命令的时候会尝试去读取软驱。我在bios里面禁用了软驱才ok。

分类: Other 标签: