USB ドライブにインストールされた Linux を同じブランド/タイプの別の USB に複製する

USB ドライブにインストールされた Linux を同じブランド/タイプの別の USB に複製する

完全に構成された Linux システムを 16GB の USB ドライブにインストールしています。同じブランド/タイプの USB ドライブが 10 個あり、まったく同じマザーボードが 10 個あります。

ここで、USB ドライブを他のシステムにコピーして、10 個のシステムで同じイメージを使用できるようにします。

私がやったことは、WinDiskImager32 を使用して USB ドライブのイメージを作成し、それを元の USB ドライブに書き戻すことでした。同じドライブなのでうまくいきましたが、他の USB ドライブに書き込もうとすると、イメージがそれらのドライブに対して大きすぎるため失敗しました。それらはすべて 16 GB ですが、実際にはもちろん常に小さな違いがあります。

明らかにこれは正しい方法ではないので、元の USB を正しく「複製」して他の USB に展開するにはどうすればよいのか疑問に思っています。

(注意: システムは新しいコンピュータにインストールされているという事実に対応するように構成されているため、ここでは問題にはなりません。正確なコピーを取得するだけで済みます)

アップデート

WesleyDavid の回答に基づいて、gparted でドライブをチェックし、元々 WinDiskImager32 を使用して 8GB デバイスからイメージをコピーしたことを思い出しました。そのため、パーティションはすでに十分に小さいです。

gparted

問題は、WindDiskImager がパーティションだけでなくドライブ全体をコピーすることです。

現在、「dd」ソリューションはパーティションのコピーのみでこれを修正していますが、ターゲット USB で ext2 と swap ファイルシステムの両方を取得するにはどうすればよいでしょうか?

ddを使用してデバイス全体をコピーすると、16GB全体が再びコピーされ、他のデバイスに収まらない場合があります。

アップデート2

WesleyDavidの提案どおりにddを使用すると、
説明されているようにddのcountパラメータを使用するだけで済みます。ここ

基本的には「fdisk -u -l /dev/sdb」を実行することを意味します(sdbをデバイスに置き換えます)

> Disk /dev/sdb: 16.3 GB, 16257318912 bytes 64 heads, 32 sectors/track,
> 15504 cylinders, total 31752576 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 Disk identifier:
> 0x000392d4
> 
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sdb1   *        2048    13672447     6835200   83  Linux
> /dev/sdb2        13674494    15818751     1072129    5  Extended
> /dev/sdb5        13674496    15818751     1072128   82  Linux swap

私の場合、最後のパーティションの終わりは「15818751」なので、次のようにしました。

dd if=/dev/sdb of=/home/myusername/usbimage.img count=15818752

安全のためにもう 1 つ追加しました。これでインストールできるイメージができました。

答え1

最も簡単で実証済みのオプション: 念のため、gparted を使用してソース パーティションを 15 GB にします。次に、他の USB ドライブにクローンを作成します。

本質的には、これはクローンの問題ではなく、パーティション サイズの問題です。パーティション/ディスク サイズが最大サイズより十分小さい場合は、dd if=source of=destination(Windows の場合) そのまま進んでください。

関連情報