我在 16GB USB 隨身碟上安裝了一個完全配置的 Linux 系統。我有 10 次相同品牌/類型的 USB 驅動器和 10 次完全相同的主機板。
現在我想將 USB 驅動器複製到其他驅動器,這樣我就可以讓 10 個系統使用相同的映像。
我所做的是使用 WinDiskImager32 創建 USB 驅動器的映像,然後嘗試將其寫回原始 USB 驅動器。這很有效,因為它是同一個驅動器,但當我嘗試將其寫入其他 USB 驅動器時,它失敗了,因為映像對於這些驅動器來說太大了。儘管都是16GB,但實際上總是會有細微的差別。
顯然這不是正確的方法,所以我想知道如何正確「克隆」我的原始 USB,以便我可以將其部署在其他 USB 上?
(請注意,系統配置為處理它安裝在新電腦上的事實,因此這不是這裡的問題,只需獲取精確的副本)
更新
根據 WesleyDavid 的回答,我用 gparted 檢查了驅動器,並記得我最初使用 WinDiskImager32 從 8GB 設備複製了映像,因此分區已經足夠小了。
問題是 WindDiskImager 複製整個驅動器,而不僅僅是分割區。
現在「dd」解決方案透過只複製分割區來解決這個問題,但是如何在目標 USB 上同時取得 ext2 和交換檔案系統呢?
使用 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
經過嘗試且正確的最簡單選項:使用 gparted 將來源分割區設為 15GB,以確保萬無一失。然後克隆到其他 USB 驅動器。
本質上,這不是克隆問題,而是分區大小問題。一旦分割區/磁碟大小低於最大大小,就可以dd if=source of=destination
(假設是 Windows)繼續你的壞自我。