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


1

我正在尝试缩小分区以匹配另一个驱动器上另一个分区的大小。我听说我首先必须缩小文件系统才能匹配。我正试图这样做 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

Answers:


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
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)  单位kiB  (分开)打印
型号:ATA VBOX HARDDISK(scsi)
磁盘/ dev / sdb:524288kiB
扇区大小(逻辑/物理):512B / 512B
分区表:msdos
磁盘标志:

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

编号开始结束大小类型文件系统标志
 1 1024kiB  200000kiB  198977kiB初级ext3
 2 205824kiB 410624kiB 204800kiB primary ext3 

好的,那么我应该使用什么才能找到尺寸而不必破坏我的计算器呢?
GameKyuubi

好吧,你使用的每个命令都有很好的理由使用不同的单位,4k,1k或512b。我担心你不得不破坏你的计算器。
jlliagre

看到我的编辑,我假设发生了同样的事情 parted
GameKyuubi

resizepart问题不太清楚。您应该复制/粘贴完整的命令和响应以确保。
jlliagre

真的没有更多的东西,我编辑了我的问题,使其更清晰
GameKyuubi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.