服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-11-06 简米科技 4,373 字 10 分钟阅读

虚拟机如何mount硬盘?Linux mount命令怎么挂载硬盘?

导读虚拟机挂载新硬盘,核心就一句话:先用fdisk分区,再用mkfs格式化,最后用mount命令把分区挂载到指定目录,这一步做完,虚拟机里的Linux系统才能读写这块新磁盘,本文围绕Linux系统mount命令的实际操作场景,把从识别磁盘到开机自动挂载的完整流程拆开讲透,linux mount命令详解:挂载的本质与……

虚拟机挂载新硬盘,核心就一句话:先用fdisk分区,再用mkfs格式化,最后用mount命令把分区挂载到指定目录。这一步做完,虚拟机里的Linux系统才能读写这块新磁盘,本文围绕Linux系统mount命令的实际操作场景,把从识别磁盘到开机自动挂载的完整流程拆开讲透。

linux mount命令详解:挂载的本质与核心参数

挂载的本质,是把存储设备(分区、U盘、ISO镜像)关联到Linux目录树中的一个空目录上,只有完成挂载,内核才能通过该目录访问设备里的文件系统,不挂载就访问设备文件,系统只认设备节点,不认里面的文件结构。

mount命令的标准语法

mount [-t 文件系统类型] [-o 挂载参数] 设备路径 挂载点目录
  • -t:指定文件系统类型,如ext4、xfs、ntfs、vfat,日常大部分情况可省略,系统能自动识别。
  • -o:挂载参数选项,这是实际工作中调整权限和行为的核心,常用组合见下文参数表格。
  • 设备路径:/dev/sdb1、/dev/vdb这类块设备节点,或ISO镜像文件路径。
  • 挂载点目录:必须已存在的空目录,常见如/mnt/data、/opt/backup。

实际挂载操作示例

查看当前系统识别的磁盘和分区信息:

lsblk

该命令会列出所有块设备的分层结构,新加的虚拟磁盘如果没有分区,会显示为完整未使用状态的sdb或vdb,没有下方的子分区层级。

假设检测到新盘为/dev/sdb,目标将其第一个分区挂载到/mnt/data:

mkdir -p /mnt/data
mount /dev/sdb1 /mnt/data

挂载后验证结果,使用不带参数的mount命令或df -h检查。

常用挂载参数对比速查

参数 作用 典型使用场景
rw / ro 读写 / 只读挂载 数据备份盘建议只读挂载防止误写
noexec 禁止执行目录内二进制文件 挂载临时文件或共享目录提升安全性
defaults 默认参数组(rw、suid、dev、exec、auto等) 日常普通数据盘挂载
umask / uid / gid 控制FAT/NTFS文件系统的权限位 挂载Windows共享过来的移动硬盘时调整访问权

linux硬盘挂载fstab设置:实现开机自动挂载

手动执行mount命令的挂载状态,重启虚拟机后即失效,开机自动挂载需修改/etc/fstab文件,这是Linux系统启动时自动读取的挂载配置表。

fstab字段结构说明

fstab每行代表一个挂载规则,共六个字段:

  1. 设备标识:推荐使用UUID而非/dev/sdb1这种名称,因为虚拟机磁盘设备名在重启后可能因硬件识别顺序变化而改变,UUID是文件系统创建时生成的唯一标识,不会变动,获取UUID用blkid命令。
  2. 挂载点:与手动mount要求相同,目录需提前创建好。
  3. 文件系统类型:如ext4、xfs。
  4. 挂载参数:同上文mount的-o参数,多分区之间用逗号分隔,无特殊要求填defaults。
  5. dump备份标记:0表示不备份,现代系统均填0。
  6. fsck检查顺序:根分区填1,其他数据分区填2或0,0表示开机不检查磁盘完整性。

安全的fstab配置流程

先查询UUID和文件系统类型:

blkid /dev/sdb1
该命令输出结果形如:/dev/sdb1: UUID="2a3b..." TYPE="ext4"

在fstab文件末尾追加一行(使用vim /etc/fstab编辑):

UUID=2a3b... /mnt/data ext4 defaults 0 2

配置完成后执行验证,这一步极其关键,fstab写错会导致虚拟机开机卡在emergency mode:

mount -a

该命令会按照fstab配置重新挂载所有条目,出现报错立即修复,切勿直接重启。

fstab填错后的恢复方案

