下午同事在自己的开发机上遇到题目说到的问题,它看到挂在到/dev/sda磁盘分区5上的ext4文件系统的容量显著小于该分区的大小
df看到的文件系统容量:
#df -h /dev/sda5 Filesystem Size Used Avail Use% Mounted on /dev/sda5 92G 44G 48G 48% /disks/disk9
parted看到的文件系统容量:
#parted /dev/sda GNU Parted 3.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: ATA INTEL XXXXXXXXX (scsi) //此处隐去了具体磁盘型号信息 Disk /dev/sda: 340GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 268MB 267MB primary ext4 boot 2 268MB 54.0GB 53.7GB primary ext4 3 54.0GB 56.1GB 2147MB primary linux-swap(v1) 4 56.1GB 340GB 284GB extended 5 56.1GB 340GB 284GB logical ext4
调查了一番,感觉有可能是这个文件系统mount上之后扩大了它所在分区的大小,这导致了文件系统的容量小于它所在分区的大小。
resize2fs工具能解决这个问题:
#resize2fs /dev/sda5 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/sda5 is mounted on /disks/disk9; on-line resizing required old_desc_blocks = 6, new_desc_blocks = 17 The filesystem on /dev/sda5 is now 69329152 blocks long.
这个工具执行的时候,不需要备份已有文件系统上的数据。具体使用细节可以通过man resize2fs看到。
另外,tune2fs工具可以看到某个设备上挂在的文件系统的非常详细的信息:
tune2fs -l /dev/sda5