一、分区准备
二、文件准备
三、引导准备
四、开始安装
五、改写mbr
六、安装完成
本文只是写一下Ubuntu硬盘引导安装Windows 7的要点,所谓心有灵犀一点通。一些具体细节,视情形再补充吧。
一、分区准备
命令行分区工具:fdisk
命令行格式化工具:mkfs mkfs.ntfs
这个工具Ubuntu不自带,需要安装:
sudo apt-get install ntfsprogs
图形化分区工具gparted
安装:
sudo apt-get install gparted
至少需要准备两个分区,一个用来存放Windows 7安装程序的,这个分区可以是ntfs,也可以是fat32,但因为文件较大,最好是用ntfs吧。 mkfs.ntfs就是用来把分区格式化成ntfs的。一个是用来安装Windows 7的。活动的主分区必须是Windows分区,否则的话,Windows是无法安装的。一般建议把Windows 7安装在活动的主分区。否则的话,还需要另外弄一个活动的主分区,诸多不便。Ubuntu可以在逻辑分区上引导启动的,而 Windows 7离开了活动主分区就无法启动。
警告:分区调整存在着复杂性和危险性,必须谨慎从事,谋定而后动。
警告:最好不要在Windows 7安装过程中分区,这主要是考虑Windows 7分区工具与Linux分区的兼容性问题。否则可能产生不可知的后果。
下载Windows 7光盘镜象,然后挂载:
sudo mount -o loop /dir/file.iso /cdrom
注意,这个/dir/file.iso是你下载的Windows 7光盘镜象的文件路径和文件名,比如:
/home/user/Windows 7.iso
请把它换成你自己的。详细请查阅mount命令的用法。这是使用Linux需要掌握的基本命令之一。
然后打开/cdrom,一般在桌面上会自动生成的。如果没有生成,去/分区找吧。
把里面的文件全部复制出来,放到你要用来存放Windows 7安装程序的分区里面。建议全部放在一个目录里面,不要改变文件本身的目录结构。
比如我们在这个分区的根目录上建立一个名为Windows 7的文件夹,然后把所有的文件直接复制进里面去。
从这个名为Windows 7的文件夹中把bootmgr文件和boot文件夹复制出来,放到分区的根目录下,在分区的根目录下新建一个文件夹名为sources, 然后从Windows 7文件夹中的sources文件夹复制一个名为boot.wim的文件,把这个文件放到根分区下的sources文件夹内.
这样,根目录下的bootmgr文件和boot文件夹还有sources文件夹下的boot.wim文件,其实就构成了一个完整的winpe.
下载最新版的grub4dos。把它解压,从里面提取一个名为grub.exe的文件。
把这个文件也放到存放Windows 7安装文件的根目录下。其实也可以随便放到哪里,放到这里方便些吧。
三、引导准备
Ubuntu 9.10用的引导装置是grub2,而Ubuntu 9.04用的是grub,因为引导装置的不同。所以引导方式也不相同。
在Ubuntu 9.10下:
sudo gedit /etc/grub.d/40_custom
在这个文件的末尾添加一段如下:
menuentry “Grub for Dos” {
insmod ntfs
set root=(hd0,9)
Linux /grub.exe
}
这里需要改写的是,如果你的分区不是ntfs的话,请把insmod ntfs这一行去掉。
这个(hd0,9)是指第一硬盘第九分区。硬盘是从0开始编号的,而分区则是从一开始编号的。主分区是一二三四,逻辑分区则是五六…..
把这个硬盘和分区编号换成你自己的。
然后在终端中输入命令:
sudo update-grub
这个命令是刷新grub.cfg文件的。
在存放Windows 7安装程序的那个分区新建一个空白文件(其实也可以在任意分区),把它重命名为:menu.lst
在这个文件里面写入:
title Windows 7
find –set-root /bootmgr
chainloader /bootmgr
boot
存盘。
重启电脑,选择Grub for Dos进入,再选择Windows 7后,回车即可启动Windows 7安装程序。
如果是Ubuntu 9.04的话,只需要直接改写它的menu.lst文件即可:
sudo gedit /boot/grub/menu.lst
在末尾添加二段如下:
title grub4dos
root (hdx,y)
kernel /grub.exe
boot
title Windows 7
find –set-root /bootmgr
chainloader /bootmgr
boot
存盘即可。
注意,root (hdx,y),要把这里面的x和y改成你存放grub.exe文件的硬盘编号和分区编号,比如:(hd0,8),须要注意的是,Ubuntu 9.04使用的是grub,而不是grub2,它的硬盘编号也是从0开始的,这与grub2是一样的,但分区编号也是从0开始的,这与grub2不同。主分区是 0123,逻辑分区是456………. 所以在grub2下如果是(hd0,9),在grub下就是(hd0,8)
重启电脑,选择grub4dos进入,再选择Windows 7,回车。即可启动Windows 7安装程序。
等待Windows 7安装程序启动完毕。然后按下shift+f10键,调出cmd命令提示符。
首先查找Windows 7安装程序所在的分区。
先输入:
c:
回车。
然后输入命令:
dir /a
这个命令是显示这个分区根目录下的全部文件。根据文件以确认这个分区是哪个分区。
如果不是,再输入d:
回车。如同上面一样的查找。
这里假设我们存放安装程序的分区是d
然后输入命令:
cd Windows 7
这个命令进入Windows 7文件夹。
再输入:
cd sources
进入sources文件夹。
再输入:
setup.exe
回车。启动Windows 7正式的安装程序。前面我们所启动的其实只是一个预安装环境,也就是所谓的winpe而已。
五、改写mbr
Windows 7正式安装程序启动后,我们先不要急着点下一步。首先按下shift+f10键,调出cmd命令提示符,然后在cmd命令提示符下输入:
bootrec /fixmbr
回车。这个命令改写mbr。
然后在驱动器高级选项中,对要安装Windows 7的分区进行格式化。之所以要格式化,是为了让分区与Windows 7更加兼容。
如果不格式化,至少也要改写pbr
命令:
bootrec /fixboot
后面的安装与光盘安装就没有区别了。按提示一路进行下去就是了。
六、安装完成
这时的Ubuntu进不了了。在Windows 7下如何引导Ubuntu?借用grub4dos很容易实现的,不赘述。我一般用的办法是,先用dd命令备份下Ubuntu的mbr,把它保存为比如:disk.mbr
命令:
dd if=/dev/sda of=disk.mbr bs=512 count=1
然后在Windows 7下添加这个文件的启动项。用这个文件就可以引导Ubuntu了。如此不必借助第三方工具。