Scripting
編寫分區收縮腳本
我有一些磁碟映像,使用
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'