Bagaimana saya bisa memperluas ukuran partisi ext4 di debian

26

Saya memiliki drive dengan konfigurasi ini:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

Ada 478GB ruang yang tidak terisi, bagaimana cara menambahkan ruang ini ke / dev / sda1 tanpa kehilangan data yang saat ini di / dev / sda1? (sistem file ext4).

CATATAN: ini adalah server dengan hanya SSH, tanpa GUI untuk menjalankan hal-hal seperti gparted.

Seb
sumber
Saya bisa netboot server dan menggunakannya saat drive dilepas.
Seb
Item khusus ini telah dibahas berkali-kali dalam situs SE. Akan lebih baik untuk melakukan sedikit riset sebelum mengirim pertanyaan.
mdpc
Lihat juga askubuntu.com/a/937351/621883 khususnya jawaban yang berisi growpart dan resize2fs berguna bagi saya.
klor

Jawaban:

38

Memperbesar partisi: fdisk -u /dev/sda.

p untuk mencetak tabel partisi, catat nomornya, mulai, akhir, jenis sda1.

Hapus itu d::

Buat kembali dengan nomor yang sama (1), mulai dan ketik tetapi dengan ujung yang lebih besar (berhati-hati untuk tidak tumpang tindih dengan partisi lain). Cobalah untuk menyelaraskan hal-hal pada batas megabyte yang untuk akhirnya , buatlah kelipatan 2048 minus 1. Ubah jenis jika diperlukan dengan t(untuk partisi yang memegang sistem file extXatau btrfs, sistem defaultnya 83baik-baik saja).

Kemudian wuntuk menulis dan qberhenti.

Tabel partisi akan dimodifikasi tetapi kernel tidak akan dapat memperhitungkannya karena beberapa partisi sudah di-mount.

Namun, jika partisi yang digunakan hanya diperbesar, Anda harus dapat memaksa kernel untuk mengambil layout baru dengan:

partx /dev/sda

Jika gagal, Anda harus memulai ulang. Sistem seharusnya boot dengan baik.

Kemudian, ubah ukuran sistem file sehingga menyebar ke tingkat partisi yang diperbesar:

resize2fs /dev/sda1

Yang untuk ext4akan bekerja dengan baik bahkan pada FS live.

Stéphane Chazelas
sumber
Saya tahu ini sudah tua, tetapi apakah ini akan menyimpan data jika Anda menghapus partisi?
Luke Kanada REINSTATE MONICA
3
@ CanadianLuke, ya, menghapus partisi di fdisk hanya mengubah tabel partisi. Jika Anda membuatnya ulang dengan ukuran yang sama, tidak akan ada perubahan sama sekali. Data tidak pernah diubah kecuali jika Anda mengecilkan partisi dan membuat partisi logis atau diperluas di tengah apa yang partisi Anda dulu, dalam hal ini catatan partisi untuk partisi extended / logis akan ditulis pada beberapa data di sana.
Stéphane Chazelas
Ini juga berfungsi baik untuk partisi ntfs (dengan volume yang ada, dengan data).
Kenny Evitt
Kedengarannya masuk akal, tetapi bagaimana jika saya memiliki partisi Extended, Linux LVM dan Linux swap / Solaris yang dimulai pada akhir partisi Linux? Haruskah saya menghapus partisi ini>? Saya khawatir bahwa dalam kasus itu, sistem file tidak akan mulai, karena mungkin menggunakan Linux LVM misalnya pada awal dan akhir yang sama. Dan saya tidak ingin kehilangan data juga.
cyan
@cyan mengubah ukuran volume logis LVM dengan ext4 FS di atasnya, atau mengubah ukuran partisi yang digunakan sebagai volume fisik untuk LVM akan menjadi pertanyaan yang berbeda dengan prosedur yang berbeda.
Stéphane Chazelas
7

Anda tidak dapat melakukannya dengan aman saat partisi di-mount, artinya Anda perlu mem-boot beberapa partisi lain dan melakukannya dari sana.

gpartedadalah GUI yang bagus dan mudah untuk tujuan ini. Dalam pertukaran komentar yang dihapus kami sebutkan itu tidak akan mulai karena "tidak dapat mengakses tampilan" - ini berarti Anda tidak berada di X; karena ini adalah GUI, itu tidak akan berfungsi tanpa itu.

Tentu saja, jika Anda tidak memiliki partisi lain untuk digunakan, Anda akan memerlukan CD langsung atau sesuatu - saya pikir mereka biasanya datang dengan gparted. Taruhan terbaik Anda mungkin adalah CD live gparted aktual , yang terlihat memiliki versi stabil terbaru yang cukup baru (dan akan muat pada CD , yang bagus karena "live CD" dengan cepat menjadi "live DVD").

Saya tidak pernah mengalami masalah, tapi tentu saja lakukan hal penting Anda terlebih dahulu.

