Bagaimana cara menentukan ukuran baru untuk resize2fs?

22

Saya ingin mengecilkan sistem file ext4 untuk memberikan ruang bagi partisi baru dan menemukan resize2fsprogram. Perintahnya terlihat seperti ini:

resize2fs -p /dev/mapper/ExistingExt4 $size

Bagaimana saya menentukan $sizeapakah saya ingin mengurangi tepat 15 GiB dari sistem file ext4 saat ini? Bisakah saya menggunakan output dfentah bagaimana?

Lekensteyn
sumber

Jawaban:

39

Anda tidak boleh menggunakan dfkarena ini menunjukkan ukuran seperti yang dilaporkan oleh filesystem (dalam hal ini, ext4).

Gunakan dumpe2fs -h /dev/mapper/ExistingExt4perintah untuk mencari tahu ukuran partisi yang sebenarnya. The -hmerek pilihan dumpe2fsmenampilkan info super blok tanpa banyak detail yang tidak perlu lainnya. Dari output, Anda memerlukan jumlah blok dan ukuran blok .

...  
Hitungan blok:               19506168  
Hitungan blok cadangan: 975308  
Blok gratis: 13750966  
Inode gratis: 4263842  
Blok pertama: 0  
Ukuran blok:                4096  
...

Menggandakan nilai-nilai ini akan memberikan ukuran partisi dalam byte . Angka-angka di atas adalah kelipatan sempurna dari 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

Karena Anda ingin mengecilkan partisi sebesar 15 GiB (yaitu 15 MiB kali 1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

Ketika resize2fsmenerima beberapa jenis sufiks, salah satunya adalah Kuntuk "1024 byte", perintah untuk menyusutkan partisi menjadi 62296032 KiB menjadi:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Tanpa unit, angka tersebut akan ditafsirkan sebagai kelipatan dari ukuran file sistem (4096 dalam kasus ini). Lihat man resize2fs (8)

Lekensteyn
sumber
3
man resize2fs: Secara opsional, parameter ukuran dapat diakhiri dengan salah satu dari perancang unit berikut: 's', 'K', 'M', atau 'G', untuk sektor byte 512, kilobyte, megabyte, atau gigabyte, masing-masing . Mungkin lebih sederhana daripada melakukan perhitungan blok.
lkraav
1
Apakah Anda tidak kehilangan kat resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez
@SopalajodeArrierez Anda benar, ada modal Kyang hilang. Tanpa surat ini, resize2fs harus mengeluh dalam kasus saya karena ukurannya lebih besar dari disk sebenarnya.
Lekensteyn
2
dumpe2fstidak melaporkan ukuran partisi; itu benar-benar melaporkan ukuran sistem file. (Yang bagus, karena mungkin itu yang Anda inginkan.)
Mehrdad