単体テストに含めるディスクイメージファイルを作成したいと思います。このディスクファイルには、私が読みたいいくつかのファイルが含まれている必要があります。 SDカードまたはUSBスティックにコピーを作成すると、dd
ディスクイメージが大きすぎて圧縮してもサイズが大きすぎます。
だから、新しいディスクイメージを作成し、後でマウントしたいと思います。次に、新しいデータを追加し、バージョン管理のためにディスクイメージを圧縮します。
私の現在のステップ:
- ディスクイメージの作成:
dd if=/dev/zero of=DISK1.img bs=1M count=1200
- 別々に開く:
sudo parted DISK1.img
- パーティション化されたテーブルの作成(partedを使用):
mklabel msdos
- パーティションの作成(partedを使用):
mkpart primary fat32 1MB 100%
- 印刷:
(parted) print Modell: (file) Festplatte <path>/DISK1.img: 1258MB Sektorgröße (logisch/physisch): 512B/512B Partitionstabelle: msdos Disk-Flags: Nummer Anfang Ende Größe Typ Dateisystem Flags 1 1049kB 1258MB 1257MB primary fat32 lba
parted を終了して再度開くと、ファイルシステムが認識されなくなりました。
(parted) print
Modell: (file)
Festplatte <path>/DISK1.img: 1258MB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:
Nummer Anfang Ende Größe Typ Dateisystem Flags
1 1049kB 1258MB 1257MB primary lba
最初から画像を作成するには?
2024-03-02 修正
@Stephen Kittのコメントを使って、次のように動作しました。
dd if=/dev/zero of=DISK1.img bs=1M count=1200
parted DISK1.img
- パーティション化されたテーブルの作成(partedを使用):
mklabel msdos
- パーティションの作成(partedを使用):
mkpart primary fat32 1MB 100%
- 別れの終了
mkfs.vfat -v --offset 2048 DISK1.img
マウントパーティション:
- 開始セクタを探す:(
fdisk -lu DISK1.img
上記と同じ) - オフセットの取得 (バイト): 512bytes * 2048sectors = 1048576
- lopsetup パーティション:
sudo losetup -o 1048576 /dev/loop0 DISK1.img
- 山:
sudo mount /dev/loop0 DISK_MOUNT
- マウントされたパーティションにデータをコピーする(ルートが必要)
- 削除
sudo umount /dev/loop0
- 失われた分離:
sudo losetup -d /dev/loop0
これで、新しいデータがディスクイメージにあります。