感谢支持
我们一直在努力

试用Ubuntu 9.10体会 + grub2 +双Linux系统

好不容易下载了个MD5SUM正确的Ubuntu 9.10,大小大概为700M。


迫不及待的安装之后,发觉启动不起来,进入时候显示的用户名为Ubuntu,但是我明明设置的用户名是tony啊,在相应盘符看到Ubuntu已经copy到里面去了,说明应该是安装到硬盘里面去了。


不管它,在桌面上发觉有一个安装的快捷方式,再次通过硬盘安装了一下,重新配置了一下,之后可以启动了。


不过,由于之前,我的系统里面已经安装了Fedora 8和Windows XP系统,启动之后发觉Fedora 8,找不到了。


难道Ubuntu 9.10装了之后其他Linux就启动不起来了??应该不会。


赶快google一下,发觉Ubuntu 9.10是使用的grub2(其实是1.9.x,类似),之前版本用的都是grub1,导致系统启动不起来。


里面有两个关键的文件:核心文件core.img和配置文件grub.cfg,启动时的界面类似下面:



参考《Ubuntu 9.10 grub2的启动配置文件grub.cfg》http://www.linuxidc.com/Linux/2009-12/23181.htm这篇文章,详细讲解了grub2的配置文件,主要部分摘要如下:

grub2改用grub.cfg为配置文件,配置文件包含以下基本内容:(红色为解释部分)



### BEGIN /etc/grub.d/00_header ###
load_env


#加载变量,如果在grubenv保存变量,则启动时装载
set default=”0″


#设置默认引导项,默认值为0
insmod ext2


#插入文件系统支持的模块,除了用作启动的分区外,其他分区格式可在menuentry底下再添加
set root=(hd0,8)


# 指定系统root分区,也就是 / 分区
search –no-floppy –fs-uuid –set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b


#指定uuid=2d61e5f9-1d2a-4167-a6f1-b991ba00878b的分区为root分区,如果前面的分区号(hd0,8)的#uuid与这里的uuid一致,这两句作用一样,如果不一致,则指定uuid的起作用。


if loadfont /usr/share/grub/unicode.pf2 ; then


#设置终端字体,unicode.pf2支持中文字符显示
set gfxmode=640×480


#设置显示分辨率,默认为640×480,可用800×600,1024×768,建议跟你想设定的图片大小一致
insmod gfxterm


#插入终端模块gfxterm,支持中文字符显示和支持24位图像
insmod vbe


#插入vbe模块,GRUB2引入模块化机制,要使用它,需要在这里加入
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don’t
# understand terminal_output
terminal gfxterm


#设定grub2终端为gfxterm
fi
fi
set timeout=10


#设定默认启动前等待时间,默认为10秒
### END /etc/grub.d/00_header ###


### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black


#设定菜单字体及背景颜色
set menu_color_highlight=black/blue


#设定选择项字体及背景颜色


#如果使用默认,背景将完全被蓝色挡住了,需要修改blue为black,背景图片才能显示
### END /etc/grub.d/05_debian_theme ###


### BEGIN /etc/grub.d/10_linux ###


#10_linux为系统自动添加的当前root分区linux引导项


#每个菜单项要包括menuentry双引号” “和大括号{ }才完整,否则不显示菜单
menuentry “Ubuntu, Linux 2.6.31-10-generic” {
set quiet=1
insmod ext2
set root=(hd0,8)
search –no-floppy –fs-uuid –set 2d61e5f9-1d2a-4167-a6f1-b991ba00878b


#这句与set root=(hd0,8)效果一样,可删除其一,二者不一致以这句为准
linux /boot/vmlinuz-2.6.31-10-generic root=UUID=2d61e5f9-1d2a-4167-a6f1-b991ba00878b ro quiet splash


#不喜欢看到一长串的, roo=UUID=***可用root=/dev/sda8(/分区的分区号)代替
initrd /boot/initrd.img-2.6.31-10-generic
}



### END /etc/grub.d/10_linux ###


#20_memtest86+为系统自动添加的内存测试菜单项
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry “Memory test (memtest86+)” {
linux16 /boot/memtest86+.bin
}
menuentry “Memory test (memtest86+, serial console 115200)” {
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
#30_os-prober或30_others为系统自动查找并添加其他系统菜单项,按windows,linux,macos顺序


#查找并添加,支持windows 7识别
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_otheros ###
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
menuentry “Microsoft Windows XP Professional” {
set root=(hd0,1)
search –no-floppy –fs-uuid –set e852-230b
drivemap -s (hd0) $root


#对以ntldr引导的系统如win2000,xp,win2003,因其引导机制只能从第一硬盘启动,系统会自动添加#映射命令,对vista和win7就没有这句命令
chainloader +1
}
### END /etc/grub.d/30_otheros ###
#40_custom为自定义的启动项,如启动cdlinux
### BEGIN /etc/grub.d/40_custom ###


menuentry “CDLinux”{


set root=(hd0,8)


linux /CDlinux/bzImage root=/dev/ram0 vga=791 CDL_LANG=zh_CN.UTF-8


initrd /CDlinux/initrd


}
### END /etc/grub.d/40_custom ###

赞(0) 打赏
转载请注明出处:服务器评测 » 试用Ubuntu 9.10体会 + grub2 +双Linux系统
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