ddを使用してexFAT USBドライブの圧縮イメージを作成する

ddを使用してexFAT USBドライブの圧縮イメージを作成する

私のシステムはUbuntu 22.04.3 LTSを実行しています。 USBドライブをシステムに接続しました。このUSBドライブ(/ dev / sdb)には、主にext4パーティション(/ dev / sdb3)にあるUbuntuのインストールが含まれています。このインストールは約25GBのドライブスペースを占めます。

/ dev / sdb3をアンマウントした後、sudo zerofree -v /dev/sdb3そのUSBドライブの空き容量を0にしました。次に、次を使用して圧縮画像を作成します。

sudo dd if=/dev/sdb bs=16M conv=sync,noerror | pv | sudo pigz -c > /media/TargetDrive/UbuntuImage.dd.gz

これはうまくいくようです。結果 .gz ファイルの重量は 12 GB に過ぎません。

次に、USBドライブ(/ dev / sdb)を削除し、次のものを含むUSBドライブと交換します。ゆみexFATインストールする。

GPartedを使用してこの/ dev / sdbドライブに関する情報を見つけると、「このファイルシステムの内容を読み取れません!」という警告メッセージが表示され、exfatprogsexfatファイルシステムのサポートが必要であることが示されます。 GPartedをインストールexfatprogsして再起動しました。これにより警告が削除されます。

このYUMI exFATのインストールはUSBドライブの43GBを埋めます。私はこれを理解しzerofree、Microsoftはsdelete -z E:exFATをゼロで埋めないので、次のようになりました。提案これは以下を提案するようです。

sudo mount -o rw /dev/sdbX /mnt
sudo dd if=/dev/zero of=/mnt/zero_file bs=32M
sudo sync
sudo rm /mnt/zero_file
sudo umount /dev/sdbX

これらのコマンドは、サイズが空白を埋めるように見えるZero_fileを適切に作成して削除します。 (私はこの代替案を見ましたが、試していませんでした。それは私には明確ではありません:cat > /dev/sdbX/zeros < /dev/zero ; sync ; rm /dev/sdbX/zeros。)

dd次に、デフォルトで上記のコマンドを実行します。今回は同様の圧縮は行われませんでしたddpigz43GB exFATのインストールは42GBイメージファイルに保存されます。

もちろん、exFATドライブの内容はWindowsで作成されます。しかし、Windowsドライブイメージングソフトウェアを使用した経験では、かなりの圧縮が予想されます。

私の質問:ddこのexFATドライブでより良い圧縮を提供するためにこのコマンドを改善できますか?

注:NTFS USBドライブを使用すると、同様に圧縮率が低下するようですが、この場合のすべての手順を文書化するわけではありません。

答え1

(コメントには適していないので、ここで一度やってみます。)

とても良い質問です。残念ながらよくわかりません。このプロセスが私がやろうとしているのとほぼ同じです。 "0"ファイルがどれだけ大きいかは言っていません。本当に小さい場合は、ドライブに空き容量がありません。別のオプションは、これらのディスクが何らかの方法で自動的に暗号化されることです。この場合、実際のゼロは記録されません。

パーティションについて言及したので、もう1つのオプションは、作成中のパーティションが小さく、アクセスできない空き容量が多いですが、デバイス全体をイメージングするときにキャプチャされることです。この場合は、0 を書き込むことができるドライブの残りのスペースを使用して新しいファイルシステムを作成するか、デバイス全体に 0 を書き込む必要があります (注意してください/dev/sdb)。今後YUMIなどを入れます。その上のイメージ。

このコメントの場合:

cat > /dev/sdbX/zeros < /dev/zero ; sync ; rm /dev/sdbX/zeros

それは動作しません。/dev/sdb完全なデバイスです。/dev/sdbXデバイスにパーティションが/dev/sdb/whateverありません。パーティション(またはデバイス全体)を名前で保存するには、マウントされたファイルシステムが必要ですzeros。それ以外はコマンドは同じですcat /dev/zero > /path/to/zeros

より良い圧縮が必要な場合は、bzip2パイプラインでまたはを使用することをお勧めします。xzこれは広くサポートされている圧縮形式です。 YUMIインストールイメージは、起動時に圧縮されていないディスクイメージにすでに存在する可能性があるため、イメージを介して追加の圧縮がほとんど発生しません。

追加するには編集してください。zstd現在好ましい圧縮アルゴリズムのようです。スピード/サイズバランスが優れており、時間がかからない場合は圧縮率が最も高くなります。詳しくはこちらをご覧ください。

関連情報