如何在 Debian 中建立可啟動的 Windows 10 映像?

如何在 Debian 中建立可啟動的 Windows 10 映像?

偽代碼,最初是為Windows 7 iso檔案開發的,但在線程中應用於Windows 8如何在 Linux 中建立可啟動的 Windows 8 iso 映像?但它不適用於 Windows 10 iso

# https://rwmj.wordpress.com/2010/11/04/customizing-a-windows-7-install-iso/
# https://unix.stackexchange.com/a/312477/16920
$ dd if=../en_windows_10_x64_dvd.iso \
    of=boot.img bs=2048 count=8 skip=734

$ mkisofs -o ../new-win.iso -b boot.img -no-emul-boot -c BOOT.CAT \
    -iso-level 2 -udf \
    -J -l -D -N -joliet-long -relaxed-filenames .

在 Windows 10 映像上執行時輸出失敗

dd if=/home/masi/Downloads/en_windows_10_multiple_editions_version_1511_x64_dvd.iso of=/home/masi/Downloads/boot.img bs=2048 count=8 skip=734
8+0 records in
8+0 records out
16384 bytes (16 kB) copied, 0.000392973 s, 41.7 MB/s 

所使用的 iso 檔案的以下某些欄位已更改dd

  • bs=2048
  • count=8
  • skip=734

如何研究哪些欄位值可用於 Windows 10 iso?

作業系統:Debian 8.5 64 位元
硬體:華碩 Zenbook UX303UA
Linux 核心:向後移植 4.6
相關主題:如何在 Linux 中建立可啟動的 Windows 7 iso 映像?,自訂 Windows 7 安裝 ISO
動機:我需要 Windows 10 才能使用 Canon P-150 雙面掃描儀,但當我啟動 Windows 時,出現錯誤0xC0000428因為 Windows 更新再次破壞了那裡的東西,而且我很少使用 Windows;我沒有多餘的 Windows 來製作可啟動媒體

答案1

我在Windows機器上嘗試了微軟描述的Win7解決方案:

https://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool

並獲得了

0x80080005錯誤

因此,前往 Debian Stretch 9 嘗試使用 e5.onthehub.com 大學/學校 ISO 建置 Windows 10 可啟動 USB。

使用dd絕對不適用於 Windows 10。使用:

dd if=my-linux-os.iso of=/dev/sdX bs=4M

注意:切勿嘗試寫入/dev/sdX1位置X={a,b,c or d},並始終檢查您沒有覆蓋硬碟,這通常是/dev/sda/dev/sdb

對於 Windows 10,您可以使用 WoeUSB,但不能使用 apt/yum 儲存庫。這些已經過時了,至少對於 Debian 9 來說是這樣。

git clone https://github.com/slacka/WoeUSB.git

然後按照末尾的說明進行操作:

https://github.com/slacka/WoeUSB

您必須先安裝所有先決條件,例如 gparted 等。

我還發現在過程結束時我必須使用 sudo 運行 woeusb。所以你只需使用:

sudo woeusb --device local/of/my/windows-10-image.iso /dev/sdX

嘿,很快它就工作得非常出色。就我而言,我的硬碟/dev/sda和 USB 隨身碟都是/dev/sdb這樣,所以我將 ISO 寫入到/dev/sdb(再次小心,您不想意外覆蓋您的作業系統)。然後我將其安裝在帶有 2TB 硬碟的軍用級 MSI 主機板上,BIOS 中沒有快速啟動選項,它就可以正常工作了。我首先開啟了所有 UEFI 選項,使其進入正確的狀態。

我在安裝時也遇到了問題,當使用 Gmail 電子郵件帳戶登入以及第二次重新啟動電腦時(在安裝過程中)連接網路電纜時,系統永遠掛起。如果您遇到此問題,請斷開互聯網,重新啟動計算機,建立通用帳戶,登錄,然後使用網線重新啟動

答案2

即使使用舊版/CSM 啟動,這對我也有效(Ubuntu 16.04、Windows 10 版本 1511 32 位元;您也可以使用 genisoimage 而不是 mkisofs,mkisofs 只是一個符號連結):

mkisofs \
  -no-emul-boot \
  -b boot/etfsboot.com \
  -boot-load-seg 0x07C0 \
  -boot-load-size 8 \
  -iso-level 2 \
  -udf \
  -joliet \
  -D \
  -N \
  -relaxed-filenames \
  -o win10-1511-32bit-mod1.iso \
  files/

(一長行,在 bash 中,末尾帶有反斜線以繼續行)

其中files/是包含 Windows 10 ISO 提取內容的子目錄。

關鍵點似乎來自etfsboot.comWindows boot/10 ISO 的子目錄。

我可以使用傳統/CSM 啟動燒錄的光碟,沒有任何問題。

我只嘗試過win10 1511版本。如果您嘗試其他版本,請發表評論。

答案3

如果要啟動基於 UEFI 的計算機,只需安裝 Windows ISO(注意它是 UDF 格式的 ISO)並將所有檔案複製到 USB 磁碟機。只要驅動器是 FAT32 格式,UEFI 電腦就會識別它,並提供從該磁碟機啟動的選項。

另一方面,對於基於 BIOS 的計算機,最佳選擇是手動配置 syslinux 以鍊式加載 Windows 啟動。我在 Windows 8 上嘗試過/dev/sdf此操作,但尚未在 10 上嘗試過。

  • 將 USB 格式化為 FAT32
  • 確保 USB 只有一個分割區,並且它是啟動活動的(GParted 將幫助解決此問題)
  • 將 ISO 中的所有檔案複製到 USB 隨身碟
  • 在 Linux 系統上安裝 syslinux
  • 運行syslinux -i /dev/sdf1(U盤第一個分區,可以查看lsblk
  • 跑步dd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdf bs=4M
  • 掛載 USB 隨身碟並建立目錄boot/syslinux
  • 將所有*.c32檔案複製/usr/lib/syslinux/biosboot/syslinuxUSB 上的目錄
  • 在 上建立一個syslinux.cfg文字文件boot/syslinux,其中包含文本

    LABEL win10
    MENU LABEL Boot Windows 10 install
    COM32 /boot/syslinux/chain.c32
    APPEND label=win7fs ntldr=/bootmgr
    

編輯:我不確定 Debian 將 syslinux 檔案放在哪裡;你可以找到它們find / -name "mbr.bin" 2> /dev/null

答案4

我為這個案例找到的唯一可靠的解決方案。在 Windows 中建立可啟動 Windows。

相關內容