![为 ext4 文件系统创建循环设备](https://linux22.com/image/1002479/%E4%B8%BA%20ext4%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%88%9B%E5%BB%BA%E5%BE%AA%E7%8E%AF%E8%AE%BE%E5%A4%87.png)
我创建了一个文件并将其格式化为 ext4 文件系统,并尝试将其挂载为循环设备。最初,中没有 loopX 条目/dev
,因此我创建了一个这样的条目:
root:~# mknod -m640 /dev/loop0 b 7 0
root:~# chown root:disk /dev/loop0
节点已创建:
root:~# ls -l /dev/loop0
brw-r----- 1 root disk 7, 0 Aug 26 14:32 /dev/loop0
如果我尝试将循环设备绑定到文件,则会发生错误:
root:~# losetup /dev/loop0 /root/virtual.ext4
/dev/loop0: Operation not permitted
我尝试将权限设置为o777
,但是并不能解决问题。
什么原因可能导致该问题?我该如何解决?
答案1
您处理此事的顺序有点错误。
尝试这个:
首先创建循环设备:
sudo losetup /dev/loop0 /root/virtual.ext4
其次,为设备创建挂载点,<newdir>
用适当的目录名替换
sudo mkdir /mnt/<newdir>
第三,安装该设备。如果要将其用作 RW 设备,则需要使用适当的选项。
sudo mount /dev/loop0 /mnt/<newdir>
按照相反的顺序移除设备:
sudo umount /mnt/<newdir>
sudo rm -r /mnt/<newdir>
sudo losetup -d /dev/loop0
几乎逐字逐句地抄袭自http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/
答案2
我弄清楚了问题所在,我的 VPS 提供商编译的内核没有模块支持,所以我根本无法使用循环设备,而且似乎没有办法改变这种情况。
答案3
例子:
sudo mount -t ext4 -o loop /media/USER/DISK/linux.img /media/USER/YourDIR
或者
sudo mount -t ext4 -o loop /YourLinux.img /YourUserCreatedDIRectory
答案4
以 root 身份运行以下命令:
创建循环设备
losetup -fP /root/virtual.ext4
找到循环设备(例如
/dev/loop3
)losetup -a | grep /root/virtual.ext4
创建目录并挂载回送文件系统
mkdir -p /mnt/virtual mount -o loop /dev/loop3 /mnt/virtual
检查尺寸
df -h /mnt/virtual
分离环回文件系统并删除目录
umount /mnt/virtual rm -r /mnt/virtual
删除循环设备
losetup -d /dev/loop3