利用grub4dos启动逻辑分区上的Windows XP_Simplelife_新浪博客

作者:红旗linux社区 redflag2005

引言:
之前有人提到一个问题:能不能在第一分区装好XP,ghost备份,删除装XP的分区,在该分区上装Linux,然后把备份起来的XP恢复到后面的分区。
类似的活干过,不过是从虚拟软盘启动任意磁盘任意分区上的XP,觉得这个也有希望,于是研究了以下,果然可以。

原理:利用grub4os载入一个装有os loader的虚拟硬盘文件,然后从该虚拟硬盘文件启动目标Windows。

分区结构:
如果要在该分区结构上安装XP,提示错误:

方法和步骤:

1。下载grub4dos的grub.exe,用英文的那个,如果用汉化的,还得挂载中文字体,放到linux分区,如/grub.exe。
[ bbs.znpc.net]
2。编辑/boot/grub/grub.conf,加入类似如下内容:

title Windows XP
kernel (hd0,0)/grub.exe
boot

之所以使用grub4dos,是因为grub4dos支持一些GUN grub没有的功能。

3。用VPC(估计VM也可以)创建一个虚拟硬盘,固定容量,容量尽量小(可以省一些内存,这里以16MB为例),把它格式化为FAT16文件系统,并安 装os loader,可以用XP光盘启动,然后进入故障恢复控制台,执行fixmbr和fixboot c:,也可以用DiskGenius里的“重建主引导记录”功能,然后把XP里的bootfont.bin、ntdetect.com和ntldr复制到 该虚拟硬盘根目录,然后在该虚拟硬盘根目录创建一份名为boot.ini的文本文件,可能需要保存为ANSI格式,其内容类似如下:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="XP11" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="XP12" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="XP13" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(4)\WINDOWS="XP14" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(5)\WINDOWS="XP15" /noexecute=optin /fastdetect

以上内容可以启动第一硬盘上分区1~5上的Windows XP。注意,os loader引导项目最多只能有10条。示例中,我的硬盘第一分区为ext3(主分区),第二分区为swap(主分区),第三分区为FAT32(逻辑分 区),那么,选择“multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="XP13" /noexecute=optin /fastdetect”这条命令就可以启动了。

关闭虚拟机,把该虚拟机文件保存到linux分区上,如/boot/xpboot.vhd。


4。创建grub4dos的启动菜单。
在保存grub.exe的地方创建一份名为menu.lst的文本文件,内容类似如下:

timeout 30
default 0

title Load Windows XP
map --mem (hd0,0)/boot/xpboot.vhd (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0)+1
rootnoverify (hd0)

title Reboot
reboot

之所以写两条,是为了防止grub4dos因为只有一条启动项目而不出现启动菜单。map --mem的意思就是把该虚拟硬盘用内存来虚拟,这就是上面说新建虚拟硬盘时容量尽量小的原因。


5。把备份的XP恢复到目标分区。这里是把GhostXP SP3电脑公司特别版 v9.2恢复到第一逻辑分区。

重启,在linux启动菜单中选择Windows XP,然后出现grub4dos的启动菜单,选择“find and load NTLDR of Windows NT/2K/XP”,出现os loader的启动菜单,选择相应的启动项目就可以启动XP了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值