Linux
dd 在整個磁碟上,但不想要空白部分
我有一個磁碟,比如 /dev/sda。
這是 fdisk -l:
Disk /dev/sda: 64.0 GB, 64023257088 bytes 255 heads, 63 sectors/track, 7783 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000e4b5 Device Boot Start End Blocks Id System /dev/sda1 * 1 27 209920 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 27 525 4000768 5 Extended Partition 2 does not end on cylinder boundary. /dev/sda5 27 353 2621440 83 Linux /dev/sda6 353 405 416768 83 Linux /dev/sda7 405 490 675840 83 Linux /dev/sda8 490 525 282624 83 Linux
我需要製作一個圖像以儲存在我們的文件伺服器上,以用於刷新我們正在製造的其他設備,所以我只想要已用空間(僅約 4gb)。我想保留 mbr 等…因為該設備應該在復製完成後立即啟動。
有任何想法嗎?我以前一直在使用
dd if=/dev/sda of=[//fileserver/file]
,但當時,我的主副本在 4gb 快閃記憶體 ide 上。
那天我在嵌入式 Linux 發行版中遇到了類似的問題 - 在壓縮圖像之前擺脫所有垃圾。
dd if=/dev/zero of=asdf.txt
. 等到它死去。刪除 asdf.txt。您剛剛將零寫入設備上的所有可用空間。
現在獲取磁碟映像並通過 gzip 執行它。瞧,稀疏的圖像。
如果您確實需要寫入磁碟,可能無法很好地擴展並且可能會導致問題,但是嘿。
您可以將磁碟的 rsync 快照拍攝到另一個卷,將其歸零,然後拍攝該磁碟映像。
注意:可能對 SSD 有危險,使用者在送出前應考慮此操作。