Mengapa resize2fs salah membaca jumlah blok di partisi saya?

1

Saya mencoba mengecilkan partisi agar sesuai dengan ukuran partisi lain di drive lain. Saya mendengar bahwa saya pertama-tama harus menyusutkan sistem file agar sesuai. Saya mencoba melakukan ini dengan resize2fs, tetapi jika saya menggunakan nilai dalam

cat /proc/partitions
major minor  #blocks  name

 202        0  178257920 xvda
 202        1  178249871 xvda1
 202       32   47185920 xvdc
 202       33   47184896 xvdc1

seperti ini

ubuntu@asdf:~$ sudo resize2fs /dev/xvda1 47184896

saya mendapat

resize2fs 1.42.13 (17-May-2015)
The containing partition (or device) is only 44562467 (4k) blocks.
You requested a new size of 47184896 blocks.

Saya memiliki masalah serupa saat menggunakan parted.

$ sudo parted /dev/xvda
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 1 94371839
Error: The location 94371839 is outside of the device /dev/xvda.

Jika saya coba lakukan resizepart 1 94371839 untuk '/ dev / xvda1' di parted saya mendapat Error: The location 94371839 is outside of the device /dev/xvda1. ketika itu jelas dalam jangkauan blok perangkat seperti ditunjukkan dengan

sudo fdisk -l

Disk /dev/xvda: 170 GiB, 182536110080 bytes, 356515840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start       End   Sectors  Size Id Type
/dev/xvda1 *    16065 356515806 356499742  170G 83 Linux

Ini membuatku gila. Bagaimana cara mendapatkan nilai yang tepat untuk ukuran sistem file dan ukuran partisi untuk digunakan resize2fs dan parted?

GameKyuubi
sumber

Jawaban:

1

resize2fs tidak salah membaca jumlah blok. Itu hanya menggunakan blok 4k sementara /proc/partitions melaporkan blok 1k.

356499742 x 512B sektor = 178249871 x 1K blok = 44562467 x 4K blok

Dengan parted, Anda dapat mengkonfigurasi unit yang ingin Anda gunakan. Kelihatannya parted menggunakan MB secara default, jadi Anda meminta untuk mengubah ukuran partisi 170GB ke 94TB, yang ditolak dengan benar.

Ini adalah salah satu cara untuk melakukannya dengan benar:

parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help unit                                                        
  unit UNIT                                set the default unit to UNIT

    UNIT is one of: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB,
        GiB, TiB
(parted)  unit kiB  (berpisah) cetak
Model: ATA VBOX HARDDISK (scsi)
Disk / dev / sdb: 524288kiB
Ukuran sektor (logis / fisik): 512B / 512B
Tabel Partisi: msdos
Bendera Disk:

Nomor Mulai Akhir Ukuran Jenis Sistem file Bendera
 1 1024kiB  205824kiB  204800kiB ext3 primer
 2 205824kiB 410624kiB 204800kiB ext3 primer
(berpisah)  mulai ulang 1 200000  Peringatan: Mengecilkan partisi dapat menyebabkan kehilangan data, Anda yakin ingin
terus?
Ya Tidak? iya nih
(berpisah) cetak
Model: ATA VBOX HARDDISK (scsi)
Disk / dev / sdb: 524288kiB
Ukuran sektor (logis / fisik): 512B / 512B
Tabel Partisi: msdos
Bendera Disk:

Nomor Mulai Akhir Ukuran Jenis Sistem file Bendera
 1 1024kiB  200000kiB  198977kiB primer ext3
 2 205824kiB 410624kiB 204800kiB ext3 primer 
jlliagre
sumber
Oke, jadi apa yang harus saya gunakan untuk menemukan ukuran tanpa harus mengeluarkan kalkulator saya?
GameKyuubi
Nah, masing-masing perintah yang Anda gunakan memiliki alasan sendiri untuk menggunakan unit yang berbeda, 4k, 1k atau 512b. Saya khawatir Anda harus memecahkan kalkulator Anda.
jlliagre
Lihat hasil edit saya, saya berasumsi hal yang sama terjadi parted?
GameKyuubi
Masalahnya kurang jelas dengan resizepart. Anda harus menyalin / menempelkan perintah dan respons lengkap untuk memastikan.
jlliagre
Sebenarnya tidak banyak lagi, saya mengedit pertanyaan saya untuk membuatnya lebih jelas
GameKyuubi