GNU/Linux >> Belajar Linux >  >> Linux

Ubah ukuran langsung dari partisi GPT di Linux

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.


Linux
  1. Cara mengubah ukuran (memperpanjang) sistem file berbasis partisi di Linux

  2. Bagaimana cara memindahkan partisi di GNU/Linux?

  3. Apakah mungkin mem-boot Linux dari disk GPT pada sistem BIOS?

  1. Cara mempartisi disk di Linux

  2. Linux – Instal Menggunakan Gpt Pada Sistem 32 Bit Dengan Bios?

  3. Ubah ukuran /var partisi pada sistem jarak jauh (Linux Debian Lenny)

  1. Membuat Partisi Recovery di Embedded Linux?

  2. Cara Mengelola Partisi Swap di Linux

  3. Apa yang setara dengan perintah Linux sudo fdisk -l di MacOS?