为 ext4 文件系统创建循环设备

为 ext4 文件系统创建循环设备

我创建了一个文件并将其格式化为 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 身份运行以下命令:

  1. 创建循环设备

    losetup -fP /root/virtual.ext4
    
  2. 找到循环设备(例如/dev/loop3

    losetup -a | grep /root/virtual.ext4
    
  3. 创建目录并挂载回送文件系统

    mkdir -p /mnt/virtual
    mount -o loop /dev/loop3 /mnt/virtual
    
  4. 检查尺寸

    df -h /mnt/virtual
    
  5. 分离环回文件系统并删除目录

    umount /mnt/virtual
    rm -r /mnt/virtual
    
  6. 删除循环设备

    losetup -d /dev/loop3
    

相关内容