Cara teraman untuk melakukan ini adalah mem-boot menggunakan media darurat (live CD atau sejenisnya) dan menggunakan GParted, yang akan mengubah ukuran partisi dan sistem file yang dikandungnya. Ini hanya akan berfungsi jika partisi saat ini tidak digunakan.
Namun, jika Anda tidak mampu membayar waktu henti, Anda dapat mencoba menggunakan gdisk
bukannya parted
. Anda harus menghapus partisi yang ingin Anda ubah ukurannya dan membuat yang baru sebagai gantinya dengan titik awal yang sama, seperti yang telah Anda lakukan dengan fdisk
. gdisk
bersedia bekerja pada disk yang sedang digunakan, meskipun kernel mungkin tidak mendaftarkan perubahan apa pun. Dalam hal ini, Anda mungkin perlu menggunakan partprobe
atau kpartx
untuk membuat kernel menerima tabel partisi baru, atau bahkan mem-boot ulang komputer jika tidak berhasil. (Ini semua seharusnya sangat mirip dengan menggunakan fdisk
.)
Ini biasanya hanya bekerja dengan distribusi Linux yang lebih baru. Alat yang dibutuhkan:
- partprobe (biasanya bagian dari parted)
- gdisk / sgdisk
Partisi GPT menyimpan header cadangan di akhir disk. Jika Anda telah mengubah ukuran perangkat yang mendasarinya, header cadangan akan berada di tengah-tengah. Langkah pertama adalah memindahkan tajuk partisi ke ujung disk.
Dengan asumsi disk adalah /dev/sda dan partisinya adalah /dev/sda3 (juga harus menjadi partisi terakhir):
sgdisk -e /dev/sda
Kemudian hapus, partisi terakhir dan buat ulang:
sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda
Biasanya Anda akan melihat pesan yang menunjukkan bahwa kernel tidak dapat memuat ulang tabel partisi. Anda harus menjalankan partprobe agar partisi terdaftar dengan ukuran baru:
partprobe /dev/sda
Jika ini tidak berhasil, Anda harus mem-boot ulang mesin virtual. Setelah itu Anda dapat mengembangkan sistem file Anda dengan alat yang sesuai, untuk ext4 dll.:
resize2fs /dev/sda3
Perhatian :menjalankan sgdisk bisa merusak. Pastikan Anda memiliki prosedur pencadangan yang tepat.
Berikut adalah contoh yang digunakan alat otomatis untuk mengubah ukuran partisi secara online, dalam sekali proses:
sgdisk -d 1 -n 1:2048:0 -c 1:-u1:E485F29F-A1F4-4953-9DD8-799EAEA0119B -t 1:0700 /dev/xvda
Berikut daftar opsi untuk perintah sgdisk:
- -d 1 hapus partisi pertama
- -n 1:2048:0 mengatakan buat partisi baru "nomor 1", dengan memulai sektor 2048. Sektor akhir ="0" yang berarti "gunakan semua ruang yang tersedia untuk partisi ini
- -u menetapkan panduan unik untuk partisi tersebut (ini khusus untuk partisi GPT); Anda dapat menggunakan 'R' agar GUID disetel ke nilai acak. Anda juga bisa mendapatkan id partisi saat ini melalui
gdisk /dev/xvda; p
output untuk menggunakan kembali uid yang sama - -t 1:0700 pada dasarnya berarti partisi pertama adalah kode jenis '0700'.
/dev/xvda adalah disk yang kami partisi ulang.
Jadi ia segera menghapus dan membuat partisi baru di tempatnya.
PS. Beberapa catatan tentang kode ketik '0700'. Dari man SGDISK(8)
-t, --typecode=partnum:{hexcode|GUID} Change a single partition's type code. You enter the type code using either a two-byte hexadecimal number, as
dijelaskan sebelumnya, atau nilai GUID yang ditentukan sepenuhnya, sepertiEBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
Temukan penjelasan terbaik untuk arti '0700' di sini - http://www.rodsbooks.com/gdisk/walkthrough.html
"Tapi tunggu," Anda berkata, "Saya pikir disk tersebut memiliki partisi FAT!" Memang benar. Windows menggunakan satu kode GUID untuk semua partisi datanya, baik itu FAT atau NTFS. Dulu, kode yang sama telah digunakan di Linux untuk partisi datanya. (Lebih lanjut tentang ini segera ....) Jadi, dalam kasus ini beberapa kode MBR yang berbeda semuanya diterjemahkan ke dalam satu kode GUID GPT. GPT fdisk menggunakan, secara acak, kode 0x0700 (atau lebih tepatnya, EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) untuk semua ini.
Dalam kasus saya, saya percaya itu adalah partisi Linux ext4, tetapi kode tipe partisi tidak berarti tipe sistem file, jadi '0700' lebih mirip tipe catchall untuk sgdisk. Setidaknya dalam kasus yang pernah saya lihat.
PPS. Anda mungkin perlu menjalankan partprobe
agar kernel mengetahui perubahan partisi tanpa me-reboot sistem.