快轉到主要內容

要用/mnt還是/media?Linux自動掛載硬碟建議的路徑

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux使用技巧
標籤   Systemd KDE Plasma GNOME Freedesktop Specifications
目錄

在Linux掛載儲存裝置的時候,你應該要用/mnt還是/media還是/run/media路徑?

讓我們試圖回答這個問題。

並討論Linux系統常見的自動掛載硬碟手段。其實你不一定要手寫/etc/fstab!?在有安裝圖形介面的情況下,可以透過桌面環境的圖形界面設定自動掛載硬碟。

這張圖片使用ComfyUI + FLUX.1生成

1. 如何列出Linux所有的儲存裝置
#

對於Linux來說,所有的儲存裝置都是一個檔案。插入電腦之後,會統一出現在/dev/之下,例如/dev/sda/dev/sdb/dev/sdc。如果硬碟沒有檔案系統,使用者需要先將其格式化,建立檔案系統(例如EXT4、FAT32、BTRFS、NTFS),再用mount指令,將/dev/sdX裝置掛載到掛載點,才能存取裡面的資料。掛載點可能是由使用者自行建立的一個目錄,或者是系統服務自動幫你建立。

因此,在掛載硬碟的時候,要先確認的就是/dev/的儲存裝置代號,再來規劃硬碟的掛載點。

指令工具:fdisk、lsblk、parted,例如fdisk -l指令。這些工具也可以用來格式化硬碟。

圖形介面:Gparted、GNOME Disk、KDE Partition Manager。這些工具也可以用來格式化硬碟。

2. 硬碟掛載點的路徑標準
#

事實上Linux的掛載系統很寬鬆,只要權限夠,你想挑哪個目錄當掛載點都行。譬如你可以將另一個硬碟/dev/sdb掛載到目前系統的/home,實現系統橫跨兩個硬碟儲存的操作。

不過萬事都要有個標準來遵循吧。

常見的掛載路徑選擇有/mnt/media/run/media,他們有什麼差呢?

/mnt
#

依照Linux基金會的檔案系統階層標準 FHS 3.0建議,/mnt應該是臨時掛載檔案用的,只給系統管理員操作,比如mount一個chroot檔案系統或者ISO,短時間存取裡面的資料然後移除。

不過,對於個人電腦來說,由於通常只有一個使用者,因此限定系統管理員才能用的說法並不適用。所以其實沒有規定說/mnt不能掛載硬碟。將硬碟掛載在這個路徑也能在用cd指令的時候少打幾個字吧。但我覺得還是遵循FHS建議的標準較佳。

/media與/run/media
#

依照Linux基金會的檔案系統階層標準 FHS 3.0建議,/media是給一般使用者使用的,用於掛載可卸除的儲存媒介(不論他們是暫時性掛載或者是開機自動掛載),例如硬碟、光碟、USB隨身碟、SMB共享目錄等等。

部份桌面環境的服務會自動偵測使用者插入的卸除式儲存裝置,然後自動建立掛載點。比如GNOME的udisks。

那麼為什麼會有/media/run/media的差異呢?有些發行版採用後者的理由是因為/run這個路徑在每次重開機後都會清空,所以能夠保持系統整潔。每次重開機交由系統服務動態建立掛載點。反之如果是/media的話,掛載點的目錄一旦建立就會一直存在,不論硬碟有無成功掛載,總是會有一個空目錄在那邊,長此以往將造成大量垃圾。

不過這兩個目錄的差異不大,端看發行版與桌面環境怎麼操作而已。

Ubuntu與Debian比較習慣使用/media/

Fedora與openSUSE則是會選取/run/media/

這個掛載路徑的選擇,反映在它們的套件編譯選項裡面,所以要套用另一個發行版的規則,可能得手動編輯路徑。

3. 使用圖形界面設定硬碟掛載規則
#

講到掛載硬碟多半會想要手動編輯/etc/fstab吧,但是在有安裝圖形介面的情況下,可以透過桌面環境的工具設定自動掛載硬碟的規則。它會根據使用者的儲存裝置情況,建議合適的掛載點並完成操作,最後將變更寫入到/etc/fstab

GNOME
#

  1. GNOME 48是使用udisks和gvfs服務,應該已經隨GNOME桌面環境一同安裝。用以下指令確認服務狀態:
