首页主机资讯Debian虚拟机如何挂载宿主机磁盘

Debian虚拟机如何挂载宿主机磁盘

时间2025-10-14 16:46:03发布访客分类主机资讯浏览666
导读:Debian虚拟机挂载宿主机磁盘的通用步骤(以KVM为例) 以下是针对KVM虚拟化环境的详细操作流程,适用于Debian作为虚拟机场景,涵盖共享目录挂载(最常用)和物理磁盘直通两种方式: 一、通过共享目录挂载(推荐:简单易用) 共享目录允许...

Debian虚拟机挂载宿主机磁盘的通用步骤(以KVM为例)

以下是针对KVM虚拟化环境的详细操作流程,适用于Debian作为虚拟机场景,涵盖共享目录挂载(最常用)和物理磁盘直通两种方式:

一、通过共享目录挂载(推荐:简单易用)

共享目录允许宿主机与虚拟机之间共享指定文件夹,无需物理磁盘直通,适合日常文件共享需求。

1. 宿主机配置(KVM虚拟机配置文件修改)
  • 编辑虚拟机的XML配置文件(通过virsh edit < 虚拟机名称> 命令进入):
    virsh edit Debian-VM
    
  • < devices> 标签内添加以下内容(替换路径和名称):
    <
        filesystem type='mount' accessmode='mapped'>
        
      <
        source dir='/home/host/share_hdd'/>
          <
        !-- 宿主机共享目录路径 -->
        
      <
        target dir='hdd'/>
                           <
        !-- 虚拟机内挂载点名称(自定义) -->
        
    <
        /filesystem>
        
    
  • 保存并退出(按Ctrl+XYEnter)。
2. 虚拟机内安装9p模块并创建挂载点
  • 启动虚拟机,安装9p内核模块(KVM共享目录依赖此模块):
    sudo apt update &
        &
         sudo apt install linux-image-$(uname -r)-modules-extra
    
  • 创建虚拟机内的挂载目录:
    sudo mkdir -p /mnt/hdd
    
3. 挂载共享目录并设置开机自动挂载
  • 临时挂载(测试用):
    sudo mount -t 9p -o trans=virtio,version=9p2000.L hdd /mnt/hdd
    
  • 验证挂载:
    df -h | grep hdd  # 应显示共享目录已挂载
    
  • 永久挂载(修改/etc/fstab)
    编辑/etc/fstab文件:
    sudo nano /etc/fstab
    
    添加以下行(关键参数说明:trans=virtio指定传输协议,version=9p2000.L兼容性更好):
    hdd /mnt/hdd 9p trans=virtio,version=9p2000.L 0 0
    
  • 解决开机挂载失败问题(可选):
    若重启后无法自动挂载,需修改mnt-hdd.mount单元的依赖顺序(编辑/etc/systemd/system/mnt-hdd.mount):
    [Unit]
    Description=Mount hdd
    Requires=kmod.service  # 确保9p模块先加载
    After=kmod.service
    
    保存后重新加载systemd配置:
    sudo systemctl daemon-reload
    
4. 权限调整(可选)

若虚拟机内用户无法访问共享目录,可将当前用户加入kvm组(KVM相关进程所属组):

sudo usermod -aG kvm $(whoami)
sudo reboot  # 重启生效

二、通过物理磁盘直通挂载(高级:高性能需求)

若宿主机有额外物理磁盘,可通过PCIe直通磁盘直通方式让虚拟机直接访问,适合需要高IO性能的场景(如数据库、NAS)。

1. 宿主机配置(将磁盘直通给虚拟机)
  • 关闭虚拟机,编辑其XML配置文件:
    virsh edit Debian-VM
    
  • < devices> 标签内添加< disk> 节点(替换/dev/sdb为宿主机磁盘路径):
    <
        disk type='block' device='disk'>
        
      <
        driver name='qemu' type='raw' cache='none' io='native'/>
        
      <
        source dev='/dev/sdb'/>
          <
        !-- 宿主机物理磁盘路径 -->
        
      <
        target dev='vdb' bus='virtio'/>
          <
        !-- 虚拟机内磁盘设备名(如vdb) -->
        
    <
        /disk>
        
    
  • 保存并退出,启动虚拟机。
2. 虚拟机内操作(与普通磁盘挂载一致)
  • 查看新磁盘:
    sudo fdisk -l  # 应识别到/dev/vdb(或对应设备名)
    
  • 分区、格式化(若磁盘未分区):
    sudo fdisk /dev/vdb  # 按提示创建分区(如/dev/vdb1)
    sudo mkfs.ext4 /dev/vdb1  # 格式化分区
    
  • 创建挂载点并挂载:
    sudo mkdir /mnt/direct_disk
    sudo mount /dev/vdb1 /mnt/direct_disk
    
  • 设置开机自动挂载(同共享目录步骤,使用blkid获取UUID更可靠):
    sudo blkid /dev/vdb1  # 获取UUID
    sudo nano /etc/fstab
    
    添加以下行(替换为实际UUID):
    UUID=1234-5678-90AB-CDEF /mnt/direct_disk ext4 defaults 0 0
    

注意事项

  1. 共享目录性能:9p协议的性能受虚拟机配置影响,若需更高性能,可尝试trans=virtio+cache=loose参数,但需注意数据一致性。
  2. 磁盘直通风险:磁盘直通后,宿主机无法直接访问该磁盘,需提前备份重要数据。
  3. 权限问题:若遇到权限拒绝,检查共享目录的宿主机权限(如chmod 777 /home/host/share_hdd临时测试)或虚拟机内用户组(如kvm组)。

以上步骤覆盖了Debian虚拟机挂载宿主机磁盘的常见场景,可根据实际需求选择合适的方式。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian虚拟机如何挂载宿主机磁盘
本文地址: https://pptw.com/jishu/726015.html
Debian挂载新硬盘后如何设置 Linux Jenkins如何进行日志管理

游客 回复需填写必要信息