在 Linux 下使用 fdisk 扩展分区容量

    xiaoxiao2024-03-28  12

    我们管理的服务器可能会随着业务量的不断增长造成磁盘空间不足的情况,比如:共享文件服务器硬盘空间不足,在这个时候我们就需要增加磁盘空间,来满足线上的业务;又或者我们在使用linux的过程中, 有时会因为安装系统时分区不当导致有的分区空间不足,而有的分区空间过剩的情况,都可以是使用fdisk分区工具来动态调整分区的大小。

    扩展磁盘空间

    硬盘空间为20G,使用vSphere Client增加磁盘大小,需要再增加10G空间;

    fdisk_l-20G

    vshere_add

    扩展完后,重启系统,再次使用fdisk -l查看,会发现硬盘空间变大了;

    fdisk_l-30

    重新创建分区,调整分区信息

    本次实验主要对/dev/sda4这个分区扩展,如果是生产环境,请提前做好备份保存到其他分区,虽然扩展分区大小不会导致数据丢失,安全起见,请提前做好备份; 首先模拟出一些数据:

    [root@linuxprobe data]# mkdir test[root@linuxprobe data]# echo "we are Linuxer" > linuxprobe[root@linuxprobe data]# lltotal 24-rw-r--r--. 1 root root 15 May 23 21:59 linuxprobedrwx------. 2 root root 16384 May 23 15:07 lost+founddrwxr-xr-x. 2 root root 4096 May 23 21:51 test[root@linuxprobe ~]# umount /dev/sda4 ### 卸载磁盘分区

    若提示磁盘忙,使用fuser找出将正在使用磁盘的程序并结束掉;

    fuser -m -v /datafuser -m -v -i -k /data

    使用fdisk工具先删除/dev/sda4分区,然后创建新分区,注意开始的磁柱号要和原来的一致(是保证数据不丢失的关键步骤),结束的磁柱号默认回车使用全部磁盘。

    [root@linuxprobe ~]# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It is strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): p ### 查看分区表信息Disk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005210c Device Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26 1301 10240000 83 Linux/dev/sda3 1301 1497 1572864 82 Linux swap / Solaris/dev/sda4 1497 2611 8952832 83 LinuxCommand (m for help): d ### 删除分区Partition number (1-4): 4 ### 删除第四个Command (m for help): p ### 再次查看分区信息,/dev/sda4已被删除Disk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005210c Device Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26 1301 10240000 83 Linux/dev/sda3 1301 1497 1572864 82 Linux swap / SolarisCommand (m for help): n ### 创建新的分区Command action e extended p primary partition (1-4)p #创建为主分区Selected partition 4First cylinder (1497-3916, default 1497): ### 经对比,正好和上一个磁盘柱一致,默认即可Using default value 1497Last cylinder, +cylinders or +size{K,M,G} (1497-3916, default 3916): Using default value 3916 ### 直接默认就可以Command (m for help): p ### 查看分区表信息Disk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0005210c Device Boot Start End Blocks Id System/dev/sda1 * 1 26 204800 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26 1301 10240000 83 Linux/dev/sda3 1301 1497 1572864 82 Linux swap / Solaris/dev/sda4 1497 3916 19436582 83 LinuxCommand (m for help): wp ### 保存并退出,如果创建有误,直接退出不要保存即可The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.

    fdisk-d

    重新创建分区后,需要重启一下;

    fdisk-p

    [root@linuxprobe ~]# init 6[root@linuxprobe ~]# e2fsck -f /dev/sda4 ### 检查分区信息[root@linuxprobe ~]# resize2fs -p /dev/sda4 ### 调整分区大小

    重新挂载、查看分区大小、数据:

    df-hT_19G

    可见/dev/sda4分区的空间大小已经增加了。

    原文发布时间为:2016-05-26

    本文来自云栖社区合作伙伴“Linux中国”

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)