我們管理的服務器可能會隨著業務量的不斷增長造成磁盤空間不足的情況,比如:共享文件服務器硬盤空間不足,在這個時候我們就需要增加磁盤空間,來滿足線上的業務;又或者我們在使用linux的過程中, 有時會因為安裝系統時分區不當導致有的分區空間不足,而有的分區空間過剩的情況,都可以是使用fdisk分區工具來動態調整分區的大小。
擴展完後,重啟系統,再次使用fdisk -l查看,會發現硬盤空間變大了;
首先模擬出一些數據:
[root@linuxprobe data]# mkdir test [root@linuxprobe data]# echo "we are Linuxer" > linuxprobe [root@linuxprobe data]# ll total 24 -rw-r--r--. 1 root root 15 May 23 21:59 linuxprobe drwx------. 2 root root 16384 May 23 15:07 lost+found drwxr-xr-x. 2 root root 4096 May 23 21:51 test [root@linuxprobe ~]# umount /dev/sda4 ### 卸載磁盤分區若提示磁盤忙,使用fuser找出將正在使用磁盤的程序並結束掉;
fuser -m -v /data fuser -m -v -i -k /data使用fdisk工具先刪除/dev/sda4分區,然後創建新分區,注意開始的磁柱號要和原來的一致(是保證數據不丟失的關鍵步驟),結束的磁柱號默認回車使用全部磁盤。
[root@linuxprobe ~]# fdisk /dev/sda WARNING: 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 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005210c Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 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 Command (m for help): d ### 刪除分區 Partition number (1-4): 4 ### 刪除第四個 Command (m for help): p ### 再次查看分區信息,/dev/sda4已被刪除 Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005210c Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1301 10240000 83 Linux /dev/sda3 1301 1497 1572864 82 Linux swap / Solaris Command (m for help): n ### 創建新的分區 Command action e extended p primary partition (1-4) p #創建為主分區 Selected partition 4 First cylinder (1497-3916, default 1497): ### 經對比,正好和上一個磁盤柱一致,默認即可 Using default value 1497 Last 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 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005210c Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 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 Linux Command (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 at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
重新創建分區後,需要重啟一下;
[root@linuxprobe ~]# init 6 [root@linuxprobe ~]# e2fsck -f /dev/sda4 ### 檢查分區信息 [root@linuxprobe ~]# resize2fs -p /dev/sda4 ### 調整分區大小重新掛載、查看分區大小、數據:
可見/dev/sda4分區的空間大小已經增加了。