通过 fstab 安装 .img 时,它在文件管理器中显示重复(Ubuntu Mate 20.04.3)?

通过 fstab 安装 .img 时,它在文件管理器中显示重复(Ubuntu Mate 20.04.3)?

我已经做好了这些程序挂载我的 .img 文件/etc/fstab(适用于 ubuntu mate 20.04 x64)

创建.img文件:

dd if=/dev/zero of=filename.img bs=1024 count=2M
sudo mkfs.ext4 filename.img

注意:也可以使用 gparted 来完成这个方法

问题:

/etc/fstab/mount/point

/home/user/filename.img /home/user/vdisk ext4 defaults 0 0
# or
/home/user/filename.img /home/user/vdisk ext4 loop 0 0
# or
/home/user/filename.img /home/user/vdisk auto loop 0 0

但始终显示 2 个单位:vdisk(安装)和循环(未安装)(参见图片)

在此输入图像描述

如果我尝试单击显示已卸载的另一个驱动器,我会收到以下消息:

在此输入图像描述

为什么它不只显示安装在 vdisk 文件夹中的 fileimage.img 图像?

我想让你帮我修一下线路,fstab这样安装时就不会出现两个单元.img,而只会出现一个

更新:

如果我运行以下任何命令:

sudo mount -a
# or
sudo mount /home/user/vdisk

我在帖子中描述的内容也出现了。

我的 fstab(出于安全原因我更改了 UUID):

# / was on /dev/sda2 during installation
UUID=9f92d1aa-458d-441a-b349-abcdefghijkl /   ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=F798-ABCD  /boot/efi       vfat    umask=0077      0       1
/swapfile          none            swap    sw              0       0
/home/user/filename.img /home/user/vdisk ext4 defaults 0 0

列表:

sudo losetup --list | grep filename.img
/dev/loop8     0      0    1  0 /home/user/filename.img   0     512

重要的:

但是,如果我删除该/etc/fstab行,手动删除/dev/loop8并安装.img映像(使用以下命令),则不会出现所描述的错误

sudo mount -o loop /home/user/filename.img /home/user/disk
# or
sudo mount -t ext4 -o loop /home/user/filename.img /home/user/disk

解决方法:

  1. 手动

.img手动挂载到/dev/loopXX可用:

losetup -f
/dev/loop8
sudo losetup -P /dev/loop8 filename.img
sudo losetup -l
/dev/loop8         0      0         0  0 /home/user/filename.img                            0     512

编辑/etc/fstab并放置该行:

# /path/to/loop/device       /path/to/mount/point       auto       loop       0 0
# example:
/dev/loop8 /home/user/disk ext4      defaults      0 0

和:

sudo mount -a

注意:此方法不是永久的

  1. bash脚本:
#!/bin/bash
mount -o loop /home/user/filename.img /home/user/disk

# sudo crontab -e
@reboot ./mount-img.sh

另一个 bash 来安装/卸载.img 这里(可以在crontab中编程随系统启动)

  1. bindfs
sudo mkdir /mnt/disk
# edit fstab and add line:
/home/user/filename.img /mnt/disk ext4    defaults  0   0
sudo mount -a
sudo -u user bindfs -n /mnt/disk /home/user/disk

概括:

  • 没有错误
  • 映像已安装(手动和使用 fstab)

关于挂载:

安装.imgfstab出现重复的(一个已安装,另一个未安装)。.img手动安装或/dev/loopXX安装时不会发生这种情况fstab

更新新:

这似乎是 Ubuntu Mate 20.04.3 中的一个错误。在 Ubuntu 20.04.3 版本中不存在此问题。

测试文件管理器:

影响:

  • 卡哈
  • 尼莫
  • 图纳尔

不影响:

  • 海豚
  • 鹦鹉螺

在此输入图像描述

启动板报告

github问题

参考

答案1

通过“/etc/fstab”循环挂载简单映像文件

在 Ubuntu Server 20.04.3 LTS 的测试系统中,我创建了一个与您类似的映像文件,

$ dd if=/dev/zero of=file.img bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 5.90297 s, 178 MB/s
$ sudo mkfs.ext4 file.img
[sudo] password for tester: 
mke2fs 1.45.5 (07-Jan-2020)
Discarding device blocks: done                            
Creating filesystem with 256000 4k blocks and 64000 inodes
Filesystem UUID: bbf0ad05-d48b-4b0c-b7e5-ea4e5959b78b
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

我创建了一个挂载点,

sudo mkdir /mnt/lp0

在末尾添加以下行/etc/fstab

/home/tester/test/file.img  /mnt/lp0  ext4  loop,rw,relatime  0  0

并重新启动。

(我通过编辑该行并运行sudo mount -a直到它起作用来进行了一些测试。)

我确认df重启后它可以工作,

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           382M  1.1M  381M   1% /run
/dev/sda9        32G  4.3G   26G  15% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/loop0      969M  2.5M  900M   1% /mnt/lp0
/dev/sda8       511M  5.3M  506M   2% /boot/efi
tmpfs           382M     0  382M   0% /run/user/1000

具有[几个]分区的通用映像文件的循环挂载

循环挂载“任何”图像文件并不简单。我建议您用于kpartx此目的。它还可以管理具有[多个]分区的图像。您可以找到如何使用的详细kpartx信息这个链接我在 AskUbuntu 上对一个问题的回答。

相关内容