Pertanyaan Cara mengubah ukuran / memperbesar / menumbuhkan partisi non-LVM ext4


Saya sudah mencari di forum, tetapi tidak menemukan jawaban yang cocok:

Saya memiliki Ubuntu Server 10.04 sebagai KVM Host dan sistem tamu, yang juga menjalankan 10.04. Sistem host menggunakan LVM dan ada tiga volume logis, yang disediakan untuk tamu sebagai perangkat blok virtual - satu untuk /, satu untuk / home dan satu untuk swap. Tamu telah dipartisi tanpa LVM.

Saya telah memperbesar volume logis dalam sistem host - tamu berhasil melihat disk virtual yang lebih besar. Namun, disk virtual ini berisi satu partisi "lama baik", yang masih memiliki ukuran kecil yang lama.

Output dari fdisk -l adalah

me@produktion:/$ LC_ALL=en_US sudo fdisk -l

Disk /dev/vda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c8ce7

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1        3917    31455232   83  Linux

Disk /dev/vdb: 2147 MB, 2147483648 bytes
244 heads, 47 sectors/track, 365 cylinders
Units = cylinders of 11468 * 512 = 5871616 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000f2bf7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1         366     2095104   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 43, 28)
Partition 1 has different physical/logical endings:
     phys=(260, 243, 47) logical=(365, 136, 44)

Disk /dev/vdc: 225.5 GB, 225485783040 bytes
255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027f25

   Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        9138    73398272   83  Linux

Output dari parted print semua adalah

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  32.2GB  32.2GB  primary  ext4         boot


Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  2146MB  2145MB  primary  linux-swap(v1)


Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

Yang ingin saya capai adalah hanya menumbuhkan atau mengubah ukuran partisi / dev / vdc1 sehingga menggunakan seluruh ruang yang disediakan oleh perangkat blok virtual / dev / vdc. Masalahnya adalah, ketika saya mencoba melakukannya dengan berpisah, ia mengeluh:

(parted) select /dev/vdc                                                  
Using /dev/vdc
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  75.2GB  75.2GB  primary  ext4

(parted) resize 1                                                         
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Start?  [1049kB]?                                                         
End?  [75.2GB]? 224GB                                                     
Error: File system has an incompatible feature enabled.  Compatible features are has_journal, dir_index, filetype, sparse_super and large_file.  Use tune2fs
or debugfs to remove features.

Jadi apa yang bisa kulakukan? Ini adalah sistem produksi tanpa kepala. Apa cara yang aman untuk menumbuhkan partisi ini? Saya BISA unmount itu, meskipun - jadi ini bukan masalah.

Edit: Cfdisk menunjukkan ruang kosong kecil yang tidak memiliki partisi, kemudian partisi (ditandai sebagai "boot" dan Linux / ext3) dan kemudian sisa ruang yang tidak dipartisi. Setelah menghapus partisi dan membuatnya lagi menggunakan cfdisk - cfdisk menunjukkan satu area partisi besar (yang akan baik-baik saja dengan saya) dan sebagai tipe filesystem hanya "Linux"

Resize2fs mengembalikan kesalahan ini resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number in super-block while trying to open /dev/vdc1 Couldn't find valid filesystem superblock


18
2018-03-23 07:59


asal




Jawaban:


Ini Halaman menunjukkan cara untuk melakukan itu unmount, hapus, buat ulang partisi dengan ukuran yang diinginkan, dan gunakan resize2fs untuk memperpanjang partisi. Halaman manual resize2fs setuju.

Saya tahu 'hapus partisi' terdengar menakutkan, tetapi tidak mengubah data sama sekali. Itu hanya mengubah hal yang mereferensikan wadah. Selama Anda TIDAK mkfs.ext4 kamu harus baik-baik saja.

Titik awal partisi Anda harus sama seperti sebelumnya atau OS tidak akan tahu cara menginterpretasikan apa yang ada di baliknya. Titik akhir kemudian dapat dilanjutkan untuk membuat partisi yang lebih besar.

Saya pikir kesalahan dalam komentar terkait dengan memindahkan titik awal. Anda harus memulainya pada titik yang sama persis seperti yang dimulai. Titik akhir bisa bergerak.

Kredit ke psusi untuk menyarankan fdisk daripada cfdisk dan mengkonfirmasi masalah titik awal.


17
2018-03-23 10:26



