Linux中将虚拟磁盘文件变为可用存储需四步:创建文件(dd或truncate)、绑定环回设备(losetup -fP)、分区(fdisk/parted,可选)、格式化并挂载(mkfs+mount),支持fstab开机自动挂载。

Linux 中把虚拟磁盘文件(比如 /root/vdisk.img)变成可用存储,核心是三步:创建文件、分区(可选)、格式化、挂载。它不是物理硬盘,而是普通文件,所以要用环回设备(loop device)“假装”成一块磁盘来操作。
创建并初始化虚拟磁盘文件
用 dd 命令生成一个空的二进制文件,大小按需设定:
-
dd if=/dev/zero of=/root/vdisk.img bs=1M count=2048—— 创建一个 2GB 的空白镜像 - 如果想快速创建(不真正写零),可用
truncate -s 2G /root/vdisk.img
绑定到环回设备并分区(如需多分区)
若你希望像真实硬盘一样划分多个分区(如 /dev/loop0p1、/dev/loop0p2),需先关联环回设备:
-
losetup -fP /root/vdisk.img—— 自动分配 loop 设备并解析分区表(-P 是关键) -
losetup -l | grep vdisk查看绑定结果,通常为/dev/loop0 - 接着用
fdisk /dev/loop0或parted /dev/loop0分区(MBR/GPT 皆可) - 分完后执行
partprobe /dev/loop0刷新内核识别
⚠️ 若只用单一分区或整个文件当一个“裸块设备”,可跳过分区步骤,直接格式化 /root/vdisk.img。
格式化并挂载
根据是否分区,选择对应路径格式化:
- 无分区(整文件当卷):
mkfs.ext4 /root/vdisk.img或mkfs.xfs /root/vdisk.img - 有分区(如 loop0p1):
mkfs.ext4 /dev/loop0p1
然后创建挂载点并挂载:
mkdir -p /mnt/vdisk- 挂载整文件:
mount -o loop /root/vdisk.img /mnt/vdisk - 挂载分区:
mount /dev/loop0p1 /mnt/vdisk
验证:df -h | grep vdisk 或 lsblk 看是否生效。
设置开机自动挂载(可选)
编辑 /etc/fstab,推荐用 UUID 避免设备名变动:
- 查 UUID:
blkid /root/vdisk.img(无分区时)或blkid /dev/loop0p1 - 追加行(以 ext4 为例):
UUID=xxxx-xxxx /mnt/vdisk ext4 defaults,loop 0 0
注意:整文件挂载必须加loop选项
测试配置:mount -a,无报错即生效。











