我已经做好了这些程序挂载我的 .img 文件/etc/fstab
(适用于 ubuntu mate 20.04 x64)
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
解决方法:
- 手动
.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
注意:此方法不是永久的
- bash脚本:
#!/bin/bash
mount -o loop /home/user/filename.img /home/user/disk
# sudo crontab -e
@reboot ./mount-img.sh
另一个 bash 来安装/卸载.img
这里(可以在crontab中编程随系统启动)
- 和
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)
关于挂载:
安装.img
时fstab
出现重复的(一个已安装,另一个未安装)。.img
手动安装或/dev/loopXX
安装时不会发生这种情况fstab
更新新:
这似乎是 Ubuntu Mate 20.04.3 中的一个错误。在 Ubuntu 20.04.3 版本中不存在此问题。
测试文件管理器:
影响:
- 卡哈
- 尼莫
- 图纳尔
不影响:
- 海豚
- 鹦鹉螺
答案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 上对一个问题的回答。