从 Linux 创建可启动的 Windows 10 USB 驱动器 (UEFI)

从 Linux 创建可启动的 Windows 10 USB 驱动器 (UEFI)

如何从 Linux 创建可启动的 Windows 10 USB 驱动器?

请注意:

  • WinUSB 不适用于 Windows 10。
  • UNetbootin 也不起作用。
  • dd方法也没有起到作用。

除此之外,我还尝试创建一个 GPT 分区表和一个 ef00 类型分区,并将其格式化为 fat32,然后将所有 ISO 内容复制到该分区。启动正常,但当我开始安装时,系统会显示媒体对话框提示。

更新

再试一次:

  1. 创建了 GPT
  2. 在 50 MB 的驱动器末尾创建了一个 FAT32
  3. 在剩余空间中创建 NTFS
  4. 将 UEFI:NTFS 放在 FAT32 上
  5. 将 ISO 内容复制到 NTFS

安装开始正常,但在进度开始时显示错误 0xc0000005(如果我没记错的话)。

答案1

你做的很好。使用 fat32 制作 gpt 表并将 iso 中的所有数据复制到该表上。但你还需要使用 parted 等在此分区上设置标志“msftdata”(而不是“boot”)。

答案2

Windows 10 2018 年 10 月在任何 Linux 发行版上发布 UEFI 可启动 USB 驱动器。

请注意,自 Windows 10 2018 年 10 月发布以来,安装文件sources/install.wim大于最大FAT32文件大小,因此我们将把 USB 驱动器格式化为NTFS。Windows 安装程序也无法使用 EFI 分区(代码ef00),因此我们将使用Microsoft basic data分区类型(代码0700)。

变体 A(适用于支持 NTFS 的 PC)

/dev/sdc创建名称为( 的USB 驱动器的步骤用您的设备名称替换所有命令!):

  1. 将 USB 驱动器插入计算机并确保它已卸载。某些发行版喜欢自动安装 USB 驱动器,因此请确保卸载它们。可以使用 找到已安装的分区mount -l | grep '/dev/sdc',然后使用 卸载sudo umount /dev/sdcX(其中X是分区号)。
  2. 使用 打开 USB 块设备gdisk /dev/sdc,将其配置为GPT并创建Microsoft basic data分区(代码0700),然后写入更改并退出(下一步将破坏 USB 驱动器中的分区表!!!)。
sudo gdisk /dev/sdc
o
> This option deletes all partitions and creates a new protective MBR.
> Proceed? (Y/N): y
n
> Partition number ... > hit Enter
> First sector ... : > hit Enter
> Last sector ... : > hit Enter
> Current type is 'Linux filesystem'
> Hex code or GUID (L to show codes, Enter = 8300): 0700
p
> Should print something like:
> Disk /dev/sdc: 15646720 sectors, 7.5 GiB
> Model: DataTraveler 160
> Sector size (logical/physical): 512/512 bytes
> Disk identifier (GUID): ...
> Partition table holds up to 128 entries
> Main partition table begins at sector 2 and ends at sector 33
> First usable sector is 34, last usable sector is 15646686
> Partitions will be aligned on 2048-sector boundaries
> Total free space is 2014 sectors (1007.0 KiB)
> Number  Start (sector)    End (sector)  Size       Code  Name
>    1            2048        15646686   7.5 GiB     0700  Microsoft basic data
w
> Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
> Do you want to proceed? (Y/N): y
q
  1. 将新分区格式化为 NTFS(感谢@Alex 的-Q想法):
sudo mkfs.ntfs -Q /dev/sdc1
  1. 将新的 USB 分区挂载到主目录中的临时目录:
mkdir ~/tmp-win10-usb-drive
sudo mount /dev/sdc1 ~/tmp-win10-usb-drive
  1. 下载 Windows 安装 ISO,在您的主目录中创建新的临时目录并将其安装在那里:
mkdir ~/tmp-win10-iso-mnt
sudo mount Win10_1809Oct_English_x64.iso ~/tmp-win10-iso-mnt
  1. 将所有文件从已安装的 ISO 复制到 USB 驱动器(您可以使用它rsync来查看进度):
sudo cp -rT ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
  1. 卸载 Windows ISO 和 USB 驱动器并删除临时目录:
sudo umount ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
rmdir ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
  1. 将 USB 驱动器插入新计算机并从中启动。

变体 B(适用于不支持 NTFS 的 PC)

/dev/sdc创建名称为( 的USB 驱动器的步骤用您的设备名称替换所有命令!):

  1. 将 USB 驱动器插入计算机并确保它已卸载。某些发行版喜欢自动安装 USB 驱动器,因此请确保卸载它们。可以使用 找到已安装的分区mount -l | grep '/dev/sdc',然后使用 卸载sudo umount /dev/sdcX(其中X是分区号)。
  2. 使用以下方式打开 USB 块设备gdisk /dev/sdc
  3. 将其配置为GPT
  4. 创建第一个大小为 1GB 且类型为Microsoft basic data(代码0700)的分区。
  5. 创建其余大小和类型Microsoft basic data(代码0700)的第二个分区。
  6. 写入更改并退出(下一步将破坏 USB 驱动器中的分区表!!!)。
