为什么 resize2fs 会误读我的分区中的块数?

为什么 resize2fs 会误读我的分区中的块数?

我正在尝试缩小一个分区以匹配另一个驱动器上的另一个分区的大小。我听说我必须先缩小文件系统才能匹配。我正尝试使用 来执行此操作resize2fs,但如果我使用 中的值

cat /proc/partitions
major minor  #blocks  name

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

像这样

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

我明白了

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.

我在使用时遇到了类似的问题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.

resizepart 1 94371839如果我尝试对 '/dev/xvda1'执行,parted我会得到Error: The location 94371839 is outside of the device /dev/xvda1.它显然在设备的块范围内,如下图所示

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

这让我很抓狂。如何获取与 和 一起使用的文件系统大小和分区大小的正确resize2fsparted

答案1

resize2fs没有误读块数。它只是使用 4k 块,而/proc/partitions报告的是 1k 块。

356499742 x 512B 扇区 = 178249871 x 1K 块 = 44562467 x 4K 块

使用parted,您可以配置要使用的单位。它似乎parted默认使用 MB,因此您要求将 170GB 分区的大小调整为 94TB,它理所当然地拒绝了。

以下是正确做法之一:

parted /dev/sdb
GNU Parted 3.2
使用 /dev/sdb
欢迎使用 GNU Parted!输入“help”查看命令列表。
(parted)帮助单元                                                        
  unit UNIT 将默认单位设置为 UNIT

    UNIT 是以下之一:s、B、kB、MB、GB、TB、compact、cyl、chs、%、kiB、MiB、
        GiB、TiB
(分手)单位kiB                                                         
(分开)打印                                                            
型号:ATA VBOX HARDDISK (scsi)
磁盘 /dev/sdb:524288kiB
扇区大小(逻辑/物理):512B/512B
分区表:msdos
磁盘标志:

编号 起始 结束 大小 类型 文件系统 标志
 1 1024KB    205824千字节  204800kiB 主 ext3
 2 205824kiB 410624kiB 204800kiB 主 ext3
(分手)调整大小部分 1 200000                                              
警告:缩小分区可能会导致数据丢失,您确定要
继续?
是/否? 是                                                               
(分开)打印                                                            
型号:ATA VBOX HARDDISK (scsi)
磁盘 /dev/sdb:524288kiB
扇区大小(逻辑/物理):512B/512B
分区表:msdos
磁盘标志:

编号 起始 结束 大小 类型 文件系统 标志
 1 1024KB    200000kiB  198977kiB 主 ext3
 2 205824kiB 410624kiB 204800kiB 主 ext3

相关内容