Linux dd 遇到 容量不足 的 resize 解法

SD 記憶卡的品牌不同, 容量多少也會有些差異, 於 dd 要將容量小的塞到大的沒問題, 但是大的塞到小的就肯定行不通, 此篇的作法可能會有資料流失的風險, 使用起來請自行注意~

  • 註1: 我是因為記憶卡後面的空間大多都沒用到(16G 大概有 12G 都還沒用到, 所以後面遺失的空間不會有差別)
  • 註2: 這個只適用在容量差異不大的狀況 (16G vs 16G), 容量差異太大, resize 也沒有任何意義~
  • 註3: 除了 resize 外的解法, 如果有 dd 前的原始 SD Card, 可以考慮把作業系統整個 tar 過去 或 cp -a 來製作.

先講講 dd 備份 和 還原, 下面再來紀錄容量不足的解法.

  • 備份: sudo dd bs=4M if=/dev/sdc | gzip > /tmp/backup.gz # bs=4M 跑起來比較快, 另外硬碟容量不夠用, 所以備份順便丟入壓縮.
  • 還原: sudo gzip -dc /tmp/backup.gz | dd of=/dev/sdc # 這邊 bs=4M 不要加, 容量不夠的話, 會遺失更多資料. (註: bs(預設 4k) 不加, 會跑很久)
  • 相關參考: 使用 dd 來 備份 / 還原 SD 卡的作業系統

閱讀全文〈Linux dd 遇到 容量不足 的 resize 解法〉