web-dev-qa-db-ja.com

`dd`、ISOイメージ、Linuxデバイスに関する一般的な質問

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イメージで機能するわけではありませんか?何が起こっているのか理解するのを手伝ってください。

3
lesnik

クローニングと抽出

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は「ディスク破壊者」と「データ破壊者」のニックネームに値する
  • 最終チェックポイントがあるツール
  • クローンが機能しない場合
2
sudodus

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は、基礎となるパーティション構成を気にしません。つまり、それを使用する方法は、ブロックデバイスの構造と書き込むデータに完全に依存します。

1
imbuedHope

デバイスにddすると、ddするとMBR/GPTが上書きされるため、USBの空き領域が失われます。

デバイスをパーティション分割すると、イメージをパーティションに書き込むことができるようになり、空き領域を確保できるようになります。ただし、そのパーティションから起動できるようにするには、ブートマネージャー(grub?)を変更する必要があります。ドライブをパーティション分割する場合、sdx1、sdx2、...があり、dd if=your.iso of=/dev/sdx1または必要なパーティションを作成できます。

ここでの問題は、Windowsのインストールディスクでそれを実行したいということであり、それが問題になる可能性があります。 Windowsがインストール用のDVDユニットを想定している場合、DVDユニットは起動しないか、そのチェックを回避するためにそのイメージを調整する必要がある場合があります。 Linuxでは、多くのディストリビューションがiso自体を開始できるため、物事は簡単です。他のディストリビューションでは、開始できる多くのディストリビューションを持つ単一のUSBを使用できるようにするために、いくつかのハックが必要になる場合があります。

1
YoMismo