当我们的Linux虚拟机的根分区磁盘空间不足时,我们需要进行扩充。下面是一份详细的攻略,让您轻松处理这个问题。
1. 查看当前磁盘空间使用情况在进行磁盘扩充之前,我们需要确保知道当前的磁盘使用情况。通过如下的命令可以查看根分区的磁盘使用情况。
df -h
运行命令后,会显示所有分区的磁盘使用情况。其中,包括我们要扩充的根分区。
2. 创建一个新的虚拟硬盘在我们扩充根分区磁盘之前,我们需要先创建一个新的虚拟硬盘。可以通过如下的步骤创建一个10G的虚拟硬盘。
- 在虚拟机的控制台中选择“添加硬盘”。
- 点击“新硬盘”。
- 选择硬盘大小,例如10G。
- 为硬盘命名,并选择存储位置。
- 点击“完成”。
现在我们已经成功创建了新的虚拟硬盘,需要将其挂载到虚拟机上。
- 运行如下命令,查看新硬盘所在的设备名称。
fdisk -l
运行命令后,会将所有的磁盘设备列出并显示磁盘大小等信息。找到我们刚才创建的新的硬盘所在的设备名称,例如 /dev/sdb
。
- 运行如下的命令,将新硬盘挂载到
/mnt
目录下。
mkdir /mnt/newdisk
mount /dev/sdb /mnt/newdisk
现在,我们需要将根分区中的所有数据复制到新的虚拟硬盘中。
- 运行如下命令,将根分区上的所有数据复制到新的虚拟硬盘。
cp -ax / /mnt/newdisk
- 等待复制过程完成。可能需要花费一些时间。
现在,我们需要更新 /etc/fstab
文件,以便将新的虚拟硬盘作为根分区。
- 运行如下命令,获取新硬盘的UUID。
blkid /dev/sdb1
运行命令后,会显示新硬盘的UUID。例如:
/dev/sdb1: UUID="8eddc834-0949-48e2-86a5-ea8b0a2cd28e" TYPE="ext4" PARTUUID="231ff22d-01"
- 编辑
/etc/fstab
文件,并将根分区的设备名称和 UUID 更新为新的虚拟硬盘。
nano /etc/fstab
找到类似下面的行:
/dev/sda1 / ext4 defaults 0 1
将其中的 /dev/sda1
和 UUID 更新为新的虚拟硬盘。
UUID=8eddc834-0949-48e2-86a5-ea8b0a2cd28e / ext4 defaults 0 1
保存并退出。
6. 重新启动虚拟机并验证现在,我们重新启动虚拟机,以验证磁盘扩展是否成功。
- 运行如下的命令:
shutdown -r now
这将立即重新启动虚拟机。
- 运行如下命令,检查根分区的磁盘使用情况。
df -h /
这将只显示根分区的磁盘使用情况。确保空间已经扩充。
示例例如,我们的虚拟机中有一个名为 /dev/sda1 的根分区,其已满。我们需要将其扩充到 20G。
- 检查磁盘使用情况。
df -h
输出结果类似:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 10G 10G 0G 100% /
-
创建一个大小为20G的硬盘,并将其挂载到 /mnt/newdisk 目录下。
-
对新挂载的硬盘格式化并分区。
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
- 将根分区复制到新的虚拟硬盘中。
cp -ax / /mnt/newdisk
- 更新 /etc/fstab 文件,以便将新硬盘作为根分区。
blkid /dev/sdb1
UUID=8eddc834-0949-48e2-86a5-ea8b0a2cd28e / ext4 defaults 0 1
- 重新启动虚拟机并验证磁盘扩展是否成功。
shutdown -r now
df -h /
输出结果类似:
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 20G 10G 10G 50% /