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

扩展磁盘空间

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

fdisk_l-20Gvshere_add

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

[root@linuxprobe ~]# fdisk -lDisk /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  Linux[root@linuxprobe ~]# df -hTFilesystem     Type   Size  Used Avail Use% Mounted on/dev/sda2      ext4   9.7G  1.5G  7.7G  16% /tmpfs          tmpfs  939M     0  939M   0% /dev/shm/dev/sda1      ext4   194M   34M  151M  19% /boot/dev/sda4      ext4   8.5G  148M  7.9G   2% /data

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's 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-dfdisk-p

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

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

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

[root@linuxprobe ~]# mount /dev/sda4 /data[root@linuxprobe ~]# df -hT[root@linuxprobe ~]# cat /data/linuxprobewe are  Linuxer

df-hT_19G

本文转载自:
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:spacer.gif