我想这样做是因为我想安装 Windows 7,但我的 BIOS 菜单没有出现;它在启动时跳到 grub2 菜单,但那是另一回事...有没有办法直接从 grub2 启动 Windows 7 安装 iso?
答案1
使用 grub4dos 启动 Windows XP
使用 grub legacy 或 grub2 启动实际 ISO 不起作用,但对于较旧的 Windows 版本(即 XP),可以将 ISO 中的 i386 文件夹解压到 USB 记忆棒,然后使用grub4dos调用引导加载程序:
title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin
或者
title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin
这可能不适用于较新的 Windows 版本或较新的硬件,但也有选择..
使用 grub2 启动 Windows 7
使用 grub2 显然类似这样的方法可以Windows 7的:
menuentry "Windows 7 (bootmgr)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
### A: either use this line or the next one, but not both
set root='(hd0,msdos1)'
### B:
### search --no-floppy --set=root --fs-uuid ____INSERT_PARTITION_UUID_HERE___
ntldr ($root)/bootmgr
}
选项A假设您的可启动 USB 棒/HDD 是第一个设备,并且具有 msdos 样式的分区表。请调整以匹配您的配置。如果您的启动设备具有 GPT 分区表,那么您很可能需要使用它(hd0,gpt1)
(GPT 通常更难设置)。
选项乙使用驱动器的唯一 UUID,可以在 Linux 上看到,sudo blkid
或在 OSX 上看到diskutil info disk0s1
(或“磁盘实用程序”>“信息”)。
最终条目可能看起来像这样:
menuentry "Windows 7 installer" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
search --no-floppy --set=root --fs-uuid 0E239BC6-F960-3107-89CF-1C97F78BB46B
ntldr /bootmgr
}
答案2
是的,你会认为这样的事情会起作用:
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
drivemap "/Winblows.iso" '(hd32)'
drivemap '--hook' ''
set root='(hd32)'
chainloader +1
}
但 Windows 对此却犹豫不决。
如果你恰好有至少 4GB 的 RAM,你可以选择加载整个 DVD iso记忆磁盘然后启动它。为此,下载SysLinux 并将memdisk
文件解压到你的boot
目录中。然后你需要向 Grub2 添加代码,如下所示
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
insmod memdisk
linux16 /boot/memdisk iso
initrd16 /Winblows.iso
}
但是,我甚至不会测试代码,因为将 3+ GB 的数据放入 RAM 中是完全错误的(从理想的角度来看)。不,我真的很想要你想要的,但最后我使用将 Windows 安装在 USB 上的分区上Windows 7 USB/DVD 下载工具并链接至该处。抱歉,我似乎没有其他方法。
答案3
.iso
从技术上讲,无法从 Windows 文件安装。您可以.iso
使用 grub 启动,但此后 Windows 将失去与安装位置的联系,或者无法执行此操作。因此,grub
Windows 和 Linux 都应该知道安装和启动。目前 Windows 不支持。
因此,您需要将内容提取/复制.iso
到分区的根目录,然后使用链式加载到其中grub
。
答案4
您可以创建 ntfs 分区或将 usb 驱动器格式化为 ntfs,将 windows 7/8/10/11 iso 提取到此分区或 usb 驱动器,确保所有文件都已提取,sudo update-grub
然后重新启动以查看 spacefic windows 启动菜单项,您可以使用它来安装 windows。
您可以在 usb 驱动器上安装 grub2 并使用 Ubuntu 制作多重启动 USB,无需任何特殊工具即可安装 Ubuntu 和 Windows。