复制Windows到第二个驱动器,并通过GRUB启动?

这是我的情况:我有一个上网本与8GB固态硬盘作为其第一个驱动器和32GB驱动器作为其次要驱动器。 我希望能在20Gb的分区上安装windows xp,然后从drive2上共享剩下的8GB驱动器和12GB的分区,用于我的linux实验。

当我从第一个驱动器启动Windows XP时,它工作正常。 当我从SECOND驱动器启动相同的Windows XP安装的克隆时,它挂起,显示“正在启动…”字样。 使用名为partimage的linux实用程序完成了驱动器的克隆,但是当使用dd复制分区内容时,我得到了相同的结果。

Ubuntu工作正常(目前从第二个驱动器启动)。


经过大量的安装和重新安装和通过Ubuntu的驱动器杂耍后,我有以下设置根据fdisk -l

Disk /dev/sda: 8069 MB, 8069677056 bytes
255 heads, 63 sectors/track, 981 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x294a294a

Device Boot Start End Blocks Id System
/dev/sda2 * 336 973 5120028 c W95 FAT32 (LBA)
Partition 2 has different physical/logical beginnings (non-Linux?):
phys=(1023, 17, 4) logical=(335, 37, 55)
Partition 2 has different physical/logical endings:
phys=(1023, 17, 4) logical=(972, 143, 27)
Partition 2 does not end on cylinder boundary.
/dev/sda3 981 981 8032+ 83 Linux

Disk /dev/sdb: 32.2 GB, 32279224320 bytes
255 heads, 63 sectors/track, 3924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00021104

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 638 5124703+ c W95 FAT32 (LBA)
/dev/sdb2 * 2466 3924 11719417+ 83 Linux

这里是grubmenu.lst的相关部分:

title Windows XP
rootnoverify (hd0,1)
savedefault
makeactive
chainloader +1

title Windows XP (disk 2)
root (hd1,0)
savedefault
makeactive
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1

任何人有任何build议?

谢谢!

如果你安装了XP并在20gb分区上运行XP,那么在xp启动并运行之后又回去安装linux。 我不是Grub的专家,但这是我过去的做法。 首先将所有的驱动器分区到你喜欢的位置,然后在首选的分区上安装XP,然后在Linux上进行安装,在Linux安装过程中,grub应该检测到不同的驱动器,并为XP和Linux自动添加条目。

听起来你应该修复第二个驱动器上的引导扇区。 我确定有一个linux工具可以做到这一点,但是我不知道我的头脑。

如果您使用Windows CD并启动到故障恢复控制台并运行“fixboot”,它可能会覆盖您的第一个驱动器上的GRUB,但Windows应该从第二个驱动器启动。 如果你走这条路,在修复Windows驱动器后重新安装GRUB。

您可能还需要从故障恢复控制台重新configurationWindows安装,因为安装已更改分区。 您可以使用“bootcfg”命令或通过编辑Windows分区根目录下的boot.ini文件来完成此操作。 但是,您需要知道Windows如何枚举分区。