ISOイメージ(Windowsインストールディスク)を持っていますが、DVDを作成したくありません。代わりに、起動可能なUSBフラッシュドライブを作成します。そして、私はこのタスクを達成するためにLinuxツールを使用したいと思います。
いくつかのレシピを見つけましたが、次のようにdd
ツールを使用することをお勧めします。
dd if=/path/to/my.iso of=/dev/sdx
(つまり、ここ https://www.linux.com/blog/how-burn-iso-usb-drive )
別のレシピは、最初にusbにいくつかのパーティションを作成することを提案しています(つまり、 ターミナル:isoから起動可能なUSBを作成 )。これは私には非常に奇妙に見えます。
私が理解しているように、フラッシュドライブは単なるストレージです。これは、このブロックのインデックスが指定されたデータのブロックを格納/返すハードウェアです。それが正しいか?
Linuxは/dev/sdx
デバイスを介してこのストレージへのアクセスを提供します(x
は任意の文字であり、私の場合、デバイス名は/dev/sdb
です)。このデバイスを介してUSBスティック上の任意のデータにアクセスできます。これは正しいです?
dd
コマンドは、ファイルの内容をビットごと(ブロックごと)に読み取り、指定されたデバイスにデータを書き込みます。入力ファイルが十分に大きい場合、USBスティック上のデータのすべてのビットが上書きされます。パーティション、ファイルシステムのタイプなどに関する情報は存続しません。これは正しいです?はいの場合、dd
コマンドの前にUSBスティックをパーティション化/フォーマットするために何を使用しますか?
dd
コマンドの結果は、期待したものではありません。それが完了すると、LinuxマシンからUSBスティック上のファイルを表示できますが、スティックは起動できず、Windowsはそれをまったく読み取ることができません(USBドライブをフォーマットすることをお勧めします)。
いくつかのツールを使用して、起動可能なUSBスティック(rufusまたはyumiなど)を作成しますが、今は問題ありません。問題は、なぜこの目的でdd
を使用できないのか理解できないことです。
上記のレシピがすべてのISOイメージで機能するわけではありませんか?何が起こっているのか理解するのを手伝ってください。
ISOイメージ(Windowsインストールディスク)を持っていますが、DVDを作成したくありません。代わりに、起動可能なUSBフラッシュドライブを作成します。そして、私はこのタスクを達成するためにLinuxツールを使用したいと思います。
いくつかのレシピを見つけましたが、次のように
dd
ツールを使用することをお勧めします。dd if=/path/to/my.iso of=/dev/sdx
これはクローン作成です(dd
およびその他のクローン作成ツールで実行されます)。
(つまり、ここ https://www.linux.com/blog/how-burn-iso-usb-drive )
別のレシピは、最初にusbにいくつかのパーティションを作成することを提案しています(つまり、 ターミナル:isoから起動可能なUSBを作成 )。これは私には非常に奇妙に見えます。
これは抽出ツールで行われます。
クローニングと抽出の両方が可能であり、一般的な方法です。どちらの方法にもいくつかのツールがあります。
Isoファイルがハイブリッドisoファイルである場合、大容量記憶装置に複製することにより、CD/DVDディスクおよびに書き込み、ブートドライブを作成できます。 :USBペンドライブ、メモリカード、HDDまたはSSD。 ISOファイルがハイブリッドISOファイルではない場合、CD/DVDディスクに書き込むことでブートドライブを作成できますが、大容量記憶装置。ただし、抽出ツールを使用してブートデバイスを作成することはできます(正しいパーティションテーブルを作成し、isoファイルから大容量記憶装置に関連するコンテンツを抽出することにより)。
私が理解しているように、フラッシュドライブは単なるストレージです。これは、このブロックのインデックスが指定されたデータのブロックを格納/返すハードウェアです。それが正しいか?
はい。
Linuxは
/dev/sdx
デバイスを介してこのストレージへのアクセスを提供します(x
は任意の文字であり、私の場合、デバイス名は/dev/sdb
です)。このデバイスを介して、USBスティック上の任意のデータにアクセスできます。これは正しいです?
はい。
dd
コマンドは、ファイルの内容をビットごと(ブロックごと)に読み取り、指定されたデバイスにデータを書き込みます。入力ファイルが十分に大きい場合、USBスティック上のデータのすべてのビットが上書きされます。パーティション、ファイルシステムのタイプなどに関する情報は存続しません。これは正しいです?はいの場合、dd
コマンドの前にUSBスティックのパーティション分割/フォーマットに何を使用しますか?
はい、そのため、クローンを作成する前に、USBメモリをパーティション化/フォーマットする必要はありません。それのすべての痕跡はとにかく消えます。
dd
コマンドの結果は、期待したものではありません。それが完了すると、LinuxマシンからUSBスティック上のファイルを表示できますが、スティックは起動できず、Windowsはそれをまったく読み取ることができません(USBドライブをフォーマットすることをお勧めします)。
ほとんどの主要なLinuxディストリビューションは、クローンされたときにUSBブートドライブを作成するハイブリッドISOファイルを提供します。しかし、それらすべてではありません。たとえば、Knoppixなどではありません(ただし、Knoppix isoファイルはisohybrid
で処理できます)。
Windows 7-10 ISOファイルはハイブリッドISOファイルではありません。したがって、USBブートドライブを作成するには、抽出方法(手動またはツールを使用)が必要です。
いくつかのツールを使用して、起動可能なUSBスティック(rufusまたはyumiなど)を作成しますが、今は問題ありません。問題は、なぜこの目的で
dd
を使用できないのか理解できないことです。上記のレシピがすべてのISOイメージで機能するわけではありませんか?何が起こっているのか理解するのを手伝ってください。
help.ubuntu.com/community/Installation/iso2usb
dd
の使用方法は、.iso
ファイルの作成方法によって決まります。
Ddコマンドは、ファイルの内容をビット単位(ブロック単位)で読み取り、指定されたデバイスにデータを書き込みます。入力ファイルが十分に大きい場合、USBスティック上のデータのすべてのビットが上書きされます。
これは正しいですが、dd if=/dev/sdb1 of=test.iso
の作成時に.iso
を実行するとどうなりますか?または、dd if=/dev/sdb of=test.iso bs=1M seek=1
のようなものを実行して、データの最初の1M
をスキップした可能性がありますか?
dd
は、基礎となるパーティション構成を気にしません。つまり、それを使用する方法は、ブロックデバイスの構造と書き込むデータに完全に依存します。
デバイスにdd
すると、ddするとMBR/GPTが上書きされるため、USBの空き領域が失われます。
デバイスをパーティション分割すると、イメージをパーティションに書き込むことができるようになり、空き領域を確保できるようになります。ただし、そのパーティションから起動できるようにするには、ブートマネージャー(grub?)を変更する必要があります。ドライブをパーティション分割する場合、sdx1、sdx2、...があり、dd if=your.iso of=/dev/sdx1
または必要なパーティションを作成できます。
ここでの問題は、Windowsのインストールディスクでそれを実行したいということであり、それが問題になる可能性があります。 Windowsがインストール用のDVDユニットを想定している場合、DVDユニットは起動しないか、そのチェックを回避するためにそのイメージを調整する必要がある場合があります。 Linuxでは、多くのディストリビューションがiso自体を開始できるため、物事は簡単です。他のディストリビューションでは、開始できる多くのディストリビューションを持つ単一のUSBを使用できるようにするために、いくつかのハックが必要になる場合があります。