在Ubuntu的中文社区下了个Ubuntu 9.04,想安装着玩玩,本来以前玩过,可是那是在同学的“指导”玩的,觉得没意思,于是过了很久以后,突然想自己玩玩,觉得那才是自己真正想要的
本机上已经安装了Windows XP和Fedora Core 9,用的是Windows XP的引导程序(不想用grub写入MBR,也许是处于先入为主的原因吧),于是在安装FC和Ubuntu是都没安装grub,而是用常见的从硬盘安装的方法取其grub引导安装的那部分来引导linux系统,当然menu.lst的自己去写啦!从硬盘安装linux我这里就不重复了,网上的资料一搜就一大把,我要说的是ubuntu的grub引导系统上的一点改变。如果以前安装fc的人可能都知道在写grub的引导文件menu.lst都知道,用类似以下的代码就可以引导成功。
title Fedora Core 9 (2.6.25-14.fc9.i686)
root (hd0,2)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=LABEL=/ rhgb quiet vga=792
initrd /initrd-2.6.25-14.fc9.i686.img
可是我在安装完Ubuntu9.04,像以前那样写好文件后,本以为可以享受新系统带来的兴奋时,可是问题就和我不期而遇
。引导时总会失败,出现crc error 或system halted或error15 file not find的错误,为什么?当时不知道,于是再网上东找西找,没结果,解决不了,只要是写成类似root(hd0,x)的样子,问题总会出现,那叫一个郁闷啊,于是取出用explore2fs从已经安装了ubuntu的分区里取出menu.lst文件,用它的形式写了menu.lst,于是在下次启动时无意间就看到了ubuntu的开机画面,那叫一个爽啊,贴出文件给大家看看
default=0
timeout=3
splashimage=(hd0,2)/grub/splash.xpm.gz
title Fedora Core 9 (2.6.25-14.fc9.i686)
root (hd0,2)
kernel /vmlinuz-2.6.25-14.fc9.i686 ro root=LABEL=/ rhgb quiet vga=792
initrd /initrd-2.6.25-14.fc9.i686.img
title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 289be983-3504-473d-84d1-511bbeb4a291
kernel (hd0,7)/vmlinuz-2.6.28-11-generic root=UUID=7be913c8-a80e-4321-b291-fdc81b885152 ro quiet splash vga=792
initrd (hd0,7)/initrd.img-2.6.28-11-generic
quiet
title Other
rootnoverify (hd0,0)
chainloader +1
原因一看就明了了,ubuntu已经不再用sda或hda的标志去标识分区,而是用了uuid去标示,这样做肯定能更好的标示分区的位置,在https://help.ubuntu.com/community/UsingUUID这个网页上有详细解释:Linux now prefers to use UUID (Universally Unique Identifier), LABEL, or symlinks to identify media storage devices on a system. Directly using /dev/hd*# or /dev/sd*# is no longer preferred since these device assignments can change between system boots:
希望遇到和我一样问题的同志能从我的经历中得到答案,少走弯路,呵呵!