PVE/Debian创建一个img虚拟磁盘文件,并挂载到本地
cd /root #改成你的存放位置
#如果需要的虚拟磁盘超大,dd很花费时间,可以尝试看看这个命令
#fallocate -l 50G /root/t1.img
dd if=/dev/zero of=/root/t1.img bs=1M count=512
fdisk /root/t1.img #按n建立分区,然后一直回车就能建立一个分区了,最后按w保存并退出
ls /dev/loop* #查看存在的loop设备,LXC虚拟化好像不行的
losetup -P /dev/loop5 /root/t1.img #loop后面的数字无所谓,没被占用就行
mkfs.ext4 /dev/loop5p1 #p1就是第一个分区
losetup -d /dev/loop5 #使用完了要卸载loop设备
mkdir /mnt/t1.img #建立挂载点
fdisk -l /root/t1.img #查看扇区大小和分区起始位置,计算出偏移,偏移=扇区大小*分区起始位置,我的是1048576
mount -o loop,offset=1048576 /root/t1.img /mnt/t1.img #他会自动寻找可用的loop设备挂载的
df -h #查看是否挂载成功,大小和设定的不一致是1000和1024的换算问题,老生常谈我才不管
echo HelloWorld > /mnt/t1.img/1.txt #测试写入
cat /mnt/t1.img/1.txt #查看是否写入成功
umount /mnt/t1.img #取消挂载
如果要开机自动挂载,可以写到/etc/fstab中,添加nofail参数,防止挂载失败时卡引导
nano /etc/fstab
#添加下面这行到文件中,保存并退出
/root/t1.img /mnt/t1.img auto loop,offset=1048576,nofail 0 0
#修改过/etc/fstab是需要刷新一下的
systemctl daemon-reload
#测试/etc/fstab是否正确且生效
mount -a
df -h
#如果没错误,可以取消挂载,尝试重启 看看是否能自动挂载了
#umount /mnt/t1.img
#reboot
#df -h
#cat /mnt/t1.img/1.txt