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 に使用できるフィールド値を調べるにはどうすればよいでしょうか?

OS: Debian 8.5 64 ビット
ハードウェア: Asus Zenbook UX303UA
Linux カーネル: バックポート 4.6
関連スレッド:Linux で起動可能な Windows 7 ISO イメージを作成する方法は?Windows 7 インストール ISO のカスタマイズ
動機: Canon P-150両面スキャナを使用するにはWindows 10が必要ですが、Windowsを起動するとエラーが発生しました0xC0000428Windowsのアップデートでまたもや不具合が発生し、Windowsを普段はほとんど使用していないため、起動可能なメディアを作成するための予備のWindowsが残っていない。

答え1

私は、Windows マシンで Microsoft が説明した Win7 ソリューションを試しました。

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

そして、

0x80080005 エラー

そこで、Debian Stretch 9 にアクセスし、e5.onthehub.com の大学/学校の ISO を使用して Windows 10 の起動可能な USB を作成しようとしました。

Windows 10 では absolute は使用ddできません。これは Linux OS でのみ機能します。以下を使用してください。

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 などの前提条件をすべてインストールする必要があります。

また、プロセスの最後に、woeusb を sudo で実行する必要があることがわかりました。そのため、次のようにします。

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

すると、なんと、見事に動作しました。私の場合は、ハードディスク/dev/sdaと USB ドライブがそこにあったので/dev/sdb、そこに ISO を書き込みました/dev/sdb(繰り返しますが、OS を誤って上書きしないように注意してください)。次に、2TB のハードディスクが接続された軍用クラスの MSI マザーボードにインストールし、BIOS 内に高速ブート オプションがない状態で、そのまま動作しました。まず、すべての UEFI オプションをオンにして、正しい状態にしました。

インストール時にも問題が発生しました。ログインに Gmail のメール アカウントを使用した場合や、マシンの 2 回目の再起動 (インストール プロセス中) 時にインターネット ケーブルが接続された場合に、システムが永久にハングアップしました。この問題が発生した場合は、インターネットを切断し、マシンを再起動し、汎用アカウントを作成させてからログインし、インターネット ケーブルで再起動してください。

答え2

これは、レガシー/CSM ブートでも機能しました (Ubuntu 16.04、Windows 10 バージョン 1511 32 ビット。mkisofs の代わりに genisoimage を使用することもできます。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/

(1 行の長い行。bash では行の継続のために最後にバックスラッシュが付きます)

files/、Windows 10 ISO から抽出されたコンテンツが含まれるサブディレクトリです。

重要なポイントは、Windows 10 ISO のサブディレクトリetfsboot.comからのようです。boot/

書き込んだディスクは問題なくレガシー/CSM で起動できます。

私はWin10のバージョン1511でのみ試しました。他のバージョンで試した場合は、コメントを残してください。

答え3

UEFI ベースのコンピューターを起動する場合は、Windows ISO (UDF 形式の ISO であることに注意してください) をマウントし、すべてのファイルを USB ドライブにコピーするだけです。ドライブが FAT32 形式である限り、UEFI コンピューターはそれを認識し、そこから起動するオプションを提供します。

一方、BIOS ベースのマシンの場合、最良のオプションは、Windows ブートをチェーンロードするように syslinux を手動で構成することです。私はこれを Windows 8 で試しましたが、10 ではまだ試していません。USB/dev/sdfドライブです。

  • USBをFAT32にフォーマットする
  • USB にパーティションが 1 つだけあり、それがブートアクティブであることを確認します (GParted が役立ちます)
  • ISOからUSBドライブにすべてのファイルをコピーします
  • Linuxシステムにsyslinuxをインストールする
  • 実行しますsyslinux -i /dev/sdf1(USBドライブの最初のパーティションで確認できますlsblk
  • 走るdd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdf bs=4M
  • USBドライブをマウントしてディレクトリを作成するboot/syslinux
  • すべての*.c32ファイルをUSBのディレクトリ/usr/lib/syslinux/biosにコピーしますboot/syslinux
  • 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 を作成します。

関連情報