Oke, saya menghapus partisi dengan cfdisk dan membuat yang baru. Tapi saya tidak bisa mengubah ukurannya, dan saya tidak bisa memasangnya lagi. - Mischa
resize2fs 1.41.11 (14-Mar-2010) resize2fs: Bad magic number di super-block ketika mencoba membuka / dev / vdc1 Tidak dapat menemukan file system superblok yang valid. - Mischa
sebenarnya, cfdisk menunjukkan ruang kosong kecil yang tidak memiliki partisi, kemudian partisi (ditandai sebagai "boot" dan Linux / ext3) dan kemudian sisa ruang yang tidak dipartisi. Setelah menghapus partisi dan membuatnya lagi menggunakan cfdisk - cfdisk menunjukkan satu area partisi besar (yang akan baik-baik saja dengan saya) dan sebagai tipe filesystem hanya "Linux". - Mischa
Anda perlu membuat ulang partisi sehingga dimulai pada sektor yang sama persis seperti semula. Anda tidak dapat melakukan ini dengan cfdisk. Gunakan fdisk atau berpisah dan letakkan dalam mode sektor. - psusi
adakah cara untuk mengubah ukuran partisi ext4 dengan cara sehingga awal partisi dipindahkan? Karena saya memiliki ruang kosong di depan dari partisi ext4 saat ini, bukan di belakang ... untungnya saya memiliki lebih banyak ruang bebas daripada partisi besar, jadi saya kira saya bisa melakukan hal berikut: salin seluruh partisi ke depan, lepaskan satu di belakang, dan kemudian mengubah ukuran yang dipindahkan ke seluruh ukuran? Tapi sepertinya itu sangat mengerikan bagiku saat ini ... - codeling


Sebuah contoh:

/ dev / sdb2 adalah partisi / boot. Ini adalah 100 MB, yang agak kecil. Untuk meningkatkan partisi ext4 ini pada sistem yang sedang berjalan lakukan (sebagai root, atau sudo):

umount / boot

parted / dev / sdb

(terbagi) cetak

Model: ATA Patriot Torqx 2 (scsi)
       Disk / dev / sdb: 32.0GB
       Ukuran sektor (logis / fisik): 512B / 512B
       Tabel Partisi: msdos

Number Start End Size Type Bendera sistem berkas
        1 1049kB 12.9GB 12.9GB tipe utama = 83
2 12.9GB 13.0GB 107MB tipe ext4 primer = 83

(berpisah) rm 2

(berpisah) mkpart

Tipe partisi? primer / diperpanjang? utama
       Jenis sistem file? [ext2]?
       Mulai? 12,9 GB
       Akhir? 13,4 GB

(Berpisah) berhenti

resize2fs / dev / sdb2

resize2fs 1.42.6 (21-Sep-2012)
     Filesystem di / dev / sdb2 sudah terpasang di / boot; mengubah ukuran on-line yang diperlukan
     old_desc_blocks = 1, new_desc_blocks = 2
     Filesystem pada / dev / sdb2 sekarang memiliki panjang 498688 blok.

selesai!

Semua data tetap di tempat. / boot siap digunakan dan 472MB besar (terpisah tidak aman dengan ukuran, baca manual untuk mengetahui mengapa)

Semua data telah dicadangkan sebelumnya, tetapi hanya sebagai tindakan pencegahan. Saya menyarankan untuk melakukan hal yang sama.

Gunakan perintah berikut untuk menemukan proses yang menghentikan unmount / boot jika gagal:

lsof / boot

Semoga berhasil!


4
2018-05-09 20:57



Anda perlu menggunakan satuan sektor, bukan GB, untuk memastikan Anda mendapatkannya di tempat yang sama persis. - psusi


Jika Anda mencoba untuk menghapus & membuat ulang partisi, ketika partisi Anda mulai di bawah 2048 Anda mungkin berada dalam masalah seperti yang saya alami resize2fs.

Couldn't find valid filesystem superblock.

Dari fdisk versi 2.17.2, fdisk IIUC memaksa Anda untuk mulai dari 2048 untuk memastikan hard drive Anda "selaras dengan benar". Jadi, jika partisi asli Anda dimulai sebelum 2048, Anda berada dalam perjalanan yang bergelombang mencoba membuat ulang partisi.

Pendekatan terbaik adalah rsync saat mengkloning disk.


0
2017-10-08 02:55