首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grub、usb多引导ubuntu和windows 10安装磁盘

Grub、usb多引导ubuntu和windows 10安装磁盘
EN

Unix & Linux用户
提问于 2019-06-23 13:35:01
回答 2查看 4.5K关注 0票数 0

我做了usb磁盘多引导安装,ubuntu和windows 10。

代码语言:javascript
复制
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制作了文件夹,并在那里复制了所需的isos。

代码语言:javascript
复制
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文件中。

代码语言:javascript
复制
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启动时,它会显示菜单。

代码语言:javascript
复制
ubuntustudio-19.04-dvd-amd64.iso
Win10_1903_V1_Czech_x64.iso

当我选择ubuntustudio-19.04-dvd-dvd 64 is时,就没问题了。但是当我选择Win10_1903_V1_Czech_x64.iso时,它会显示文件/efi/microsoft/boot/cdboot.efi未找到。

问题在哪里?那么Windows 7的安装呢,grub的操作是否相同呢?

谢谢。

EN

回答 2

Unix & Linux用户

发布于 2020-11-30 21:46:04

虽然您确实无法从ISO文件启动和安装Windows,但您可以这样做:

  1. 创建一个GPT
  2. 创建两个分区并创建文件系统:
    1. 具有NTFS的大型分区(类型为0x0700,必须是第一个分区,否则Windows安装程序可能看不到它)
    2. 带有FAT的小分区(10 MB足够FAT16,100 MB用于FAT32) (类型为0xef00,EFI系统分区)

  3. 下载NFTS:UEFI,解压缩文件并将它们放入ESP中,以便FAT16 16:\efi\boot\bootx64.efi存在。
  4. 将Windows安装程序.iso的内容解压缩到NTFS分区
  5. 将NTFS:\efi\boot\bootx64.efi移动到NTFS:\efi\boot\windows.efi。
  6. 临时重命名FAT:\efi以移除NTFS:UEFI。
  7. 使用--可移动选项将grub安装到FAT ESP。
  8. 将FAT:\efi移动到NTFS:\efi,合并内容(请记住,我们重命名了Microsoft的grubx64.efi)。
  9. 撤消步骤6。
  10. 创建一个grub.cfg at FAT:\boot\grub\grub.cfg: menuentry "Windows 10 Setup EFI“{ search -file-set=root-no-软盘/efi/boot/windows.efi链装入器/efi/boot/windows.efi }
  11. 创建文件FAT:/..disk/info(在可移动模式下,grub将查找该文件以标识其“引导”分区)。
  12. 从你的.iso棒享受你的视窗设置。

备注:

  • Windows安装程序不会在非EFI系统或CSM模式下工作。
  • 鲁弗斯可以为您执行步骤1至4。
  • 您可以跳过涉及NTFS的所有步骤:UEFI您的EFI可以直接读取NTFS。
  • 您还可以为Linux“go”安装添加第三个分区。

我偶尔更新更深入的我博客上的文章

票数 1
EN

Unix & Linux用户

发布于 2019-06-23 14:52:25

检查。据我所知,您不能用GRUB启动Windows。

从技术上讲,从windows的.iso文件安装是不可能的。您可以使用grub从.iso启动,但在此之后,Windows将失去与挂载位置的联系,否则它将无法启动。所以grub和Windows都应该知道挂载和引导。目前Windows不支持。

我知道的是,将内容复制到USB根目录,而不是在子文件夹中,然后使用如下菜单:

代码语言:javascript
复制
menuentry "Windows installer" {
  set root='hd01'
  insmod ntldr
  ntldr /bootmgr
}

我一直无法从EFI启动,我认为也不可能。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/526485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档