备份要调整大小的文件系统上的所有数据
如果执行不正确,调整文件系统和底层设备的大小是危险的,并且可能具有破坏性。
重新分区设备同样具有破坏性,可能会导致数据完全丢失。
在继续之前,备份要调整大小的文件系统/设备的内容。
更多: zhilu jiaocheng
在硬盘分区(非 LVM)上减小 非根文件系统的大小
- 示例 设置
在此示例中,设备 /dev/sdb (20Gb) 包含一个 20Gb 的主分区 (/dev/sdb1) 和跨越整个分区的 EXT3/4 文件系统 (/data)。
分区末尾和设备末尾之间不存在可用磁盘空间。
在继续之前,运行以下命令记录输出以备后用。
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 20635700 10672240 8915224 55% /data
# cat /proc/partitions | grep sdb 8 16 20971520 sdb 8 17 20964793 sdb1
# fdisk -l /dev/sdb Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 83 Linux
- 卸载要调整大小的文件系统
卸载要调整大小的 EXT3/4 文件系统,例如:
# umount /data
- 执行文件系统检查
验证要调整大小的文件系统的文件系统类型,例如:是否为 EXT3. EXT4 等。
# blkid /dev/sdb1 /dev/sdb1: LABEL="/data" UUID="1fc0bbcd-ba86-40b6-b562-5da90fb0d7af" TYPE="ext3"
对文件系统执行文件系统检查,确保对文件系统类型使用相应的文件系统检查实用程序(fsck.ext3. fsck.ext4),例如:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/2621440 files (4.8% non-contiguous), 2750333/5241198 blocks
- 减小文件系统
使用 resize2fs 实用程序缩小 EXT3/4 文件系统以使用更少的分区空间。
查看之前记录的 df 输出以确定缩小文件系统的大小。
确保不要将 ETX3/4 文件系统减少到小于其中包含的实际数据量。
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 20635700 10672240 8915224 55% /data
# resize2fs /dev/sdb1 11G resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/sdb1 to 2883584 (4k) blocks. The filesystem on /dev/sdb1 is now 2883584 blocks long.
注意:当运行 resize2fs 时,如果没有指定大小,文件系统将被扩展以利用分区中的所有可用/剩余空间。
- 执行文件系统检查
对调整后的 EXT3/4 文件系统执行文件系统检查,确保对正在使用的文件系统类型使用相应的文件系统检查实用程序(fsck.ext3. fsck.ext4),例如:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/1441792 files (4.8% non-contiguous), 2712300/2883584 blocks
- 缩小分区
从上面的文件系统检查输出来看,文件系统现在的大小为 2883584 (* 4Kb) 块,即:
# expr 2883584 \* 4096 11811160064 (bytes)
分区的大小必须保持大于其中当前文件系统使用的大小。
因此,分区被调整为不小于 12Gb 的安全值,即:
# expr 1024 \* 12 12288 (Mb)
使用 fdisk 命令删除然后重新创建一个较小的分区,确保重新使用原始分区起始块,例如:
# fdisk /dev/sdb The number of cylinders for this disk is set to 2610. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of jack) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 2610 20964793+ 83 Linux Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-2610, default 1): [enter] Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +12288M Command (m for help): p Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 1495 12008556 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
此时,分区末端和设备末端之间的磁盘空间可供重用。
- 验证分区大小调整
验证系统看到新调整大小的分区,例如:
# cat /proc/partitions | grep sdb 8 16 20971520 sdb 8 17 12008556 sdb1
如果系统无法检测到新分区大小,请针对调整大小的设备运行 partprobe 实用程序,例如:
# partprobe /dev/sdb
- 执行文件系统检查
对调整后的 EXT3/4 文件系统执行文件系统检查,确保对正在使用的文件系统类型使用相应的文件系统检查实用程序(fsck.ext3. fsck.ext4),例如:
# fsck.ext3 -fy /dev/sdb1 e2fsck 1.39 (29-May-2006) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information data: 21/1441792 files (4.8% non-contiguous), 2712300/2883584 blocks
- 挂载调整大小的文件系统
挂载新调整大小的 EXT3/4 文件系统,例如:
# mount /data
- 验证文件系统调整大小
查看 dmesg、消息日志、df 命令输出等以验证文件系统大小调整成功,例如:
# df -k /data Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 11353328 10668192 223764 98% /data
日期:2020-09-17 00:12:21 来源:oir作者:oir