Pertanyaan Bagaimana cara mengubah ukuran partisi menggunakan baris perintah tanpa menggunakan GUI di server?


Saya hanya mengakses server melalui terminal dan saya tidak bisa menggunakan alat grafis seperti gparted!
Saya memerlukannya karena saya ingin membuat partisi baru dari bagian root sekitar 768mb untuk membuat partisi swap.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         20G  1.3G   18G   7% /
udev             10M     0   10M   0% /dev
tmpfs           199M  4.9M  194M   3% /run
tmpfs           100M   12K  100M   1% /run/user
tmpfs           5.0M  4.0K  5.0M   1% /run/lock

33
2017-12-14 17:06


asal




Jawaban:


Anda tidak dapat mengecilkan / mengedit partisi jika salah satu partisi pada perangkat penyimpanan sudah terpasang. Jadi untuk meng-unmount dan mengedit filesystem root, OS harus dimatikan. Kemudian boot ke sistem hidup dan edit partisi seperti yang dijelaskan dalam jawaban lainnya.

Solusi alternatif: file swap

Sebagai alternatif untuk membuat keseluruhan partisi, file swap menawarkan kemampuan untuk bervariasi ukurannya on-the-fly, dan lebih mudah dihapus sama sekali. File swap bisa menjadi hot plugable. i.e dapat ditambahkan dan dihapus tanpa melepas / mematikan OS.

  1. Buat file 512 MB bernama /swapfile. Ini akan menjadi file swap kami.

    fallocate -l 512M /swapfile  
    

    ATAU

    dd if=/dev/zero of=/swapfile bs=1M count=512
    
  2. Setel izin yang tepat (karena file swap yang dapat dibaca dunia adalah kerentanan lokal besar):

    chmod 600 /swapfile
    
  3. Setelah membuat file dengan ukuran yang tepat, formatlah untuk bertukar:

    mkswap /swapfile
    
  4. Aktifkan file swap:

    swapon /swapfile
    
  5. Edit /etc/fstab dan tambahkan entri untuk file swap:

    /swapfile none swap defaults 0 0
    

Detail lebih lanjut di arch linux wiki.


30
2017-07-28 13:08



Saya pikir ini adalah jawaban yang paling mudah dan efisien =)! Apakah ada implikasi dalam menggunakan file daripada partisi? - Alaa Ali
Kinerja Sedikit Rendah jika file terfragmentasi. Tidak ada keunggulan kinerja baik untuk file swap yang berdekatan atau partisi, keduanya diperlakukan dengan cara yang sama. - totti
Saya pikir ini adalah solusi terbaik. Karena Anda tidak memformat, menyusut atau mengubah partisi (tabel), tidak ada risiko kehilangan data. - R110


Pertama-tama adalah penting untuk mengetahui bahwa Anda tidak dapat mengubah ukuran untuk mengecilkan partisi root Anda jika Anda menggunakannya (Ini disebut penyusutan online). Anda hanya dapat mengembangkannya secara online. Ini didukung oleh resize2fs perintah. Saya akan mengasumsikan hal-hal berikut:

  • Anda tidak ingin kehilangan informasi Anda di partisi root.
  • Anda tidak memiliki akses fisik ke hard drive untuk menggunakan LiveCD. Ini dapat diterapkan ke lingkungan virtual atau jarak jauh. Dalam kasus yang virtual Anda masih dapat mengatur untuk boot dari LiveCD jika Anda mengatur VM untuk boot dari LiveCD. Ini mengasumsikan VM mendukung keluaran GUI Desktop dari mana Anda akan menjalankan aplikasi Gparted untuk mengubah ukuran dengan mudah. Tapi karena ini kurang mungkin saya menganggap Anda tidak bisa.

Ada 2 jenis partisi yang dapat Anda ubah ukurannya, partisi LVM atau partisi Logical Volume Manager yang mendukung perubahan ukuran Online (Shrinking / Growing) sejak pembuatan galaksi dan partisi standar yang digunakan sebagian besar dari kita. Saat ini satu-satunya yang memiliki hampir 100% dukungan dari resize online lengkap (Shrink / Grow) adalah filesystem btrfs (yang masih dalam pengembangan). Saya akan menjelaskan bagaimana melakukan partisi normal yang kebanyakan dari kita gunakan di filesystem ext4.

Mengubah ukuran (Menumbuhkan) Pemisahan

Untuk menumbuhkan partisi Anda, Anda dapat melakukannya dengan root mount. Untuk melakukan ini cukup lakukan:

sudo resize2fs /dev/sda1

Asalkan Anda sudah memiliki ruang kosong yang siap untuk digabung. Setelah itu, saya sarankan untuk me-reboot agar perubahan diterapkan dengan benar. Perintah di atas akan mengubah ukuran hingga maksimum yang diizinkan. Jika Anda ingin mengubah ukuran ke ukuran tertentu maka cukup tambahkan ukuran di bagian akhir:

sudo resize2fs /dev/sda1 25G

Perhatikan bahwa jika Anda ingin menentukan 25,4 GB, Anda tidak dapat menggunakan ".". Anda harus turun satu unit ukuran. Dalam hal ini dari GB ke MB, jadi akan terlihat seperti ini:

sudo resize2fs /dev/sda1 25400M

Dengan cara ini Anda akan memiliki partisi 25.4G

Mengubah ukuran (Shrinking) Partisi

Shrinking partisi adalah proses dua langkah yang melibatkan:

  • Mengurangi ukuran sistem file dengan jumlah yang dibutuhkan.
  • Mengurangi ukuran perangkat blok yang mendasari agar sesuai dengan sistem file.

