(分享)ubuntu硬盘引导安装windows的要点

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
人在井天
帖子: 1081
注册时间: 2009-04-29 21:22

(分享)ubuntu硬盘引导安装windows的要点

#1

帖子 人在井天 » 2010-02-07 11:13

本文只是写一下要点,所谓心有灵犀一点通。一些具体细节,视情形再补充吧。
主要说一下安装windows7,附文讲一下安装xp
先说windows7的安装

一、分区准备
二、文件准备
三、引导准备
四、开始安装
五、改写mbr
六、安装完成

一、分区准备
命令行分区工具:fdisk
命令行格式化工具:mkfs mkfs.ntfs
这个工具ubuntu不自带,需要安装:
sudo apt-get install ntfsprogs
图形化分区工具gparted
安装:
sudo apt-get install gparted

至少需要准备两个分区,一个用来存放win7安装程序的,这个分区可以是ntfs,也可以是fat32,但因为文件较大,最好是用ntfs吧。 mkfs.ntfs就是用来把分区格式化成ntfs的。一个是用来安装win7的。活动的主分区必须是windows分区,否则的话,windows是无法安装的。一般建议把win7安装在活动的主分区。否则的话,还需要另外弄一个活动的主分区,诸多不便。ubuntu可以在逻辑分区上引导启动的,而 win7离开了活动主分区就无法启动。

警告:分区调整存在着复杂性和危险性,必须谨慎从事,谋定而后动。
警告:最好不要在win7安装过程中分区,这主要是考虑win7分区工具与linux分区的兼容性问题。否则可能产生不可知的后果。


二、文件准备:
下载win7光盘镜象,然后挂载:
sudo mount -o loop /dir/file.iso /cdrom
注意,这个/dir/file.iso是你下载的win7光盘镜象的文件路径和文件名,比如:
/home/user/win7.iso
请把它换成你自己的。详细请查阅mount命令的用法。这是使用linux需要掌握的基本命令之一。
然后打开/cdrom,一般在桌面上会自动生成的。如果没有生成,去/分区找吧。

把里面的文件全部复制出来,放到你要用来存放win7安装程序的分区里面。建议全部放在一个目录里面,不要改变文件本身的目录结构。
比如我们在这个分区的根目录上建立一个名为win7的文件夹,然后把所有的文件直接复制进里面去。

从这个名为win7的文件夹中把bootmgr文件和boot文件夹复制出来,放到分区的根目录下,在分区的根目录下新建一个文件夹名为sources, 然后从win7文件夹中的sources文件夹复制一个名为boot.wim的文件,把这个文件放到根分区下的sources文件夹内.
这样,根目录下的bootmgr文件和boot文件夹还有sources文件夹下的boot.wim文件,其实就构成了一个完整的winpe.


下载最新版的grub4dos,谷歌一搜即得。把它解压,从里面提取一个名为grub.exe的文件。
把这个文件也放到存放win7安装文件的根目录下。其实也可以随便放到哪里,放到这里方便些吧。

三、引导准备
ubuntu9.10用的引导装置是grub2,而ubuntu9.04用的是grub,因为引导装置的不同。所以引导方式也不相同。

在ubuntu9.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文件的。


在存放win7安装程序的那个分区新建一个空白文件(其实也可以在任意分区),把它重命名为:menu.lst
在这个文件里面写入:

title win7
find --set-root /bootmgr
chainloader /bootmgr
boot

存盘。
重启电脑,选择Grub for Dos进入,再选择win7后,回车即可启动win7安装程序。

如果是ubuntu9.04的话,只需要直接改写它的menu.lst文件即可:

sudo gedit /boot/grub/menu.lst

在末尾添加二段如下:

title grub4dos
root (hdx,y)
kernel /grub.exe
boot

title win7
find --set-root /bootmgr
chainloader /bootmgr
boot

存盘即可。

注意,root (hdx,y),要把这里面的x和y改成你存放grub.exe文件的硬盘编号和分区编号,比如:(hd0,8),须要注意的是,ubuntu9.04使用的是grub,而不是grub2,它的硬盘编号也是从0开始的,这与grub2是一样的,但分区编号也是从0开始的,这与grub2不同。主分区是 0123,逻辑分区是456.......... 所以在grub2下如果是(hd0,9),在grub下就是(hd0,8)


