上一篇
Linux虚拟机能加物理硬盘吗?
- 物理机
- 2025-06-01
- 3141
在Linux虚拟机中可添加物理硬盘,首先在虚拟机设置中将
物理硬盘映射为虚拟磁盘,启动虚拟机后使用fdisk分区、mkfs格式化,最后mount挂载并配置/etc/fstab实现永久使用。
为什么需要添加物理硬盘?
- 扩展存储空间:突破虚拟磁盘容量限制。
- 提升性能:物理硬盘(如SSD)提供更高I/O速度。
- 数据直连:直接读写物理设备数据(如备份、迁移)。
- 硬件测试:验证物理硬盘兼容性与稳定性。
准备工作
物理环境配置
- 关闭虚拟机:
virsh shutdown <VM_NAME>
或通过GUI关闭。 - 连接硬盘:
- 物理机插入SATA/SAS/USB硬盘(需未被系统占用)。
- 通过RAID卡连接的硬盘需提前配置好阵列。
- 验证识别:
lsblk # 查看物理机是否识别新硬盘(如/dev/sdb)
虚拟机配置
-
编辑虚拟机XML配置(以KVM/QEMU为例):
<disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/sdb'/> <!-- 物理硬盘路径 --> <target dev='vdb' bus='virtio'/> <!-- 虚拟机内设备名 --> </disk>
- 使用命令更新配置:
virsh edit <VM_NAME> # 手动添加上述XML代码 virsh define /etc/libvirt/qemu/<VM_NAME>.xml # 应用配置
- 使用命令更新配置:
-
其他虚拟化平台:
- VMware Workstation:
虚拟机设置 → 添加硬盘 → 选择物理磁盘 → 分配设备(如/dev/sdb)
。 - VirtualBox:
设置 → 存储 → 添加控制器 → 选择“使用物理磁盘”
。
- VMware Workstation:
Linux虚拟机内操作步骤
步骤1:识别新硬盘
启动虚拟机后执行:
lsblk # 查看新硬盘(如vdb、sdb) fdisk -l # 确认设备详细信息
图:通过lsblk查看新硬盘/dev/vdb
步骤2:分区与格式化
sudo fdisk /dev/vdb # 对新硬盘分区 # 交互命令:n → p → 回车(默认分区)→ w(保存) sudo mkfs.ext4 /dev/vdb1 # 格式化为ext4文件系统 # 其他格式:xfs(mkfs.xfs)、btrfs(mkfs.btrfs)
步骤3:挂载硬盘
sudo mkdir /mnt/physical_disk # 创建挂载点 sudo mount /dev/vdb1 /mnt/physical_disk # 临时挂载
永久挂载:编辑 /etc/fstab
添加:
/dev/vdb1 /mnt/physical_disk ext4 defaults 0 0
验证配置:
sudo mount -a # 无报错即成功
步骤4:权限设置
sudo chown -R youruser:yourgroup /mnt/physical_disk # 分配用户权限
关键注意事项
- 数据安全:
- 操作前备份:误操作可能导致数据丢失。
- 卸载再断电:
umount /dev/vdb1
后再关闭虚拟机。
- 性能优化:
- 启用
discard
选项(TRIM支持):defaults,discard
用于SSD。 - 调整I/O调度器:
echo deadline > /sys/block/vdb/queue/scheduler
。
- 启用
- 常见问题:
- 硬盘未识别:检查物理连接、虚拟机XML配置路径权限。
- 挂载失败:确认文件系统类型与
fstab
中一致(使用blkid
查看UUID)。 - 权限拒绝:通过
ls -l /mnt/
检查目录所有者。
应用场景示例
- 数据库存储:将MySQL数据目录迁移到物理SSD:
sudo rsync -av /var/lib/mysql /mnt/physical_disk/ sudo chown -R mysql:mysql /mnt/physical_disk/mysql
- 媒体服务器:挂载大容量硬盘存放影音文件:
sudo mount /dev/vdb1 /srv/plex_media
为Linux虚拟机添加物理硬盘能有效整合物理硬件优势与虚拟化灵活性,关键操作包括:
- 物理机正确连接硬盘并配置虚拟机。
- 虚拟机内分区、格式化与挂载。
- 权限管理及性能优化。
引用说明:
- Linux内核文档:块设备配置指南
- libvirt官方手册:存储管理
- VMware KB:直通物理磁盘
操作涉及硬件变更,建议在测试环境验证后再部署生产环境。