Sebelum mengurangi kapasitas sistem file, Anda perlu mengurangi ukuran perangkat blok (Yang dapat berupa partisi atau volume logis). Karena ini tidak tersedia untuk sistem file ext * mana pun Anda tidak akan dapat mengecilkannya dari 20 GB menjadi 19,5 GB untuk membuat swap 500 MB.

Bahkan Ext4 tidak mendukung penyusutan online. Jika Anda mencoba melakukannya, Anda akan mendapatkan yang berikut:

enter image description here

Satu-satunya taruhan Anda sejauh yang saya tahu adalah:

  • Instal versi Ubuntu lain di server yang sama (Pada partisi lain) yang kemudian dapat digunakan untuk mengecilkan partisi root dari Server Ubuntu asli.

  • Instal server Ubuntu dari awal dengan ukuran yang sebenarnya Anda inginkan

  • Gunakan Ubuntu Server Live Image untuk mengubah ukuran partisi. Untuk kasus ini, Anda harus membuka layar ini:

    enter image description here

    Dan pilih opsi Resize seperti yang ditunjukkan pada gambar di atas. Dari sana Anda akan memilih apa ukuran baru akan sejak dari sini Anda dapat meng-unmount unit dan menyusutkannya jika Anda mau.

Sebagai bantuan tambahan di sini adalah dukungan filesystem gparted http://gparted.org/features.php yang memberikan daftar yang sangat rinci dari yang didukung dan termasuk jika mereka memiliki ukuran ulang online penuh. Btrfs ada di antara mereka.


23
2017-07-26 02:25



Saya ingin tahu, apakah ada filesystem lain yang mendukung penyusutan online? zfs atau btrfs mungkin? - Seth♦
Saya telah menambahkan tautan di bagian bawah. Kernel juga perlu mendukung ini jika filesystem adalah untuk mengubah ukuran online dengan benar. - Luis Alvarado♦
Saya memiliki server ubuntu di mesin vmware dan ukuran disknya adalah 120G. Tetapi setelah menggunakan solusi pertama, saya mendapatkan kesalahan ini: Filesystem sudah 27262720 blok panjang. Tidak ada yang harus dilakukan! - Mr.Hyde
Terima kasih @ Mr.Hyde. Ada beberapa masalah dengan Workstation 10 dan bahkan 11. Saya akan merekomendasikan 12 dan untuk Ubuntu saya juga akan memperbarui baik ke LTS terbaru atau baru karena ada juga beberapa masalah. Dalam kasus saya, saya memiliki VMware workstation 12.0.1 dan Ubuntu 15.10 64 bit. - Luis Alvarado♦
Dari manpage resize2fs: The resize2fs program does not manipulate the size of partitions. - ACK_stoverflow


Jawabannya tergantung pada apakah Anda dapat meng-unmount partisi menyusut, atau tidak. Dalam kasus Anda, Anda mungkin tidak dapat meng-unmount partisi. Di Linux (UNIX / MAC OS), pemasangan sebuah partisi mengacu pada penggunaan sistem file dan memetakannya ke titik mount (dalam kasus Anda /). Lingsirkan berarti Anda berhenti menggunakan filesystem, dan menghapus pemetaan ke titik mount. Anda tidak dapat meng-unmount sistem file yang berisi OS Anda yang sedang berjalan.

Jika partisi bisa di-unmount

Mari asumsikan Anda ingin mengecilkan partisi ext4 200GB /dev/sda4 dipasang ke /data. Saat ini berisi musik dan film atau yang serupa, sehingga Anda dapat menghapusnya untuk sementara. Anda ingin membuat swap 4GB.

sudo unmount /dev/sda4

untuk meng-unmount partisi.

sudo resize2fs /dev/sda4 196G

untuk mengubah ukuran filesystem ext4 menjadi 196 GB, dengan asumsi bahwa ada cukup ruang. Sekarang, Anda harus mengecilkan partisi. Saat ini saya percaya Anda perlu menggunakan cfdisk untuk menghapus partisi yang ada, dan membuat ulang partisi yang lebih kecil di tempatnya. Anda kemudian dapat juga membuat partisi baru untuk swap.

sudo cfdisk /dev/sda 

akan memberi Anda gui berbasis teks untuk memeriksa tabel partisi Anda. Saya akan merekomendasikan Anda untuk print tabel partisi ke file atau layar pada titik itu, dan catat konfigurasi saat ini sebagai cadangan. Anda kemudian dapat memilih /dev/sda4 dan delete partisi. Di tempatnya, free space akan ditampilkan. Menggunakan new untuk membuat partisi baru dengan 196 GB di tempatnya, dan mengatur jenisnya ke ext4. Kemudian, pindah ke ruang kosong di belakang dan buat partisi swap 4GB dengan tipe swap. catatan: Saya tidak menguji perintah ini, karena saya tidak bisa bermain-main dengan saya / saat ini.

Jika partisi tidak dapat dilepas

Anda tidak dapat mengecilkan partisi ext3 / 4 yang terpasang (lihat halaman manual resize2fs). Ketika Anda menjalankan OS Anda dari /, Anda tidak dapat melakukan unmount /. Itu berarti Anda harus mem-boot OS lain (misalnya dari kunci USB) untuk melakukan perubahan.

Dalam kasus Anda, ini adalah server jarak jauh (pada KVM kemungkinan besar), sehingga Anda mungkin tidak dapat boot dari USB / gambar OS langsung. Mungkin ada cara lain untuk mengubah partisi dari penyedia vServer Anda melalui GUI admin. Saya percaya itu adalah taruhan terbaik Anda saat ini.


6
2017-07-26 01:39