Scripting

編寫分區收縮腳本

  • May 6, 2022

我有一些磁碟映像,使用dd if=/dev/somedevice of=filename.img. 我能夠按照本教程縮小它們。

現在我想編寫所有過程的腳本,並且我設法執行了幾乎所有的事情,除了 fdisk resize 部分。我正在嘗試使用此命令調整分區大小

echo " , +7506944K," | sfdisk -N 2 /dev/loop14

但獨立於我使用的大小,我得到一個錯誤:

/dev/loop14p2: Failed to resize partition #2.

如何編寫重新定義分區末尾的腳本?為什麼我的命令失敗了,我能以某種方式獲得更多資訊嗎?

我明白出了什麼問題:

  • 首先,sfdisk接受分區的大小,而不是增量,所以+符號是錯誤的。一個不同之處fdisk在於 end 是分區開頭的扇區號,而不是設備開頭的扇區號。
  • 那麼這個單位不能是扇區以外的。

因此,在我的情況下,考慮到 512 字節的扇區大小和大約 7Gb 的請求最終大小,我必須將命令啟動為:

sudo sh -c 'echo " ,14596416" | sfdisk -N 2 /dev/loop14'

引用自:https://unix.stackexchange.com/questions/701531