在Linux中,有两种磁盘的管理方式,非LVM(传统/直接)或LVM(动态)。是否是LVM,在安装系统时确定。两种管理方式对应的扩容方式不一样。如果是LVM,用的是pvcreate,vgcreate,lvextend方式,如果是非LVM,则用fdisk里的d,n方式,并且只能对磁盘最后的一个分区进行扩容。查看方式:运行命令lvs,若有结果则为LVM。下面主要介绍非LVM管理的磁盘扩容方式。
一
由于只能对磁盘最后的一个分区进行扩容,所以要检查根目录所挂载的文件系统是不是分区的最后一个。如图,/dev/sda2挂载到/,而/dev/sda3还被用作swap分区(忽略后面的11G的LMV2卷)。
此时就得把swap分区给删了。用了网上的很多方法,如swapoff,parted都不行,其实一个步骤就好:
- 1) 在/etc/fstab中把挂载到swap的文件系统的那一行删除。然后重启。
确保新增的磁盘空间是free的(未分配)。
二
然后进行分配。
- 2) 登录root用户
- 3) fdisk <需要扩容的磁盘>,比如我这里就是fdisk /dev/sda
- 4) d ,删除分区(不用担心会删除数据,只要不输入w命令就不会保存变化)
- 5) <n> ,第n个分区,我这里是2(/dev/sda2挂载到根目录/)
- 6) n ,新建分区
- 7) <n> ,和第5步一样
- 选择开始和结束block,根据需求调整
- 如果提示分区 # n 包含一个 ext4 签名。
您想移除该签名吗? 是[Y]/否[N]: N - 8) w ,写入变化
- 9)如果发现df和lsblk/fdisk显示的大小不一样,使用命令resize2fs /dev/sda<n>调整到lsblk/fdisk上的大小 resize2fs <fs> ,重新调整磁盘大小, 如resize2fs /dev/sda2
- 可选:重启
三
可以看到根目录变大了。
后续还要进行新建swap(如有需要)。