先装ubuntu后装windows时遇到的问题的解决办法
先说下情况,我的一台机器上装着ubuntu10.04TLS,500G的硬盘空间,用了大概200G,其余的都是剩余空间,之前安装10.04的时候估计就考虑到了之后可能安装其他系统的情况,所以,分区是一个200M的boot,在sda1;一个100G的根目录,在sda2;这两个都是主分区,然后建立了一个200G的主分区,并没有挂载,然后建立了一个扩展分区,在扩展分区中建立了一个sda5逻辑分区,挂载到home,也是100G,然后一个3G的swap。后面还有一段90G左右的空闲空间。
下午的时候想试试最新的ubuntu12.04TLS,就download下iso镜像,刻盘,安装,这个过程比较顺畅,我从最后的90G空间空间中分出了50G的sda7挂载根目录,300M的sda8挂载boot。(swap分区共用之前10.04的)。这两个都是逻辑的分区。安装完成后,12.04就接手了硬盘的MBR,10.04也可正常选择启动。
然后,我又想将那没有挂载的200G的主分区安装上windows7,然后,我就这么做了,200G都给了c盘,因为不可以有其他的分区了,已经是3个主分区,一个扩展分区了。
这里有一个值得注意的地方,ubuntu安装的时候,可以将空闲空间加入到扩展分区中,我是这么认为的,这很好,但同时也有点费解,图形化安装ubuntu的时候,不可以选择建立一个扩展分区,而只可以选择建立一个主分区和逻辑分区,这也算不好的一点吧。
言归正传,windows 7安装好了,也可以用了。但显然的之前安装的10.04和12.04不可以用了。
解决的办法是:重新安装10.04和12.04的grub,分别安装到对于的boot分区,10.04对应的sda1,12.04对应的sda8。然后,windows7中使用easybcd,将sda1和sda8加入到windows7的启动选择中。
放入10.04或者12.04的安装盘,其实就是livecd,我用10.04的,选择试用而不安装,进入图形界面,然后打开终端,操作如下:
sudo -s mount /dev/sda2 /mnt mount /dev/sda1 /mnt/boot mount /dev/sda5 /mnt/home mount -t proc /proc /mnt/proc mount --rbind /dev /mnt/dev chroot /mnt grub-install --force /dev/sda1
上面是添加10.04的启动项。
然后是12.04的,与之类似,先umount,然后mount,chroot,grub-install --force /dev/sda8。
这里grub-install 后面带--force是必须的,不然会不准安装,ubuntu推荐就安装到MBR上。
10.04和12.04的安装完毕后,就进入windows7,试用easybcd的add entity。如图:
最终的分区如下: