XP引导Ubuntu--Ubuntu手记之系统配置
昨天夜里为了等丁丁睡醒(现在每天也就这点时间能做点自己的事情),试着在笔记本中装上了下载了很久的Ubuntu 8.04。
因为之前就已经试着装过(unbuntu的硬盘安装), 因此一切都是轻车熟路。这次希望能向原来未曾解决的问题发起冲锋:使用XP的引导程序来引导Ubuntu。
照老规矩,安装时不将Grub写入到mbr,先让Ubuntu先沉睡在系统中,然后再配置Windows XP来引导Ubuntu。
经过一番探索发现理论上应该有两种方法:
方法一:使用XP来直接引导Ubuntu,也就是boot.ini中配置的是Ubuntu的引导文件(扇区?),这种方法我没实验成功。
方法二:实验成功了,但并不能算是真正意义上的XP引导,因为本质是使用Grub。即XP引导Grub,再由Grub引导Ubuntu。
我的boot.ini如下:
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
c:\grldr=Ubuntu
grldr是安装时就复制到C盘根目录下的,一起复制过来的还有initrd.gz和menu.lst,menu.lst如下:
2 timeout 0
3
4 title Ubuntu
5 kernel (hd0,6)/boot/vmlinuz-2.6.24-16-generic root=/dev/sda7 ro quiet splash
6 initrd (hd0,6)/boot/initrd.img-2.6.24-16-generic
7 boot
8
9 title Windows XP
10 rootnoverify (hd0,0)
11 makeactive
12 chainloader +1
其中9-12行只是让Grub可以重新引导XP,真正重要的是4-7行,timeout设置为0是为了跳过Grub的选择,此时相当于废除了重新引导到XP的选择。
需要说明的首先是内核文件的名字和位置,在/boot目录下的两个,是后来到系统中翻出来的,,也可以使用默认的链接:/vmlinuz和/initrd.img,这两个链接总是指向更新后的内核,这样即使内核变了也不会有问题。
其次是一定要指向正确的磁盘分区,这儿是(hd0,6)是因为在我的机器上Ubuntu安装在XP分区后面,我的分区情况如下:
XP主分区(ntfs) | XP逻辑分区1 | XP逻辑分区2 | Ubuntu分区。
其中两个逻辑分区在一个扩展分区中。没有仔细去看相关文档,我的推论是:主分区为(hd0,0),扩展分区为(hd0,1),因为mbr中共能放4个分区,因此(hd0,2)和(hd0,3)是保留给它们的。往后再排就是(hd0,4)表示逻辑分区1,(hd0,5)表示逻辑分区2,而Ubuntu分区就是(hd0,6)了。
因为是SATA硬盘,因此分区被Ubuntu标识为/dev/sda*,*的编号从1开始,自然Ubuntu的分区就是/dev/sda7了。
上面关于Grub分区编号以及Ubuntu分区标识只是我的臆断,还需权威认证。