goldilocks
sumber
Saya tidak dapat menggunakan gparted karena saya hanya memiliki akses SSH (ini adalah server tanpa kepala). Saya dapat melepas HDD, karena sistem tidak berjalan di / dev / sda.
Seb
1
Jika Anda tidak memiliki akses fisik ke sistem dan karenanya tidak dapat dengan mudah melepas dan mengubah partisi, saya pikir Anda kurang beruntung, atau setidaknya ke wilayah yang sangat samar - misalnya, Anda dapat mencoba menggunakan fdisksaat dipasang, pilih (x) pert, (c) hange jumlah silinder. Tetapi saya belum melakukan ini dan hanya akan melakukannya jika sama sekali tidak ada pilihan lain.
goldilocks
Saya baru saja mengatakan bahwa saya dapat melepas partisi. Saya bahkan dapat netboot seluruh server dan masuk dari server lain, yang akan sama seperti menggunakan Live CD (hanya tanpa GUI).
Seb
@Seb: maaf, maaf.
goldilocks
2

Saya tahu ini masalah yang sangat lama, tetapi banyak orang mencari tekad itu.

Untuk contoh ini Anda memiliki situasi khas berikut. Pada awalnya adalah partisi tunggal, dan pada akhirnya partisi swap berada. itu tidak baik karena swap bisa sangat dimuat, dan ujung disk yang diputar adalah bagian paling lambat dari itu. apa yang saya sarankan

  1. Buat partisi boot di awal. Kenapa di awal? karena banyak alat punya masalah dengan ujung disk besar di atas penghalang 2TB. Setelah partisi boot harus partisi swap. Ini untuk kinerja. Sisa disk harus digunakan untuk partisi lain.

Tetapi bagaimana dengan situasi ini? Saya tidak merekomendasikan memperluas sda1. Saya sarankan membuat partisi lain setelah sda1 & sda2, dipasang sebagai /homedan /usr. Pada direktori tersebut tersimpan sebagian besar data pengguna dan sistem, dan dimungkinkan untuk memindahkan data dengan aman dari direktori tersebut ke partisi baru.

  1. Tapi. (kedua "tetapi") jika Anda masih ingin mempertahankan struktur Anda saat ini, Anda harus terlebih dahulu menghapus partisi swap. Anda harus melakukan swapoff, beri komentar di sini /etc/fstab. jika swapon memberi tahu Anda (lihat man) tidak ada swap yang digunakan, Anda dapat menghapusnya dengan alat partisi (fdisk atau yang serupa).

    Ketika Anda tidak memiliki partisi ini, Anda dapat memperbesar sda1 Anda. Menggunakan fdiskAnda harus terlebih dahulu mencetak partisi. Ini untuk mengingat di mana ia dimulai. Hapus partisi dengan menggunakan tombol 'd'. Jangan panik, tidak ada yang ditulis ke hard drive :). Setelah cetak Anda lihat, tidak ada partisi pada disk.

    Selanjutnya buat partisi baru, tapi hati-hati. Lihat di partisi asli sektor apa yang dimulai. Tulis nomor yang sama. Setelah itu lihat bagian akhir. fdiskmeminta Anda untuk sektor terakhir yang tersedia. Gunakan kalkulator dan tentukan dalam pikiran Anda berapa banyak swap yang Anda butuhkan dalam kilobyte. Gandakan dengan 2, dan kurangi angka ini dari angka sektor terakhir yang diminta oleh fdisk. Buat partisi. Cetak ini (masih dalam memori sementara fdisk), dan lihat semuanya ok.

    Setelah ini tekan tombol 'w', ini akan tru menulis partisi baru ke drive. Anda akan melihat informasi semua disinkronkan, atau sinkronisasi gagal. Jika gagal, Anda dapat memanggil perintah partx / dev / sda untuk melakukan sinkronisasi. Jika masih gagal, Anda harus reboot sistem Anda. Setelah reboot Anda telah menyiapkan partisi yang lebih besar, tetapi filesystem di dalamnya masih lebih kecil. Anda harus menumbuhkannya. EXT4 dapat ditumbuhkan dengan cepat :), gunakan resize2fs /dev/sda1untuk melakukannya.

    Anda tidak perlu me-reboot ulang dll. Terakhir, Anda harus mengembalikan partisi swap. Cukup gunakan fdisk lagi, buat partisi baru sebagai swap. Setelah menulis 'w', perangkat sda2 akan dikembalikan. Persiapkan struktur swap menggunakan itu mkswap /dev/sda2, hapus komentar untuk swap aktif /etc/fstabdan akhirnya lakukan swapon -a. Lihat menggunakan perintah swapon atau atas, swap diaktifkan.

Saya tahu, penjelasannya sangat panjang. Saya harap ini bisa digunakan untuk apa saja. Perhatikan, menurut saya filesystem xfs jauh lebih baik, sayangnya fs ini tidak mendukung menyusut tanpa menyalin sementara ke tempat lain, tetapi menyusut jarang digunakan. Itu bagus, xfs mengambil tempat yang sangat kecil untuk metadata-nya sendiri, dan lebih cepat dalam banyak hal dibandingkan dengan ext4.

Petunjuk lain, lebih baik gunakan beberapa LVM sebagai lapisan tengah untuk partisi. setelah itu ukurannya pun jauh lebih mudah. Performanya sebanding, tentu saja, Anda bisa menggunakan campuran manajemen HDD. Anda dapat menggunakan di partisi mentah umum dan LVM.

Znik
sumber
Banyak terima kasih kepada slm untuk koreksi bahasa yang bagus: D
Znik