好不容易下载了个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 ###