Saya mencoba membuat skrip bash yang akan membuat partisi baru dengan sistem file pada disk dengan partisi yang ada.
Sepertinya mudah untuk membuat partisi secara terprogram dengan parted, namun mengharuskan Anda untuk mengetahui di mana harus memulai dan menghentikan partisi baru, dan di sinilah saya mengalami masalah.
Saya tidak ingin bergantung pada disk yang memiliki partisi dalam posisi / ukuran tertentu. Yaitu, saya ingin membuat partisi baru dimulai segera setelah yang terakhir ada. Saya ingin dapat kemudian membuat partisi dengan ukuran tetap, atau untuk mengisi ruang yang tersisa.
Di Bash, apakah ada cara penentuan yang andal
a) posisi akhir dari partisi terakhir, dan
b) sisa ruang tanpa partisi setelah partisi terakhir?
Jawaban:
parted
dapat mencetak ruang kosong. Contoh (sengaja saya pilih yang rumit):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.
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: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. :)
sumber
parted -m $disk unit s print free | grep "free;" | tail -n 1 | awk -F':' '{print $2 " " $3}'
Sangat mudah,
mkparted
memiliki--list
opsi, Anda perlu menggunakanawk
dan--list
mengambil partisi terakhir dan kemudian menggunakanmkpart part-type [fs-type] start end
,Tapi jawaban Anda:
Pada awalnya Anda harus mendapatkan semua partisi dan dengan:
Catatan:
GB
keMG
.variable
-s
di Andaparted command
dalam script final.Jika saya punya waktu, lengkapi skrip ini maaf karena tidak punya waktu.
sumber