systemctl --user status udisks2
  1. 開啟磁碟 (GNOME Disk Utility) 程式

  2. 選取要掛載的硬碟。如果已經掛載,先按下暫停鍵取消掛載。

  3. 點選編輯掛載選項

  4. 取消勾選使用者工作階段預設值。

  5. 設定掛載規則。首先,設定識別為UUID,讓它以UUID為依據下去掛載硬碟,這樣可以防止因為換硬碟導致/dev/sda變化而無法掛載。然後掛載點的部份可以任意取名,建議設定為/media/<使用者名稱>/<你喜歡的硬碟代號>,不然的話自動依照UUID建立的掛載點一長串很醜。檔案系統設定為auto讓它自動判斷。

  6. 點選播放鍵掛載硬碟。

  7. 掛載的硬碟會出現在檔案管理器的選單。

註解:udisks有時候會無視/etc/fstab設定,自行掛載儲存裝置。這得透過udisksctl指令調整。

KDE Plasma
#

KDE Plasma 6需要使用者指定自動掛載的規則。

  1. 開啟KDE磁碟分割區管理員 (KDE Partition Manager)

  2. 選取要掛載的硬碟。如果已經掛載,先按下右鍵取消掛載。

  3. 按右鍵,編輯掛載點

  4. 識別方式選取UUID,讓它以UUID為依據下去掛載硬碟,這樣可以防止因為換硬碟導致/dev/sda變化而無法掛載。路徑就是掛載點,建議設定為/media/<使用者名稱>/<你喜歡的硬碟代號>

  5. 儲存變更。掛載硬碟。

  6. 掛載的硬碟會出現在檔案管理器的選單。

4. 手寫/etc/fstab設定硬碟掛載規則
#

編輯/etc/fstab,用於定義開機後的掛載規則。這是最傳統的做法,任何Linux發行版都適用。未來可能會流行systemd-mount,藉由編輯多個服務檔來定義個別硬碟的掛載規則。不過在那之前用單一檔案定義全部規則的/etc/fstab仍是最穩健的選擇。/etc/fstab裡面所寫的規則,一定會在開機後自動掛載。

  1. /etc/fstab會要求你指定掛載點,那麼就以硬碟來說,建議的掛載點規則是這樣:
檔案系統UUID=""   掛載點  檔案系統類型  參數

關於最前面的檔案系統,傳統的作法是用/dev/sdX,但考慮到硬碟有可能會抽換,導致/dev/sda指向的不見得是原本的硬碟。比較好的方法是透過UUID來認硬碟,確保每次掛載的都是指向正確的硬碟。

  1. blkid指令列出所有硬碟分區的UUID。

  2. 接著是掛載點的部份。選取/media//run/media。在你使用/etc/fstab的時候,/run不會因為重開機清空而影響掛載。

路徑格式:/media/<使用者名稱>/<你喜歡的硬碟代號>。如果你不知道怎麼取名,我會建議取名叫做HDD1,或者以硬碟的型號下去命名,例如ST8000DX001,再不濟就用UUID當掛載點名稱。

  1. 最後面的檔案系統類型與參數通常維持預設就好。

  2. 舉例來說,用sudo lsblk指令得出要掛載的硬碟路徑如下,它有一個EXT4的檔案系統:

/dev/sdb2: UUID="26c57dd3-de9f-4409-b385-cf218501a739" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="bf86f923-91f5-4c54-b8e4-33ecc6dfeb33"
  1. 然後我們預計要掛載到/media/user/HDD1,並允許所有使用者都能讀取與寫入。所以手動建立該掛載點,然後修改權限
sudo mkdir -p /media/user/HDD1

sudo chmod 777 /media/user/HDD1
  1. 編輯/etc/fstab
sudo vim /etc/fstb
  1. 填入以下掛載規則
UUID=26c57dd3-de9f-4409-b385-cf218501a739  /media/user/HDD1  ext4  defaults  0  0
  1. 重開機,使用lsblk指令查看硬碟是否有自動掛載。
# 範例輸出
sdb                         8:00   0   7.6T  0 disk 
└─sdb1                      8:00   0   7.6T  0 part /media/user/HDD1

相關文章

蝦密?Linux系統竟然有開關機音效
分類   Linux系統 Linux使用技巧
標籤   GNOME KDE Plasma Freedesktop Specifications
Linux如何設定開機自動執行應用程式,XDG Autostart與Systemd Service用法
分類   Linux系統 Linux使用技巧
標籤   Freedesktop Specifications GNOME KDE Plasma Systemd
什麼是.desktop檔案?Linux桌面Desktop Entry用途解說
分類   Linux系統 Linux使用技巧
標籤   Freedesktop Specifications GNOME KDE Plasma

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。