Por que resize2fs está interpretando mal o número de blocos na minha partição?

1

Estou tentando encolher uma partição para corresponder ao tamanho de outra partição em outra unidade. Ouvi dizer que primeiro preciso reduzir o sistema de arquivos para corresponder. Eu estou tentando fazer isso com resize2fs , mas se eu usar os valores em

cat /proc/partitions
major minor  #blocks  name

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

como este

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

Eu obtenho

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.

Eu tenho um problema semelhante ao usar 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.

Se eu tentar fazer resizepart 1 94371839 para '/ dev / xvda1' em parted , obtenho Error: The location 94371839 is outside of the device /dev/xvda1. quando estiver claramente dentro do intervalo de blocos do dispositivo, conforme mostrado em

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

Isso está me deixando louca. Como obtenho os valores adequados para o tamanho do sistema de arquivos e tamanho da partição para usar com resize2fs e parted ?

    
por GameKyuubi 26.02.2017 / 13:48

1 resposta

1

resize2fs não interpretou mal o número de blocos. Está apenas usando blocos de 4k enquanto /proc/partitions está relatando blocos de 1k.

356499742 x setores 512B = 178249871 x blocos 1K = 44562467 x blocos 4K

Com parted , você pode configurar a unidade que deseja usar. Parece que parted usa MB por padrão, então você está pedindo para redimensionar uma partição de 170GB para 94TB, o que ela recusa corretamente.

Aqui está uma maneira de fazer isso corretamente:

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                                                         
(parted) print                                                            
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 524288kiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start      End        Size       Type     File system  Flags
 1      1024kiB    205824kiB  204800kiB  primary  ext3
 2      205824kiB  410624kiB  204800kiB  primary  ext3
(parted) resizepart 1 200000                                              
Warning: Shrinking a partition can cause data loss, are you sure you want to
continue?
Yes/No? Yes                                                               
(parted) print                                                            
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 524288kiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start      End        Size       Type     File system  Flags
 1      1024kiB    200000kiB  198977kiB  primary  ext3
 2      205824kiB  410624kiB  204800kiB  primary  ext3
    
por 26.02.2017 / 13:58