将 Windows 复制到第二个驱动器并通过 grub 启动?

将 Windows 复制到第二个驱动器并通过 grub 启动?

我的情况如下:我有一台上网本,第一个驱动器是 8GB SSD,第二个驱动器是 32GB。我希望在 20GB 分区上安装 Windows XP,然后共享驱动器 2 中剩余的 8GB 驱动器和 12GB 分区,用于我的 Linux 实验。

当我从第一个驱动器启动 Windows XP 时,它运行正常。当我从第二个驱动器启动相同 Windows XP 安装的克隆时,它挂起,显示“正在启动...”字样。驱动器的克隆是使用名为 的 Linux 实用程序完成的,但当我复制分区内容partimage时,我得到了相同的结果。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

以下是 grub 的相关部分menu.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

有人有什么建议吗?

谢谢!

答案1

如果您在 20gb 分区上安装并运行 XP,然后在 XP 启动并运行后返回并安装 Linux,结果会怎样?我不是 Grub 专家,但这是我过去的做法。首先按您喜欢的方式对所有驱动器进行分区,在首选分区上安装 XP,然后在首选分区上安装 Linux,在 Linux 安装期间,Grub 应该会检测不同的驱动器并自动添加 XP 和 Linux 的条目。

答案2

听起来你应该修复第二个驱动器上的引导扇区。我确信有 Linux 工具可以做到这一点,但我暂时还不知道。

如果您使用 Windows CD 启动到恢复控制台并运行“fixboot”,它很可能也会覆盖第一个驱动器上的 GRUB,但 Windows 应该从第二个驱动器启动。如果您选择这种方式,只需在修复 Windows 驱动器后重新安装 GRUB。

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

相关内容