我有數百個磁碟需要插入到多個 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
.