重启电脑,选择grub4dos进入,再选择win7,回车。即可启动win7安装程序。


四、开始安装
等待win7安装程序启动完毕。然后按下shift+f10键,调出cmd命令提示符。
首先查找win7安装程序所在的分区。
先输入:
c:
回车。
然后输入命令:
dir /a
这个命令是显示这个分区根目录下的全部文件。根据文件以确认这个分区是哪个分区。
如果不是,再输入d:
回车。如同上面一样的查找。
这里假设我们存放安装程序的分区是d
然后输入命令:
cd win7
这个命令进入win7文件夹。
再输入:
cd sources
进入sources文件夹。
再输入:
setup.exe
回车。启动win7正式的安装程序。前面我们所启动的其实只是一个预安装环境,也就是所谓的winpe而已。

五、改写mbr
win7正式安装程序启动后,我们先不要急着点下一步。首先按下shift+f10键,调出cmd命令提示符,然后在cmd命令提示符下输入:
bootrec /fixmbr
回车。这个命令改写mbr。
然后在驱动器高级选项中,对要安装win7的分区进行格式化。之所以要格式化,是为了让分区与win7更加兼容。
如果不格式化,至少也要改写pbr
命令:
bootrec /fixboot

后面的安装与光盘安装就没有区别了。按提示一路进行下去就是了。

六、安装完成
这时的ubuntu进不了了。在win7下如何引导ubuntu?借用grub4dos很容易实现的,不赘述。我一般用的办法是,先用dd命令备份下ubuntu的mbr,把它保存为比如:disk.mbr
命令:
dd if=/dev/sda of=disk.mbr bs=512 count=1

然后在win7下添加这个文件的启动项。用这个文件就可以引导ubuntu了。如此不必借助第三方工具。


http://hi.baidu.com/%D5%DC%D1%A7%C1%F9% ... f14cc.html
上次由 人在井天 在 2010-02-09 16:19,总共编辑 1 次。
人在井天
帖子: 1081
注册时间: 2009-04-29 21:22

Re: (分享)ubuntu硬盘引导安装win7的要点

#2

帖子 人在井天 » 2010-02-07 11:34

xp的安装稍麻烦些。主要是找不到可以很方便地用grub4dos引导的支持xp的winpe,我的笨办法是在虚拟机上做成了一个用ntldr引导的winpe.不过,它与盘符号是绑定的,比如c盘。如果盘符变了,就无法启动。好象活动的主分区的盘符总是c盘,没办法更改的。这样,就只能放在c盘。然后用grub4dos引导ntldr启动它。这个办法好象是目前最完美的解决办法。文件并不大,几十M而已。

winpe用到的xp的引导文件:
boot.ini
bootfont.bin
ntldr
ntdetect.com
只有这四个
把这几个加上winpe本身的文件,就构成了一个完整地winpe了。

主要的缺点大约就是只能放在活动的主分区吧。

如果是ghost版winxp的话,则启动win7自带的winpe,再手动运行ghost32即可。
上次由 人在井天 在 2010-02-09 16:07,总共编辑 3 次。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: (分享)ubuntu硬盘引导安装win7的要点

#3

帖子 wangdu2002 » 2010-02-07 20:26

路过学习兼支持,顶之----虽然某近几年内没有安装win7的打算。 :em11
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
人在井天
帖子: 1081
注册时间: 2009-04-29 21:22

Re: (分享)ubuntu硬盘引导安装win7的要点

#4

帖子 人在井天 » 2010-02-08 21:16

发现用grub4dos直接引导winpe的iso光盘镜象很难成功,但是,用它引导MAXDOS.IMG却很成功!

代码: 全选

title MAXDOS.IMG
find --set-root --ignore-floppies MAXDOS.IMG
map --mem MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
只是MAXDOS.IMG功能较弱,但用它来装xp大约也足够了的。
人在井天
帖子: 1081
注册时间: 2009-04-29 21:22

Re: (分享)ubuntu硬盘引导安装windows的要点

#5

帖子 人在井天 » 2010-02-27 18:22

ps:
由于自己的硬盘上原有用windows分区工具所格式化的ntfs分区,所以对于这篇文章中的关于分区一段的阐述有所疏漏。
后来的实践表明,用linux下的格式化工具所格式化的fat32分区和ntfs分区,却并不能成功地引导启动硬盘版的winpe。

