ddコマンドによるUSBメモリの完全コピー

Linuxの`dd`コマンドでUSBメモリ全体をコピー(クローン)する方法です。パーティションやファイルシステムを含む全データをコピーします。

【重要】`dd`コマンドは便利ですが、誤った使用によりデータが完全に消去される危険性があります。コピー元(`if=`)とコピー先(`of=`)のデバイス名を絶対に間違えないでください。特にシステムのディスクを指定すると上書きされ、起動不能になる可能性があります。慎重に実行してください。

1. デバイス名の確認 (必須手順)

まず、コピー元とコピー先のUSBデバイス名を確認します。【重要】デバイス名を間違えるとデータが消えます。必ず確認してください。

USBメモリを接続し、ターミナルで以下を実行します。

lsblk

出力例:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   1.9T  0 disk
├─sda1
│             8:1    0   512M  0 part /boot/efi
└─sda2
              8:2    0   1.9T  0 part /var/ubuntu2204/tmp
                                /var/snap/firefox/common/host-hunspell
                                /
sdb           8:16   1  14.9G  0 disk  <-- 例: コピー元USB (`SIZE`や`RM=1`で判断)
└─sdb1        8:17   1  14.9G  0 part /media/user/USB_SOURCE
sdc           8:32   1  29.8G  0 disk  <-- 例: コピー先USB (`SIZE`や`RM=1`で判断)

2. ddコマンドによるコピー実行

以下のコマンドでコピーします。`if=`(コピー元)と`of=`(コピー先)のデバイス名を間違えないでください。 (`sdX` と `sdY` は確認した実際のデバイス名に置き換えます。)

sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress oflag=sync

3. 書き込みの完了を確認 (Sync)

コピー完了後、OSのバッファデータをディスクに確実に書き出すため、`sync`コマンドを実行します。

sync

このコマンドは、全ての書き込み処理が完了するのを保証します。念のため実行を推奨します。