如果重启后系统进入维护模式(提示输入root密码或按Ctrl+D),执行以下操作恢复:

  1. 输入root密码进入shell。
  2. 执行mount -o remount,rw /,让根文件系统变为可写状态。
  3. 编辑fstab,注释掉错误行(行首加#号)。
  4. 执行reboot重启即可恢复正常。

centos mount挂载硬盘步骤:从零到挂载完成的实操流程

CentOS服务器场景中,新挂载一块数据盘的操作路径与通用Linux一致,但涉及分区工具选择时略有区别,下面按完整顺序展开。

第一步:分区创建

使用fdisk工具对整块新磁盘进行分区:

fdisk /dev/sdb

进入交互界面后依次输入:

  • n:新建分区。
  • p:选择主分区,也可直接回车使用默认值。
  • 起始扇区、结束扇区直接回车使用默认值表示用满整块磁盘。
  • w:写入分区表并退出。

分区完成后再次运行lsblk,应能看到新的sdb1分区节点。

若磁盘容量超过2TB,fdisk的MBR分区表无法支持,应改用parted工具配合GPT分区表。

第二步:格式化文件系统

CentOS 7及之后版本默认推荐使用xfs文件系统,但也存在大量沿用ext4的存量环境,两者各有优劣,xfs适合大文件和高并发写入场景,ext4在文件删除和大量小文件操作方面表现更好。

mkfs.xfs /dev/sdb1

已将原数据格式化,命令会直接清空分区上所有旧数据,执行前通过df -h和blkid确认设备无重要资料,误格式化后恢复成本和成功率均不乐观,务必备份验证。

第三步:挂载并验证读写

创建挂载点并执行挂载:

mkdir -p /data
mount /dev/sdb1 /data

验证文件系统支持读写,在挂载目录内创建测试文件并检查:

echo "test" > /data/testfile.txt
cat /data/testfile.txt

能正常输出test字样说明挂载成功且权限正常,随后删除测试文件即可。

虚拟机磁盘挂载的典型场景与权限处理

虚拟机环境中的磁盘类型比物理机更多样化,除了常见的虚拟硬盘(vmdk、qcow2),还涉及共享存储、ISO镜像、宿主机文件夹等特殊设备。

ISO镜像文件的挂载

挂载ISO镜像不需要虚拟光驱,直接用mount命令加loop参数即可:

mount -o loop /path/to/system.iso /mnt/iso

loop设备机制使普通文件可以像块设备一样被内核识别,虚拟化平台上安装VMware Tools或配置yum本地源时经常用到。

Windows移动硬盘如何挂载到Linux虚拟机

将移动硬盘直接透传给虚拟机后,Linux系统通常识别为NTFS分区,操作系统默认不带NTFS内核驱动,需要安装ntfs-3g软件包(以CentOS为例):

yum install -y ntfs-3g
mount -t ntfs-3g /dev/sdc1 /mnt/usb

需要注意NTFS挂载后的中文文件名显示乱码问题,挂载时追加iocharset参数可部分规避:

mount -t ntfs-3g -o iocharset=utf8 /dev/sdc1 /mnt/usb

NFS网络共享的挂载

多台虚拟机之间共享数据目录通行做法是配置NFS服务端,客户端用mount挂载远程目录,与本地块设备挂载的区别在于设备路径替换为服务器IP:共享目录:

mount -t nfs 192.168.1.100:/data/share /mnt/nfs

NFS挂载可加入fstab实现开机自动挂载,但建议增加_netdev参数,该参数要求网络就绪后再执行挂载,否则开机时网卡未启动会导致挂载失败,进而拖慢开机甚至进入维护模式。

mount命令报错排查:常见故障与解决建议

挂载操作遇到报错时,多数情况集中在几个特征明确的原因上,逐项排查比搜索模糊提示词更高效。

mount: wrong fs type, bad option, bad superblock

问题出在文件系统类型识别失败,常见原因是分区尚未格式化(直接挂载了空分区)或内核缺少对应文件系统驱动模块,先运行blkid确认设备上有实际文件系统,再检查驱动模块是否加载:lsmod | grep <名称>。

缺少xfs支持时先装包再挂载:

yum install -y xfsprogs

mount: /dev/sdb1 is write-protected, mounting read-only

说明文件系统检测到异常状态,主动降级为只读保护数据,常见于ext系列文件系统未正常卸载(如虚拟机强制重启),先卸载该分区(若已挂载),执行强制日志恢复:

fsck.ext4 -y /dev/sdb1

完成后重新挂载,可恢复读写状态。

mount: special device /dev/sdb1 does not exist

设备节点路径不存在,原因可能是未分区、内核未识别新磁盘,虚拟机管理平台上确认磁盘已连接且磁盘大小正确,宿主机内执行partprobe让内核重读分区表,或直接重启虚拟机完成设备识别。

常见疑问速答:mount相关问题汇总

如何在Linux中临时挂载Windows共享文件夹?

创建本地挂载点后,使用cifs协议挂载:

mount -t cifs //192.168.1.10/shared /mnt/winshare -o username=administrator,password=密码

若要避免密码明文写入命令历史,建议将凭据写入独立文件,使用credentials=/path/to/file参数装载。

挂载点目录里原有的文件会消失吗?

不会删除,mount挂载后,原目录中的文件会被临时隐藏,访问该目录看到的是新挂载设备的内容,umount卸载设备后,原目录中文件恢复显示,单次挂载中约覆盖原目录视图,不对内容做物理修改。

mount命令和fstab有什么关系?

mount命令处理的是当前运行状态的挂载操作,重启后失效,fstab文件定义的是系统启动时自动执行的挂载规则,属于持久化配置,修改fstab后需使用mount -a验证正确性,日常临时挂载则直接用mount命令完成,两者规则独立,但fstab配置错误会影响系统正常启动。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