我有数百个磁盘需要插入到多个 Ubuntu 桌面上。目前,磁盘不会自动安装在下面/media/user/
(但可以在下面找到/dev/sd*
)。但是,通过 GUI,我可以使用文件资源管理器Other locations
来显示所有插入的磁盘。如果我单击其中一个,它将被安装并可以在 找到/media/user/Disk-UUID
。问题是,有很多磁盘需要点击,重启后一切都恢复到原来的状态。
那么,如何编写一个脚本来模仿点击磁盘的行为来自动挂载所有已插入的磁盘呢?
网上查方法,好像大部分人都在说编辑/etc/fstab
。但是,我不想这样做,因为我将这些磁盘视为临时插入的,不想给它们命名,也不想对系统进行永久更改。此外,在挂载磁盘后,我在 file 中没有看到任何条目/etc/fstab
,因此 Ubuntu 本身正在通过其他方式执行此操作。我怎样才能达到同样的效果?
答案1
数百磁盘数量?
然而:
但可以在 /dev/sd* 下找到
很好。所以你可以检查那些
for disk in /dev/sd*
并检查它们是否已安装
if (mount | grep "$disk" ); then
echo already mounted
else
检索他们的 UUID
UUID=$( blkid "$disk" )
可能会验证它们是正确的文件系统,然后将它们安装到/mnt/user/$UUID
您希望的位置
mount -t ext4 ...
答案2
根据@fra-san的建议,我发现对于诸如 之类的磁盘/dev/sdn
,udisksctl mount --block-device /dev/sdn
是实现目标的简单方法。但是,默认情况下,这将需要身份验证。为了避免这种情况,在 Ubuntu 20.04 LTS 上,需要编辑 file /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
,并将下面的条目org.freedesktop.udisks2.filesystem-mount-system
(请注意还有另一个类似的条目)更改为yes
:
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
然后udisksctl mount --block-device /dev/sdn
将不再需要身份验证并立即将磁盘挂载到/media/user/Disk-UUID
.