USB メモリのデータを丸ごとイメージ化して使用する場面が、そこそこあったりします。このとき、USB メモリのイメージを丸ごと取るソフトウェアを使うと、空き領域部分も含めてイメージかされてしまい、使用した USB メモリスティック全体のサイズのファイルが作成されてしまいます。
今回はこれを本来必要な部分のみに、トリミングする方法について紹介します。
用意するもの
- 対象となる USB メモリ
- Linux が使える環境
- USB デバイスをバイパスして繋げられる仮想化ソフトウェアを使うのも OK
- USB メモリサイズの2倍程度の空き容量
- USB メモリのイメージを取るためのソフトウェア
- dd コマンドでも構いません。
- Windows 環境では USB Image Tool を使用しました
パーティションを縮小する
USBのデータが入っているパーティションを必要最低限にまでサイズを縮めます。
パーディションを変更できるソフトウェア(例えば gparted)を使用して、データが入るぎりぎりのサイズにまで縮めます。
複数のパーティションを使っている場合には、USBメモリの前方に詰めて配置を行い、後ろのほうを空き領域として固まるようにしておきます。
この状態にしたら USB メモリのイメージデータを取得します。取得するソフトは慣れているもので構いません。Windows 環境で取得するときには、 USB Image Tool を使用しました。
ディスク(イメージ) の確認
ここからは Linux の環境で作業をします。取得したイメージファイルをコピーして作業して下さい。fdisk コマンド用いて、以下の通り実行します。
root@myubuntu:/home/ubuntu# fdisk -l -u usb-disk.img
Disk usb-disk.img: 7.46 GiB, 7996440576 bytes, 15618048 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: 0x3bc5c849
Device Boot Start End Sectors Size Id Type
usb-disk.img1 * 2048 6293503 6291456 3G c W95 FAT32 (LBA)
ここで重要なパラメータが、 目的とするパーティションの End の部分に表示される数値データです。今回は1つのパーティションのみなので、ここに現れる 6293503 となります。
スリム化したイメージで抽出する
それではスリム化したイメージを作っていきます。これには以下のコマンドを実行します。ここで先ほど取得した数値を count として設定します。
root@myubuntu:/home/ubuntu# dd if=usb-disk.img of=usb-disk-slim.img count=6293503
これで生成された img ファイルは、目的のデータまでを含んだスリムなファイルになっているはずです。
まとめ
今回は USB メモリサイズで作ってしまった img ファイルをコンパクトにして保存する方法を紹介しました。一時的には USB メモリサイズ以上の空き領域が必要ですが、この方法によりイメージの保管には最低限のスペースで済むようになります。
近年は USB メモリも大容量のものが増えてきて、イメージ生成のたびに全体のサイズで肥大化していくという状況に自分自身がなっていましたので、どうにかしたいと思っていました。この記事は役に立つと思いますので、同じように困っている人への手助けになれば幸いです。
コメント