使用 losetup 进行分离

使用 losetup 进行分离

我有很多分区,loop它们可能是由一个名为 snap 应用程序创建的Anbox,我不太关心lopp0,但nautilus 中出现了loop4名为的分区loop5,该分区安装在/media/sumeet/disk

Nautilus 屏幕截图 326mb 容量循环分区是问题

当我打开该分区时,我发现我没有权限打开其中的大多数文件夹。


输出lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0 341.2M  0 loop /snap/anbox/16
loop1    7:1    0     4K  0 loop /snap/anbox-installer/11
loop2    7:2    0     4K  0 loop /snap/anbox-installer/12
loop3    7:3    0  78.4M  0 loop /snap/core/1577
loop4    7:4    0  79.5M  0 loop /snap/core/1689
loop5    7:5    0 310.8M  1 loop /media/sumeet/disk
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   7.6G  0 part [SWAP]
├─sda2   8:2    0     1K  0 part 
├─sda5   8:5    0  19.1G  0 part /
└─sda6   8:6    0  85.1G  0 part /home
sdb      8:16   0   1.8T  0 disk 
├─sdb1   8:17   0   220G  0 part /media/sumeet/Stuff
├─sdb2   8:18   0   220G  0 part /media/sumeet/Movies
├─sdb3   8:19   0   710G  0 part /media/sumeet/Hollywood
└─sdb4   8:20   0   713G  0 part /media/sumeet/Series

输出ls /media/sumeet/disk

acct           etc                   init.zygote32.rc     selinux_version
anbox-init.sh  file_contexts.bin     init.zygote64_32.rc  sepolicy
cache          fstab.goldfish        mnt                  service_contexts
charger        init                  oem                  storage
config         init.environ.rc       proc                 sys
d              init.goldfish.rc      property_contexts    system
data           init.rc               sbin                 ueventd.goldfish.rc
default.prop   init.usb.configfs.rc  sdcard               ueventd.rc
dev            init.usb.rc           seapp_contexts       vendor

我怎样才能loop5在 Nautilus 中不被看到?

答案1

最简单的方法是使用 GUI

  • 磁盘应用程序(通过 Unity Dash 或带有gnome-disks命令的终端)
  • 选择你的分割(那将是loop5
  • 点击小齿轮图标齿轮图标
  • 选择编辑挂载选项
  • 切换 在用户界面中显示离开

它将停止在 Nautilus 中显示分区,但不会对 Anbox 产生任何影响

答案2

我正在使用 Ubuntu 16.04.3 LTS,

这是一次全新安装,所有更新均已完成,但由于某种原因,上述解决方案不起作用。

切换在用户界面中显示在磁盘应用程序中关闭不起作用,nautilus 仍然显示分区mount -a,甚至重新启动后也是如此。

我通过添加修复了它x-gvfs-隐藏/etc/fstab, 像这样

UUID=123-some-number-s /home/user/special ext4 defaults,x-gvfs-hide 0 0

此后,分区已正确安装但在 Nautilus 中被隐藏。

如果有更好的解决方案,请告诉我。

答案3

使用 losetup 进行分离

我的情况是:

现象

  • snapd 的 loopN 文件残留在nautilus左侧面板中
    // 可能是意外

  • disks还显示那些 loopN 设备,并且它们被标记auto clean
    // 它们可能自动清洁失败

丢失检查

$ losetup -l -a | grep del
/dev/loop8   0  0  1  1 /var/lib/snapd/snaps/core20_1242.snap (deleted)  0   512
/dev/loop25  0  0  1  1 /var/lib/snapd/snaps/snapd_14066.snap (deleted)  0   512
/dev/loop4   0  0  1  1 /var/lib/snapd/snaps/snapd_14549.snap (deleted)  0   512

断开分离

似乎它们是未使用的循环设备,并且备份文件已被删除。

尝试

losetup -v -d /dev/loop4

手动将其分离。//
lazy device destruction可能不会立即被破坏。

做一个reboot,它们就消失了。
// 如果是快照循环,则直接重新启动而无需这些步骤,它也会消失..

一行命令

for i in $(losetup --list --all | awk '/.snap \(deleted\)/ {print $1}'); do sudo losetup --verbose --detach "$i"; done

答案4

注意:几天后我发现 yurenchen 的答案是有效的,你不需要重新启动,一些已删除的图像将被释放,并且不会再显示。因此,请根据你的需要混合搭配答案。

隐藏弹簧扣装置

/etc/fstab您可以通过 Gnomes Disks 应用以同样的方式隐藏 Snapd 的循环设备。由于它们不是通过 UUID 识别的,如果您希望显示的设备没有显示,您有时需要手动编辑和清理条目。

  • 转到磁盘应用程序(通过 Dash 或带有 gnome-disks 命令的终端)
  • 选择你的分区(即 loop5)
  • 点击小齿轮图标 齿轮图标
  • 选择编辑安装选项
  • 将用户界面中的显示切换为关闭,并另外添加x-gvfs-hide到安装选项。

这将在中创建以下条目/etc/fstab

/dev/loop5 /mnt/loop5 auto nosuid,nodev,nofail,x-gvfs-hide 0 0

如果你还有更多,你可能需要使用终端。我这样做了:

$ losetup --list --all | awk '/.snap \(deleted\)/ {print $1}' | sort
/dev/loop12
/dev/loop17
/dev/loop2
/dev/loop22
/dev/loop23
/dev/loop28

然后我用 vim 将以下条目添加到我的文件中fstab,但您可以使用 nano:

# Snap
/dev/loop12 /mnt/loop12 auto nosuid,nodev,nofail,x-gvfs-hide 0 0
/dev/loop17 /mnt/loop17 auto nosuid,nodev,nofail,x-gvfs-hide 0 0
/dev/loop2 /mnt/loop2 auto nosuid,nodev,nofail,x-gvfs-hide 0 0
/dev/loop22 /mnt/loop22 auto nosuid,nodev,nofail,x-gvfs-hide 0 0
/dev/loop23 /mnt/loop23 auto nosuid,nodev,nofail,x-gvfs-hide 0 0
/dev/loop28 /mnt/loop28 auto nosuid,nodev,nofail,x-gvfs-hide 0 0

正如我所说,这可能会在将来产生一些副作用。因此请始终牢记这一点并记录您对配置文件所做的更改!

笔记

我倾向于比其他人运行某些机器更长时间并发现更多意外行为。

Snap 与 Ubuntu 紧密集成,因此我不同意删除它的想法,但为了进行一些故障排除,我不得不这样做,并且 APT 报告说,Snap 上仍然有一个锁定/var/snap

我使用这个命令检查了:

lsof 2>&1 | grep /var/snap | grep -v 'lsof: no pwd entry for UID'

然后我检查了进程(哇,没想到这么麻烦,不过这也解释了为什么有些应用程序运行起来很慢),然后决定终止进程。然后我在 /etc/fstab 中更新/添加了条目。

由于您最终参与了删除 Snap 的操作,并且忘记了删除了哪些软件包,因此您应该能够在这些文件中找到详细信息:

less +G /var/log/apt/history.log
less +G /var/log/apt/term.log

q关闭 的调用less。如果是几天前,您也必须查看附加了附加编号的文件。在某个时候,这些日志会被轮换,信息会丢失。

好的,我想我已经把我想告诉你的事情都写下来了。

参考文献和链接

https://superuser.com/a/1330590/252532

相关内容