私の目標はとてもシンプルで、タイトルはそれをすべて示していますが、私が試みたすべての方法で、私は失敗しました。私はさまざまなサイト(ここ以外)の説明を読みましたが、それらはすべて何かが欠けているようです...これは私が持っているものです:
ルーファスを使用して起動可能なWindows 10 USBを簡単に作成できますが、私の目標はより教育的です。何が起こっているのか、そして私の失敗の原因は何かを理解し、できればそれを機能させる必要があります。
端末でWin10イメージを作成しようとすると、次のコマンドを試しました。
Sudo dd if=Windows10.iso of=/dev/sdc1 bs=512k
Debianにマウントされているように見えますが、それ以外の場合はWindowsとMacで認識されないパーティションを取得しました。 Gpartedはこれを示しています: gpartedレポートファイルシステム不明 比較すると、正常に機能している別のUSBフラッシュドライブ(i got 4)は次のように読み取ります: ここに画像の説明を入力してください
パーティション(sdc1)に出力するのではなく、ドライブ(sdc)に出力することになっている場所をいくつか読んだので、これを試しました。
Sudo pv Windows10.iso | Sudo dd of=/dev/sdc bs=5M
(親しみのある人にとっては、ddを介してパイプされた同じコマンドであり、代わりにsdcを使用しています)これは、fdisk: コマンドとfdisk を示す端末出力からわかるように、パーティション全体を破壊するように見えます。
これは気が動転しましたが、最初からやり直すことにしました。再起動して、次のコマンドを実行しました
Sudo umount /dev/sdc1
Sudo wipefs -a /dev/sdc
Sudo fdisk -l
Sudo fdisk /dev/sdc
n, p, 1, [enter], [enter], t, 7, w
これで新しいパーティションがフォーマットされ、デフォルト(linux)から必要なntfsパーティションに変更されます。次に、実行します:
lsblk
次のコマンドでNTFSファイルシステムを作成します。
Sudo mkfs -t ntfs /dev/sdc1
その後、ddを実行してみましたが、追加のオプション:conv = fdatasyncを使用しました(一部の人々は、何もキャッシュに残っておらず、この問題を解決する可能性があると言っています)。
pv Windows10.iso | Sudo dd of=/dev/sdc conv=fdatasync bs=512k
(問題が発生した場合に備えて、バイトサイズを減らしました)。私がそれをどのように行うかに関係なく、私は次のことに気づきました:
Ddコマンドは gpartedlive で動作することに注意してください。次のコードを実行しました。
Sudo wipefs -a /dev/sdc
Sudo fdisk /dev/sdc
lsblk
Sudo mkfs -t vfat /dev/sdc1
pv gparted-live-1.1.0-1AMD64.iso|Sudo dd of=/dev/sdc bs=4M conv=fdatasync
完全に機能する分割されたライブドライブを取得しました。これは私を混乱させるので、私は助けを求めたいと思いました。ルーファスと一緒にいるだけで問題を解決できることはわかっていますが、これは単純なことではなく、何が起こっているのかを理解することです。 Linux上のいくつかのGUIツールが問題を解決する可能性があることはわかっていますが、可能であれば、古いUNIX端末を使用して問題を解決することを願っています。それが不可能な場合は、その理由を知りたいのですが。要約すると:
たくさんのご協力ありがとうございました!あなたは私に多くの頭痛の時間を節約します!
何が起こっているのか理解したい
ルーファス開発者はこちら。
Linux ISOがこの方法を適用しているため、多くの人々が理解できない方法ですが、これは本質的にMAJOR HACK CALLED 'ISOHYBRID'であり、ほとんどの場合、単純にISOイメージを取得することはできません。そしてそれをバイトごとにUSBドライブにコピーして、それもブートすることを期待してください。
これは、ISO形式とそれが使用する基礎となるファイルシステム(ISO9660
またはUDF
)が光学ブート用に設計されているためです。これは、通常のHDDまたはUSBブートとはまったく異なるものです。 1つには、光学メディア、つまり(通常の)ISOイメージには、HDDまたはUSBブートに(通常)必須であるパーティションテーブルがなく、また(通常)マスターブートレコード(別名)もありません。 BIOSブートに不可欠なMBR。
つまり、Windowsのようにregular ISOの1:1コピーをディスクに作成し、起動しようとすると、次のようになります。
0x55
0xAA
シーケンスを認識せず、ディスクがBIOSから起動可能。したがって、そのディスクをBIOSモードで起動することはできません。UDF
またはISO9660
パーティションを(通常)マウントしません。これは、これらのファイルシステム用のドライバーがある場合でも、作成したディスクにはMBR
またはGPT
パーティションがないためですテーブル。通常のディスクを起動する場合、UEFIは最初にパーティションを検索し、次にそのパーティションでブートローダー(例:/efi/boot/bootx64.efi
)を検索するように設計されています。したがって、メディアにMBR
またはGPT
パーティションテーブルが存在しない場合、-通常のISOの場合に当てはまりますの場合、ISOにブートローダーファイルが含まれているかどうかは関係ありません。UEFIファームウェアは常駐しているパーティションをマウントできません。したがって、完全に標準の光学メディアイメージであるWindows ISOから起動可能なディスクメディアを作成する場合、Rufusのようなユーティリティは次のようになります。
MBR
またはGPT
のいずれかのパーティションテーブルを作成し、少なくとも1つのパーティションを作成します。通常は、ファイルシステムとしてFAT32
またはNTFS
を使用します(使用するファイルシステムとはまったく異なるファイルシステムを使用していることに注意してください) ISOが使用)。MBR
を使用する場合は、関連するMBR
パーティションでセカンダリブートローダーを検索するMBR
内のコードのビット。このパーティションから、Windowsカーネルの実行をディスクモードで開始するように設計されています。また、BIOSがディスクを起動可能として認識できるように、0x55
0xAA
ブートマーカーがMBR
の最後に追加されるようにします。次に、ISOの内容をFAT32
またはNTFS
パーティションにコピーします。GPT
が使用されている場合、Rufusは/efi/boot/bootx64.efi
などのUEFIブートローダーファイルが実際に存在することを確認します(実際には、GPTを選択できるようになる前に、GPTを作成するのはあまり意味がありません。 UEFIブートローダーがない場合は起動可能なドライブ)、次に残りのISOファイルと一緒に、通常FAT32
パーティションにコピーします。これは、FAT32
パーティションからのブートがUEFIの必須要件であるためです(ただし、関連するUEFIドライバーがある場合、NTFS
またはexFAT
からUEFIを起動できないわけではありません。これは、4 GBより大きいファイルを含むWindows ISOがある場合に便利です。FAT32はそのようなファイルに対応できないためです)。現在、上記はセカンダリブートローダー(つまり、Windowsから提供され、Rufusが変更しないもの)がbothオプティカルおよび通常のブートをサポートするように設計されている場合にのみ機能します。 UDF
またはISO9660
およびFAT32
またはNTFS
の両方のファイルシステム、およびディスクからの起動時と光ディスクからの起動時に現れる他の違い。しかし、Microsoftはそのためにブートローダーを正確に設計しましたこれは賢明なことです。なぜなら、ターゲットシステムがUEFIの場合、それはあなたが(通常、最大4 GBのファイルサイズの問題である限り) FAT32
は醜い頭を育てません)ISOを起動可能なUSBに変換するユーティリティは必要ありませんが、そのUSBをFAT32にフォーマットしてISOファイルをそれにコピーするだけです(ファイルコピー、- notバイトコピー)、およびブータブルメディアがあります。
上記のすべてを通過したので、rantに入り、通常はそれよりも賢いLinuxディストリビューションのメンテナが実際には彼らが彼らを助けようとしているとしても、彼らのユーザーにいくつかの害を及ぼす:
ほぼall最近のLinuxディストリビューションではMAJOR HACKと呼ばれる「IsoHybrid」を使用しており、誰かがISO9660
光学画像を通常のように見せかける方法を見つけましたディスクイメージ、パーティションテーブル、MBR
などすべて...つまり、最近見つけたほとんどのLinux ISOは、ISO9660ファイルシステムをabusingして、何かのように見せていますデュアルディスクと光学イメージのように設計されたことはありません。
明らかに、ISOがそのように機能することは決してないはずですが、dd
コマンドでalsoを使用できるISOを作成することが目標です。そして、理論的にはこれは素晴らしいことだと思います。単一のイメージをまったく異なる用途に使用できることはユーザーにとって素晴らしいはずですが、実際には、これは見過ごされがちな問題につながります。
ISO9660
の「セカンダリ」ファイルシステムとしてext
を使用します)。つまり、たくさん Linuxを初めて使用するために起動可能なドライブを作成しているWindowsの人々は、フラッシュドライブのコンテンツにアクセスできなくなった理由について非常に混乱しています。 "IsoHybrid"にEFIシステムパーティション(ESP)も含まれていると、これらのユーザーはドライブのサイズが完全に縮小されたように見えるため、さらに悪いことです。 redditや他の場所に行くと、USBメディアに何が起こったかについて完全に混乱しているユーザーからの多くの投稿があります。これはLinuxの第一印象を良くするものではありません...FAT32
フォーマットのパーティションにコピーするだけでUEFIブータブルメディアを作成するオプションを完全に無視しているため、実際にはすべきです常にUEFIブート可能ドライブを作成するための推奨方法です(通常、dd
コマンドを使用するよりも、パーティションをフォーマットしてファイルをコピーする方がはるかにリスクが少ないためです)。これが原因で、マンジャロ、Ubuntuでユーザー体験を劣るいくつかの問題が発生しました...これは、実際には「ISOHybrid」との競合の主なポイントです。これは、確立された手段を捨てる言い訳にはなりません。ブータブルメディアを作成しています!dd
...を使用するとセカンダリGPTテーブルが破損しているように見えるため、問題が発生する可能性があります。それでも、起動可能なドライブを作成するWindowsの人々にとっては最高の体験ではありません...dd
を使用してすべてのISOイメージを適用できると信じるようになります。 例外ルールではなく。これは非常に不幸です。これは、非常に多くのユーザーを混乱させるためです。一部のLinuxユーザーは、Windowsブータブルメディアを作成したい人に、dd
を使用できるようにすべきだと言っています。また、10年前のLinux ISOを選択した場合、dd
を使用してブータブルメディアを作成するために実際に使用できるものはほとんどないことがわかります。これは、この「IsoHybrid」が実際に最近の開発であるためです。 。私の知る限りでは、MicrosoftはWindows ISOのISOHybridである「ハック」に切り替える予定はありません。つまり、dd
を使用してそこから起動可能なUSBメディアを作成することはできません。 、ISOからWindowsブータブルメディアを作成する場合は、次のいずれかを実行します。
NTFS
、FAT32
、および最近のexFAT
)から起動できるファイルシステムでドライブをフォーマットし、ISO filesをそこに抽出する必要があります。ここで、NTFS
またはexFAT
を使用している場合は、 少し余分な作業も行う ...NTFS
またはFAT32
-exFAT
は動作しません。MicrosoftがそのためのBIOSブートローダーを公開していないためです)、関連するブートローダーチェーンを作成します。 、MBRブートコードからボリュームブートレコードまで。実際にはそれほど複雑ではありませんが、ISOファイルからの1:1コピーよりも少し多くの作業が必要です。
それがあなたの質問に答えることを願っています。
dd
は、Windowsで起動可能なUSBを作成するための適切なツールではありません。簡単な方法は、woeusb
を使用することです。
インストール:
Sudo apt-get install devscripts equivs gdebi-core
cd WoeUSB
./setup-development-environment.bash
mk-build-deps
Sudo gdebi woeusb-build-deps_3.3.1_all.deb
dpkg-buildpackage -uc -b
Sudo gdebi ../woeusb_3.3.1_AMD64.deb
現在、パッケージのバージョンは3.3.1
、パッケージ更新の場合、コマンド./setup-development-environment.bash
は現在のバージョンを出力します。上記のコマンドで置き換える必要があります。
使用法:
GUIを使用して、ターミナルからwoeusbgui
を実行できます。または、CLIを使用できます。
USBデバイスをアンマウントします(重要)。次に実行します:
Sudo woeusb -v --device /path/to/windows.iso /dev/sdc