对于用grub或者grub2引导的linux系统,硬盘引导安装windows,基本的过程是:
首先用grub或者grub2引导启动grub4dos,这一步的实现并无困难。
然后是用grub4dos引导启动dos或者winpe或者ghost,其实这个ghost可以视为是一种dos。
对于dos的引导,可以用grub4dos引导img文件实现,对于winpe的引导,可以用grub4dos引导iso文件实现,我在那篇文章中用的是通过grub4dos引导启动bootmgr或者ntldr,再通过bootmgr或者ntldr引导启动winpe。
问题就在于,用grub4dos能成功引导bootmgr和ntldr,但是,对于用linux分区工具所格式化的windows分区,虽然在成功进入 windows系统后,能够为windows所识别,但是,却不能为ntldr和bootmgr所正确地识别。由于ntldr和bootmgr不能正确地识别分区,所以并不能成功地引导启动硬盘版的winpe.

解决的办法是:或者是先用grub4dos引导启动img文件的dos,在dos下格式化分区,再用这种分区引导启动ntldr或者bootmgr引导的 winpe,或者索性直接在dos下安装windows系统,或者用grub4dos通过iso文件引导启动winpe。

详情请看:viewtopic.php?f=77&t=258583
xyh00001
帖子: 14
注册时间: 2009-05-04 20:05

Re: (分享)ubuntu硬盘引导安装windows的要点

#6

帖子 xyh00001 » 2010-05-02 21:31

收藏备用之
头像
trick偶treat
帖子: 26
注册时间: 2009-03-18 19:53

Re: (分享)ubuntu硬盘引导安装windows的要点

#7

帖子 trick偶treat » 2010-06-24 12:56

mark一下
头像
leni
帖子: 1989
注册时间: 2008-09-28 17:24

Re: (分享)ubuntu硬盘引导安装windows的要点

#8

帖子 leni » 2010-06-24 16:22

win7一定要准备两个分区吗?
latex 是个命令集,不是软件,所以在应用程序里找不到,也不存在启动。使用的话,自己写个 .tex 的文件,用 latex 编译。viewtopic.php?f=35&t=331555 的 4楼 有入门教程PDF下载。
头像
chunniunai
帖子: 54
注册时间: 2010-05-10 14:55
来自: 杭州

Re: (分享)ubuntu硬盘引导安装windows的要点

#9

帖子 chunniunai » 2010-06-24 17:30

mark
:em11 :em11
焚我残躯,熊熊圣火。
生亦何欢,死亦何苦?
唯善除恶,唯光明故。
喜乐悲愁,皆归尘土。
怜我世人,忧患实多!
怜我世人,忧患实多
ladjzero
帖子: 9
注册时间: 2009-02-25 9:01

Re: (分享)ubuntu硬盘引导安装windows的要点

#10

帖子 ladjzero » 2010-08-11 15:39

mark,现在硬盘全是ubuntu的,只有一个主分区/boot,多分出一个区行吗,不会坏吗? :em06
头像
lgxwqq
帖子: 1145
注册时间: 2009-12-04 13:29

Re: (分享)ubuntu硬盘引导安装windows的要点

#11

帖子 lgxwqq » 2010-08-11 15:53

顶顶 :em11
关注和奉献Tianjin Linux User Group的建设,热心参与开源社区,Linux爱好者,python初学者,希望成为一名geek,求交流求指导

我知道发QQ群是不对的。。。可是:Linux天津qq群104029520 73809331,终有一天会没有QQ的。。

Blog:http://www.freetstar.com //欢迎
twitter:https://twitter.com/freetstar
头像
v02009
帖子: 138
注册时间: 2009-10-04 15:03

Re: (分享)ubuntu硬盘引导安装windows的要点

#12

帖子 v02009 » 2010-08-17 21:18

mark :em11
iyueyun
帖子: 117
注册时间: 2008-04-05 4:28

Re: (分享)ubuntu硬盘引导安装windows的要点

#13

帖子 iyueyun » 2010-08-25 13:32

学习了,试试。。。。。。
iyueyun
帖子: 117
注册时间: 2008-04-05 4:28

Re: (分享)ubuntu硬盘引导安装windows的要点

#14

帖子 iyueyun » 2010-08-25 13:39

看完了,发现,太繁琐。完全不用那么麻烦。唯一的优点就是没有到光驱。

PE-WIN7-fixGRUB,多好。
回复