Shell-Script

如何在不編輯 fstab 的情況下在 Ubuntu 20.04 LTS 上自動掛載多個磁碟?

  • June 6, 2021

我有數百個磁碟需要插入幾個 Ubuntu 桌面。目前,磁碟不會自動掛載在下/media/user/(但可以在下找到/dev/sd*)。但是,通過 GUI,我可以使用文件資源管理Other locations器來顯示所有插入的磁碟。如果我點擊一個,它將被安裝並且可以在/media/user/Disk-UUID. 問題是,需要點擊的磁碟很多,重啟後一切恢復原狀。

那麼,如何編寫一個腳本來模仿點擊磁碟的行為來自動掛載所有已插入的磁碟呢?

上網查了一下方法,好像大部分人都在說編輯/etc/fstab。但是,我不想這樣做,因為我將這些磁碟視為臨時插入,不想命名它們,也不想對系統進行永久性更改。此外,在掛載磁碟後,我在 file 中看不到任何條目/etc/fstab,因此 Ubuntu 本身正在通過其他方式進行操作。我怎樣才能達到同樣的效果?

根據@fra-san 的建議,我發現對於像這樣的磁碟/dev/sdnudisksctl 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.

數百個磁碟?

然而:

但可以在 /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 ...

引用自:https://unix.stackexchange.com/questions/652865