parted
dapat mencetak ruang kosong. Contoh (sengaja saya pilih yang rumit):
# parted /dev/sda unit s print free
[...]
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 4196351s 4194304s primary fat32 lba
4196352s 4198399s 2048s Free Space
2 4198400s 6295551s 2097152s primary ext2 boot
6295552s 6297599s 2048s Free Space
3 6297600s 27269119s 20971520s primary ext2
27269120s 27271167s 2048s Free Space
4 27271168s 31115263s 3844096s extended lba
5 27273216s 29192191s 1918976s logical ext2
6 29194240s 31115263s 1921024s logical ext2
31115264s 31116287s 1024s Free Space
Seperti yang Anda lihat, ini memberi Anda secara langsung posisi dan ukuran partisi yang mungkin dapat Anda buat, yaitu baris terakhir yang mengatakan Free Space
. Anda bisa membuat partisi yang dimulai pada 31115264 dan berakhir pada 31116287.
Jika bukan karena perangkap bahwa partisi extended tidak cukup besar!
Tapi mungkin Anda sudah menggunakan GPT di mana Anda tidak menderita komplikasi seperti itu.
Meraih angka harus cukup mudah.
function make_partition
{
parted -s "$1" unit s mkpart primary "$2" "$3"
}
make_partition /dev/sda `parted /dev/sda unit s print free | grep 'Free Space' | tail -n 1`
Atau yang serupa. (Tentu Anda ingin melakukan pemeriksaan kewarasan lagi di sini.)
@swisscheese membuat komentar yang bagus di jawaban yang lain, saya tidak tahu parted
menawarkan output ramah parse. Anda mungkin memilih untuk menggunakannya. Contoh untuk meraih gratis terbesar terakhir:
# parted -m /dev/sda unit s print free | grep 'free;' | sort -t : -k 4n -k 2n | tail -n 1
1:27269120s:27271167s:2048s:free;
Apakah itu berlaku untuk situasi Anda (dalam contoh saya, Anda tidak dapat membuat partisi di sana, itu sudah benar-benar penuh) adalah sesuatu yang harus Anda cari tahu sendiri. :)