仅供参考,收集整理资料,谨慎使用,而且本文中介绍的Fedora版本还是7。
对于某些安装Linux和Windows XP双系统的用户,在重装Windows XP时可能出现XP安装光盘无法启动的情况。具体表现为,XP安装程序在显示”Setup is inspecting your computer’s hardware configuration…”后出现死机。通常情况下,擦除硬盘中的数据和主引导记录(MBR),或者删除系统中的Linux分区后能够使XP安装光盘正常工作。如果用户希望在不破坏原有Linux系统的情况下重新安装XP应该怎么做呢?
笔者通过大量尝试,摸索出了一套行之有效的方法。笔者的系统分区如下:
1.Fedora 7及其启动分区(/boot),安装在/dev/sda1下,该硬盘在BIOS中设置为第一启动选项。
2.Windows XP安装在/dev/sda1下,或者安装在其他硬盘上。
本文讨论的操作均在上述背景下进行,如果读者的系统分区布置与笔者的不同(确实有这样的情况),那么本文讨论的方法可能对你没有帮助。
重要:下面讨论的一些方法要求读者具有一定的高级技能并对GRUB和NTLoader有一定的了解。一些操作细节可能不适合新手,需要注意其风险并谨慎操作。笔者对此没有任何承诺和保证。
警告:下面讨论中用到的一些工具和命令对系统和数据可能具有潜在的风险,因此,除非你确实知道自己在做什么,并能承受系统和数据被完全破坏的风险,否则请不要轻易尝试。
处理流程:
XP安装程序提示”Setup is inspecting
the hardware configuration”后死机
|
|
|
Linux系统是否需要保留?
/ \
No Yes
/ \
删除所有Linux分区并重新安装 XP和Linux是否安装在
Windows XP系统.见注1。 同一硬盘上?
/ \
Yes No
/ \
是否有另一个硬盘(其上没有 在BIOS中将安装有XP的硬盘
Linux分区) ,并能在BIOS 设为第一启动项,重新安装XP,
中将其设为第一启动项? 恢复原BIOS的启动顺序。
/ \
Yes No
/ \
在BIOS中将另一个硬盘(其上 Linux启动分区(/boot)
没有Linux分区)设为第一启动 在/dev/sda1上?
项,重新安装XP,恢复原BIOS / \
的启动顺序。见注2。 No Yes
/ \
??? 删除Linux启动分区(/boot)
未测试 重新安装XP,恢复(/boot)分
区。见注3。
注1:删除所有Linux分区。如果不需要保留硬盘上的任何数据,可以使用DBAN来清除整个硬盘,并用0填充主引导记录(使用dd)。如果只想删除Linux分区而保留其他分区,可以使用分区管理工具如GParted liveCD,或者在Linux rescue模式下使用fdisk。如果需要删除LVM卷,可以在Linux rescue模式下使用fdisk。
注2:在BIOS中将另一个硬盘(其上没有Linux分区)设为第一启动项。该硬盘可以是系统中的任何硬盘或者临时安装的硬盘。XP安装程序需要该硬盘上存在一个兼容的活动主分区且容量大于8M(不是逻辑分区),用来写入启动文件。如果硬盘上没有该分区,安装程序将中止,并要求你使用“disk druid”来创建一个。注意,如果该硬盘上没有足够的剩余空间来创建新分区,xp安装程序允许你删除一个原有的分区以获得足够的空间,但不能重新定义原有分区的大小。之后,安装程序将复制ntldr, ntdetect.com以及boot.ini文件到该分区的根目录,并在该硬盘的主引导记录中写入启动代码。在xp系统安装完成之后,需要将上述三个文件复制到你的xp系统分区中,并修改boot.ini文件中windows目录的路径。一切完成之后,可以将该临时硬盘移除,并在BIOS中恢复原启动顺序。
注3:删除Linux启动分区(不是/boot目录)。(译者注:在安装Fedora系统时,可以将/boot目录挂到一个独立的分区上,本条目适用于该情况)。在笔者的测试中,删除Linux启动分区将使xp安装程序正常运行,安装完后可以将原Linux启动分区恢复。使用分区管理工具将Linux分区转移至其他硬盘(不是同一个硬盘的其他分区)也能使xp安装程序正常运行,但笔者的测试表明,删除启动分区并在安装完xp后将其恢复比后者更容易。在该测试中,笔者的分区设置如下:/dev/sda1为Linux“/boot”分区,ext3;/dev/sda2为windows分区,NTFS;/dev/sda3为Linux“/”分区,ext3。如果读者的分区设置与笔者不同,下面的方法可能不适合,或者需要读者做一定的调整。具体步骤如下:
1)在Linux rescue模式中用fdisk删除/boot所在分区。重要:在执行删除操作前请记下该分区的起始柱面和结束柱面。注3.1:出于谨慎,笔者在删除该分区前制作了一份该分区的Acronis备份映像。推荐你也这样做,以备不时之需。
2)在原分区(/dev/sda2)上重新安装windows xp。
3)启动xp系统,修改其boot.ini文件中windows目录的安装路径,以便在恢复Linux启动分区后能正常启动windows系统。
4)重启系统并进入Linux rescue模式。
5)使用fdisk的”add a new partition”命令创建一个新分区,注意,其起始柱面和结束柱面需要使用1)中记录值。注3.2:如果新创建的分区获得了一个新的分区号(本例中表现为不再是/dev/sda1),请参阅下一节处理。
6)使用fdisk的”fix partition order”命令使新的Linux启动分区重新获得/dev/sda1的分区号。
7)执行fdisk的”write table to disk and exit”命令保存新的分区表。
8)重新启动系统并再次进入Linux rescue模式,以使新的分区表生效。
9)在MBR上重新安装GRUB。
10)退出Linux rescue模式并重新启动系统。