web-dev-qa-db-ja.com

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

完全に構成されたLinuxシステムを16GBUSBドライブにインストールしています。私は同じブランド/タイプのUSBドライブを10回、まったく同じメインボードを10回持っています。

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

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

明らかに、これはこれを行う正しい方法ではないので、他のUSBに展開できるように、元のUSBを正しく「複製」するにはどうすればよいのでしょうか。

(システムは、新しいコンピューターにインストールされているという事実に対処するように構成されているため、ここでは問題ではなく、正確なコピーを取得する必要があることに注意してください)

更新

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

gparted

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

'dd'ソリューションは、パーティションをコピーするだけでそれを修正しますが、ターゲットUSBでext2とスワップファイルシステムの両方を取得するにはどうすればよいですか?

Ddを使用してデバイス全体をコピーすると、16 GBになりますが、他のデバイスに常に収まるとは限りません。

アップデート2

WesleyDavidの作品によって推測されたddを使用して、
説明されているように、ddのカウントパラメータを使用する必要がありました ここ

基本的には、「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つ追加します。それは私がインストールできるイメージを私に与えました。

3
TimothyP

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

本質的に、これはクローン作成の問題ではなく、パーティションのサイズ設定の問題です。パーティション/ディスクサイズが最大サイズを快適に下回ったら、dd if=source of=destination(Windowsを想定)そしてあなたの悪い自己と一緒に頑張ってください。

2
Wesley