我做了U盘多重启动安装,ubuntu和windows 10。
sudo parted -s /dev/sdb mklabel msdos
sudo parted -s /dev/sdb mkpart primary 1MiB 551MiB
sudo parted -s /dev/sdb set 1 esp on
sudo parted -s /dev/sdb set 1 boot on
sudo mkfs.fat -F32 /dev/sdb1
sudo parted -s /dev/sdb mkpart primary 551MiB 100%
sudo mkfs.ext4 /dev/sdb2
sudo mkdir /media/{efi,data}
sudo mount /dev/sdb1 /media/efi
sudo mount /dev/sdb2 /media/data
sudo grub-install --target=i386-pc --recheck --boot-directory="/media/data/boot" /dev/sdb
sudo grub-install --target=x86_64-efi --recheck --removable --efi-directory="/media/efi" --boot-directory="/media/data/boot"
然后我为 iso 制作了文件夹并将所需的 iso 复制到那里。
sudo mkdir /media/data/boot/iso
sudo chown 1000:1000 /media/data/boot/iso
hosek@yoga:/media$ ls -la /media/data/boot/iso/
total 7911028
drwxr-xr-x 2 hosek hosek 4096 čen 23 10:40 .
drwxr-xr-x 4 root root 4096 čen 23 10:38 ..
-rw-rw-r-- 1 hosek hosek 3285123072 dub 20 09:09 ubuntustudio-19.04-dvd-amd64.iso
-rw-rw-r-- 1 hosek hosek 4815753216 čen 13 09:24 Win10_1903_V1_Czech_x64.iso
hosek@yoga:/media$
现在我将其插入到/media/data/boot/grub/grub.cfg文件。
menuentry "ubuntustudio-19.04-dvd-amd64.iso" {
isofile="/boot/iso/ubuntustudio-19.04-dvd-amd64.iso"
loopback loop "${isofile}"
linux (loop)/casper/vmlinuz iso-scan/filename="${isofile}" file=/cdrom/preseed/ubuntustudio.seed boot=casper quiet splash ---
initrd (loop)/casper/initrd
}
menuentry "Win10_1903_V1_Czech_x64.iso" {
# Insert modules needed in order to access the iso-file
insmod part_gpt
#insmod part_msdos
insmod ntfs
insmod ext4
# Insert module needed in order to find partition
insmod search_fs_uuid
# Set UUID of partition with the iso-image
# and let grub2 find the partition
# (save it's identifier to the variable $root)
set uuid="8ff5d218-2b0c-471c-8356-98686a351111"
search --no-floppy --set=root --fs-uuid $uuid
# Mount the iso image by addressing it with (partition)/path
set iso=/boot/iso/Win10_1903_V1_Czech_x64.iso
loopback loop ($root)$iso
# boot (chain-load) the image using the cdboot.efi file located
# on the win10-image
chainloader (loop)/efi/microsoft/boot/cdboot.efi
}
当我重新启动计算机并从 USB 启动时,它会显示菜单。
ubuntustudio-19.04-dvd-amd64.iso
Win10_1903_V1_Czech_x64.iso
当我选择ubuntustudio-19.04-dvd-amd64.iso时,就可以了。但是当我选择 Win10_1903_V1_Czech_x64.iso 时,它向我显示该文件/efi/microsoft/boot/cdboot.efi未找到。
问题可能出在哪里?那么Windows 7的安装呢,grub的菜单是一样的吗?
谢谢。
答案1
虽然您确实无法从 ISO 文件启动和安装 Windows,但您可以执行以下操作:
创建 GPT
创建两个分区并创建文件系统:
- NTFS 的大分区(类型 0x0700,必须是第一个分区,否则 Windows 安装程序可能看不到它)
- 一个带有 FAT 的小分区(FAT16 需要 10 MB,FAT32 需要 100 MB)(类型 0xef00,EFI 系统分区)
下载NFTS:UEFI,解压文件并将它们放入 ESP 中,这样 FAT16:\efi\boot\bootx64.efi 就存在了。
将 Windows 安装程序 .iso 的内容提取到 NTFS 分区
将 NTFS:\efi\boot\bootx64.efi 移动到 NTFS:\efi\boot\windows.efi。
暂时重命名 FAT:\efi 以将 NTFS:UEFI 移开。
使用 --removable 选项将 grub 安装到 FAT ESP。
将 FAT:\efi 移动到 NTFS:\efi,合并内容(记住我们重命名为 Microsoft 的 grubx64.efi)。
撤消步骤 6。
在 FAT:\boot\grub\grub.cfg 创建 grub.cfg:
menuentry "Windows 10 Setup EFI" { search --file --set=root --no-floppy /efi/boot/windows.efi chainloader /efi/boot/windows.efi }
创建文件FAT:/.disk/info(在可移动模式下,grub 将查找该文件来识别其“启动”分区)。
通过 .iso 棒享受 Windows 安装。
笔记:
- Windows 安装程序不适用于非 EFI 系统或 CSM 模式。
- 鲁弗斯可以为您执行步骤 1 至 4。
- 如果您的 EFI 可以直接读取 NTFS,则可以跳过涉及 NTFS:UEFI 的所有步骤。
- 您还可以添加第三个分区以进行 Linux“即时”安装。
偶尔会更新一些比较深入的内容文章在我的博客上。
答案2
查看这。据我所知,您无法使用 GRUB 启动 Windows ISO。
从技术上讲,从 Windows 的 .iso 文件安装是不可能的。您可以使用 grub 从 .iso 启动,但之后 Windows 将失去与安装位置的联系或者无法启动。所以 grub 和 Windows 都应该知道挂载和启动。目前Windows不支持。
我所知道的有效方法是将内容复制到 USB 根目录,而不是子文件夹中,然后使用如下菜单:
menuentry "Windows installer" {
set root='hd01'
insmod ntldr
ntldr /bootmgr
}
我一直无法从EFI启动,我认为也是不可能的。