sudo gdisk /dev/sdc
> o
> This option deletes all partitions and creates a new protective MBR.
> Proceed? (Y/N): y
> n
> Partition Number: Enter
> First sector: Enter
> Last sector: 1G
> Type: 0700
> n
> Partition Number: Enter
> First sector: Enter
> Last sector: Enter
> Type: 0700
> p
# Should print something like:
> Disk /dev/sdc: 30031250 sectors, 14.3 GiB
> Model: Ultra USB 3.0   
> Sector size (logical/physical): 512/512 bytes
> Disk identifier (GUID): C657C0AF-3FE2-4152-8BF1-CE3CCA9F3541
> Partition table holds up to 128 entries
> Main partition table begins at sector 2 and ends at sector 33
> First usable sector is 34, last usable sector is 30031216
> Partitions will be aligned on 2048-sector boundaries
> Total free space is 4061 sectors (2.0 MiB)

> Number  Start (sector)    End (sector)  Size       Code  Name
>    1            2048         2048000   999.0 MiB   0700  Microsoft basic data
>    2         2050048        30031216   13.3 GiB    0700  Microsoft basic data

w
> Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
> Do you want to proceed? (Y/N): y
q
  1. 将第一个分区格式化为 FAT32,将第二个分区格式化为 NTFS:
sudo mkfs.fat -F32 /dev/sdc1
sudo mkfs.ntfs -Q  /dev/sdc2
  1. 将新的 USB 分区挂载到家中的临时目录:
mkdir ~/tmp-win10-fat-usb-drive
mkdir ~/tmp-win10-ntfs-usb-drive
sudo mount /dev/sdc1 ~/tmp-win10-fat-usb-drive
sudo mount /dev/sdc2 ~/tmp-win10-ntfs-usb-drive
  1. 下载 Windows 安装 ISO,在您的主目录中创建新的临时目录并将其安装在那里:
mkdir ~/tmp-win10-iso-mnt
sudo mount Win10_1809Oct_English_x64.iso ~/tmp-win10-iso-mnt
  1. 将以下文件从已安装的 ISO 复制到 FAT32 格式的 USB 驱动器(基本上复制除sources/包含之外的所有内容sources/boot.wim):
sudo cp ~/tmp-win10-iso-mnt/* ~/tmp-win10-fat-usb-drive/
sudo cp -r ~/tmp-win10-iso-mnt/boot ~/tmp-win10-fat-usb-drive/
sudo cp -r ~/tmp-win10-iso-mnt/efi ~/tmp-win10-fat-usb-drive/
sudo cp -r ~/tmp-win10-iso-mnt/support ~/tmp-win10-fat-usb-drive/
sudo mkdir ~/tmp-win10-iso-mnt/sources ~/tmp-win10-fat-usb-drive/
sudo cp ~/tmp-win10-iso-mnt/sources/boot.wim ~/tmp-win10-fat-usb-drive/sources
  1. 将所有内容从已安装的 ISO 复制到 NTFS 格式的 USB 驱动器:
sudo cp -rT ~/tmp-win10-iso-mnt/ ~/tmp-win10-ntfs-usb-drive/
  1. 卸载 Windows ISO 和两个 USB 分区并删除临时目录:
sudo umount ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-fat-drive/ ~/tmp-win10-usb-ntfs-drive/
rmdir ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
  1. 将 USB 驱动器插入新计算机并从中启动。

答案3

我用过woeusb在 Ubuntu 上,使用以下方式(警告:这将覆盖您的整个分区表!):

sudo woeusb --tgt-fs NTFS --device Win10_1809Oct_Hungarian_x64.iso /dev/sdc

如果您遇到此错误信息:

擦除所有签名后仍可检测到分区,这表明驱动器可能因使用寿命结束而被锁定为只读模式。

执行以下操作:sudo fdisk /dev/sdcd然后选择,最后w

(来源:https://github.com/slacka/WoeUSB/issues/219)此后,再次尝试运行上述命令。

无论如何,用这种方法woeusb创建了一个通用运输具有两个分区的分区表:

partition      file system    label          size          flags
----------------------------------------------------------------
/dev/sdc1      nfts           Windows USB     57.00 GiB
/dev/sdc2      fat16          UEFI_NTFS      512.00 KiB    lba
unallocated                                    4.00 MiB

最后,我所要做的就是把引导使用 gparted 标记 /dev/sdc2 分区(与 lba 一起)。

这样,我就可以成功以 UEFI 模式启动并从我的 USB 记忆棒安装 Windows 10。

答案4

EFI 分区必须是 Fat32。它符合 EFI 规范。如果将安装程序文件放在 NTFS 分区上,您的系统将永远无法启动。

您甚至不需要任何特殊软件。安装程序使用 GPT / FAT32,从 iso 中提取所有文件(我假设您使用媒体创建工具拥有最新的 iso,因为它包含 11 月更新),然后使用 gparted 设置“启动标志”。然后,它将以 EFI 模式启动到安装程序,假设您在计算机启动时从启动选项中选择 EFI USB。

平发器。

相关内容