ファイルへの dd と物理ディスクへの dd の違いは何ですか

ファイルへの dd と物理ディスクへの dd の違いは何ですか

「openwrt-19.07.6-x86-64-combined-squashfs.img」イメージのサイズは 20MB です。ファイル名を「openwrt.raw」に変更すると、virt-manager にインポートしてシステムを起動できます。ただし、ルート パーティション「/」にはスペースがありません。

「openwrt-19.07.6-x86-64-combined-squashfs.img」を USB ドライブに dd し、次に USB ドライブを新しいファイルに dd し、出力ファイルを virt-manager にインポートしてシステムを起動すると、ルート パーティションのサイズは「256MB」になります。

dd if=openwrt-19.07.6-x86-64-combined-squashfs.img of=/dev/sde
dd if=/dev/sde of=./openwrt_with_256MB_root_partition.raw

「openwrt_with_256MB_root_partition.raw」のサイズは USB ドライブと同じです。ただし、次のコマンドを使用すると:

dd if=openwrt-19.07.6-x86-64-combined-squashfs.img of=/openwrt.raw

出力ファイルは入力ファイルと同じサイズです。このアクションは無意味だと理解しています。しかし、USB ドライブに dd すると 256MB のルート パーティションが使用可能になる理由を説明できますか? 物理的な USB ドライブや他のディスクを必要とせずに、256MB のルート スペースを持つイメージ ファイルを作成する方法はありますか?

答え1

OpenWRT が現在何をしているのか分かりません。

しかし、やっていることはファイルの末尾にゴミデータを追加するだけです。ファイルサイズは仮想マシン内のデバイスサイズになるので、結果は簡単に理解できます。

以下も使用できますtruncate:

truncate -s256M openwrt-19.07.6-x86-64-combined-squashfs.img

厳密に言えば、これは同じではありません。スパース ファイルが生成されますが、はるかに高速で、十分に優れています。

まったく同じ結果を得るには、次のようにファイルにデータを書き込む必要があります。

dd if=/dev/zero bs=1M count=236 >> openwrt-19.07.6-x86-64-combined-squashfs.img

高度なフラグを使用することもできますdd。256 - 20 = 236

これに関連する別のツールは ですfallocate


アップデート画像を見ると次のようになります。

$ fdisk -l openwrt-19.07.6-x86-generic-combined-squashfs.img
Disk openwrt-19.07.6-x86-generic-combined-squashfs.img: 19.5 MiB, 20450816 bytes, 39943 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf1f0223e

Device                                             Boot Start    End Sectors  Size Id Type
openwrt-19.07.6-x86-generic-combined-squashfs.img1 *      512  33279   32768   16M 83 Linux
openwrt-19.07.6-x86-generic-combined-squashfs.img2      33792 558079  524288  256M 83 Linux

(「サイズ」の列に注意してください。)

2番目のパーティションには圧縮された読み取り専用のルートイメージが格納されるはずですそして読み取り/書き込み可能な F2FS 領域ですが、どのように動作するのかはわかりません。最初の起動時にサイズが変更されるのかもしれません。

関連情報