一、操作背景
- 将VMware虚拟机 Ubuntu 16.04的硬盘空间从20G扩容到40G
二、操作流程
-
- 关闭虚拟机
-
- 修改虚拟机设置,更改磁盘容量(从20G调整到40G)
- 修改虚拟机设置,更改磁盘容量(从20G调整到40G)
-
- 安装gparted软件
sudo apt-get install gparted
-
- 打开gparted查看分区情况
- 打开后,可以看到从20G扩展到40G 的 20G 处于未分配状态,现在要做的就是把这20G分配到原有硬盘大小20G的主分区/dev/sda1中
- 此处分区介绍:
- /dev/sda1 为主分区
- /dev/sda2 为扩展分区
- /dev/sda5 为逻辑分区
- 磁盘容量与主分区、扩展分区、逻辑分区的关系:
- 硬盘容量 = 主分区容量 + 扩展分区容量
- 扩展分区容量 = 各个逻辑分区容量之和
-
- 删除未分配和主分区/dev/sda1之间的其他分区。
说明:要将未分配的部分,分配到主分区/dev/sda1中,未分配和主分区/dev/sda1之间不能有其他分区,所以我们需要将他们之间的分区删除掉。
- 5.1) 设置新的交换分区,解锁/dev/sda2及其/dev/sda5的锁定状态(如果5.2步骤没报错,可不执行该步骤)
# 默认情况下,/dev/sda2及其/dev/sda5是锁定状态(像/dev/sda1一样有把钥匙)。 # 在锁定状态下,是无法删除的,并且在这工具内右键swapoff会报错误:Cannot allocate memory # 解决思路是:将原来/dev/sda5的交换分区切换至使用本地文件,然后停用/dev/sda5交换分区,具体命令如下: # 1. 查看正在使用的交换区 swapon -s # 2. 创建并拷贝/dev/zero到/home/swap dd if=/dev/zero of=/home/swap bs=1024 count=512000 # 3. 设置交换文件 mkswap /home/swap # 4. 启用交换分区 swapon /home/swap # 5. 停用交换分区 swapoff /dev/sda5 # 6. 确认是否已成功 swapon -s
- 5.2) 首先鼠标移动到逻辑分区linux-swap所在区域,单击右键,禁用交换空间
- 5.3) 点击右键删除掉linux-swap
- 5.4) 点击右键删除extended
此时可以看到扩展分区和逻辑分区已经被删除了,并且分配给扩展分区的容量增加到了未分配中
-
- 更改主分区/dev/sda1大小
- 单击右键主分区/dev/sda1区域,点击更改大小
- 将之后的空余空间修改成2048(用来创建刚被删了扩展分区和逻辑分区)
- 点击新大小的输入框后会自动更新数值,然后点击调整大小
-
- 将剩下未分配的容量,创建为扩展分区
- 单击右键未分配区域,点击新建;
- 将主分区修改为扩展分区修改成扩展分区后,文件系统默认为extend,然后点击添加
- 同理再创建逻辑分区linux-swap,单击右键未分配区域,点击新建
- 此时默认为逻辑分区,将文件系统:ext4修改为linux-swap
- 点击linux-swap,然后再点击添加
- 点击√,提交扩容内容
- 点击应用
- 点击关闭
-
- 查看扩容后界面,扩展分区和逻辑分区创建完成
- 查看扩容后界面,扩展分区和逻辑分区创建完成
-
- 最后将新建的 linux-swap 中的UUID值更新到/etc下fstab文件中
- 右键单击linux-swap,点击信息,查看UUID值
- 复制UUID的值
- 修改 /etc/fstab 文件(fstab文件中有两个UUID,需要更新的是swap下逻辑分区的UUID值,将原来的UUID值删除,更新为刚复制的UUID值)
- 更新完成后,保存文件
-
- 改回交换分区为新创建的上述分区(如何有执行5.1步骤,则执行该步骤)
# 启用新的交换分区 swapon /dev/sda5 # 停用原先创建的交换分区 swapoff /home/swap
- 改回交换分区为新创建的上述分区(如何有执行5.1步骤,则执行该步骤)
-
- 查看硬盘容量
df -h
三、参考博客
- https://blog.csdn.net/robin__su/article/details/132649116
- https://blog.csdn.net/awisc/article/details/122584595