Linux

dd 在整個磁碟上,但不想要空白部分

  • December 31, 2020

我有一個磁碟,比如 /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 有危險,使用者在送出前應考慮此操作。

引用自:https://serverfault.com/questions/439128