virt-manager 为虚拟机增加新硬盘
你提到的 “Show virtual hardware details” 里的 “Add Hardware”,就是 virt-manager 图形界面下给虚拟机添加新硬件的入口。
结合你之前想扩容 Ubuntu 20.04 虚拟机的需求,这里有两种思路,你可以看看哪种更适合你:
➕ 添加一块全新的虚拟硬盘
如果你不想动原来的系统盘,或者觉得调整分区比较麻烦,直接加一块新硬盘是最简单、最不容易出错的方式。
操作路径:
-
在
virt-manager中选中你的 Ubuntu 虚拟机,打开“Show virtual hardware details”。 -
点击左下角的 “Add Hardware”。
-
在左侧选择 “Storage”。
-
在右侧设置新硬盘的大小、格式(建议选
qcow2)和总线类型(通常选VirtIO性能更好)。 -
点击 “Finish” 完成。启动虚拟机后,你会看到一块新的未分区磁盘(通常是
/dev/vdb),然后就可以像操作物理机一样对它进行分区、格式化、挂载了。
🔧 调整现有磁盘的容量
如果你希望直接扩大现有的虚拟磁盘(即 /dev/vda),virt-manager 的图形界面里没有直接修改容量的选项。它需要通过命令行(qemu-img 或 virsh)在宿主机上操作,然后再进入虚拟机内部扩展分区。
所以,你看到的 “Add Hardware” 功能,更适合用来添加一块新的硬件(比如新硬盘、网卡),而不是用来修改现有硬件的容量。
如果你决定采用“添加新硬盘”的方式,需要我帮你梳理一下在 Ubuntu 内部挂载新硬盘的具体步骤吗?
好的,下面是在 Ubuntu 20.04 虚拟机内部挂载一块新硬盘的完整步骤。
一、确认新硬盘已识别
启动虚拟机后,先查看系统是否识别到了新硬盘:
lsblk
输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 20G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 1G 0 part /boot └─vda3 252:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm / vdb 252:16 0 10G 0 disk ← 新硬盘,无分区
可以看到 vdb 就是新加的 10G 硬盘,目前没有任何分区和挂载点。
二、对新硬盘分区
方式 A:整块盘不分区,直接格式化(推荐简单场景)
如果这块盘只用来存数据,不需要分多个区,可以直接格式化整块盘:
sudo mkfs.ext4 /dev/vdb
方式 B:分区后再格式化
如果想分区,用 fdisk 或 parted:
sudo fdisk /dev/vdb
在交互界面中依次:
-
输入
n新建分区 -
输入
p选择主分区 -
分区号、起始扇区、结束扇区直接回车用默认值(占满整块盘)
-
输入
w保存退出
然后格式化分区:
sudo mkfs.ext4 /dev/vdb1
三、创建挂载点并挂载
# 创建挂载目录,例如挂到 /data
sudo mkdir -p /data
# 挂载
sudo mount /dev/vdb /data # 如果整块盘格式化
# 或
sudo mount /dev/vdb1 /data # 如果分区后格式化
验证:
df -h
应该能看到 /data 已挂载,容量为 10G。
四、设置开机自动挂载
直接 mount 的挂载在重启后会失效,需要写入 /etc/fstab。
1. 获取分区的 UUID
sudo blkid /dev/vdb
# 或
sudo blkid /dev/vdb1
输出示例:
/dev/vdb: UUID="a1b2c3d4-..." TYPE="ext4"
2. 编辑 fstab
sudo nano /etc/fstab
在末尾添加一行(用实际 UUID 替换):
UUID=a1b2c3d4-... /data ext4 defaults 0 2
字段说明:
-
UUID=...:设备标识 -
/data:挂载点 -
ext4:文件系统类型 -
defaults:挂载选项 -
0:是否备份(dump) -
2:开机 fsck 检查顺序(非根分区用 2)
3. 测试 fstab 是否正确
这一步很重要,配置错误可能导致系统无法正常启动:
sudo mount -a
如果没有报错,说明配置正确。可以再用 df -h 确认。
五、修改挂载点所有者(可选)
默认挂载后,/data 的所有者是 root。如果普通用户需要读写:
sudo chown -R $USER:$USER /data
六、完整命令速查
假设新盘是 /dev/vdb,整块盘使用,挂到 /data:
# 1. 确认硬盘
lsblk
# 2. 格式化
sudo mkfs.ext4 /dev/vdb
# 3. 创建挂载点
sudo mkdir -p /data
# 4. 挂载
sudo mount /dev/vdb /data
# 5. 查看 UUID
sudo blkid /dev/vdb
# 6. 写入 fstab
sudo nano /etc/fstab
# 添加:UUID=xxx /data ext4 defaults 0 2
# 7. 测试
sudo mount -a
df -h
注意事项
-
确认设备名:
vdb、vdc等名称可能因添加顺序而变化,所以 fstab 里推荐用 UUID 而不是设备名。 -
不要格式化错盘:执行
mkfs前务必用lsblk确认目标盘是新增的、无数据的盘。 -
如果新盘也要用 LVM:可以先用
pvcreate、vgcreate、lvcreate创建逻辑卷,再格式化和挂载,步骤会多一些,但更灵活。 -
虚拟机快照:操作前给虚拟机打个快照,出问题可以快速回滚。
如果你希望新盘也用 LVM 管理,或者想把它加入现有的 ubuntu-vg 卷组来扩展根分区,可以告诉我,我再给你对应的步骤。

浙公网安备 33010602011771号