Fedora

如何掛載多個分區

  • September 26, 2018

有沒有辦法在 Linux 中使用單個命令掛載磁碟的多個分區,甚至所有分區?是否有mount命令接受的選項可以促進這一點?我正在執行 Fedora 18;如果我嘗試mount /dev/sda* /media/sda*操作失敗。

或者,你能推荐一個我可以放在一起供我未來使用的腳本嗎?

我遇到了一些可能有用的文章,其中提到了編寫 udev 規則;不過,我不確定這是否有用,因為(據我所知)我的主 HDD 上的分區已經設置好了 - 通過查看我的可訪問驅動器/分區的側邊欄列表可以明顯看出文件管理器。

為了澄清,我只是試圖做一些類似’/dev/{sda1,sda2,…}‘的事情,其中​​每個都將被安裝到他們自己的同名目錄中。

首先,一個分區可以掛載到多個位置。

為了您自己的目的,我懷疑 mount 本身是否支持。但你絕對可以使用自己的腳本,

#!/bin/bash

for x in $*; do
   echo mount "$x" "/media/${x##*/}"
done

並啟動它(echo在執行它之前刪除)

./XX.sh /dev/sda* /dev/sdb*

PS:您應該考慮udisks將分區掛載到/media/label_of_drive

mount命令一次只會映射一個設備,因此無論您選擇哪種方法,都必須為每個分區呼叫 mount。

/proc/partitions將為您提供檢測到的列表:

# cat /proc/partitions
major minor  #blocks  name

  8        0 1465138584 sda
  8        1 1465134488 sda1
  8       32 1465138584 sdc
  8       33 1465134488 sdc1
  8       16 1465138584 sdb
  8       17 1465134488 sdb1
  8       48 1465138584 sdd
  8       49 1465134488 sdd1
  8       64  156290904 sde
  8       65      96358 sde1
  8       66    4000185 sde2
  8       67          1 sde3
  8       69    2000061 sde5
  8       70   14996646 sde6
  8       71  135197527 sde7

這是fdisk -l獲取資訊的地方。您可以使用它來執行以下操作:

awk '$4 ~ /^sda[0-9]+/{print $4}' /proc/partitions | while read dev; do
   if findmnt /dev/$dev >/dev/null; then
       echo "/dev/$dev is already mounted.  Skipping."
       continue
   elif findmnt /media/$dev >/dev/null; then
       echo "/media/$dev is already a mount point.  Skipping /dev/$dev."
       continue
   fi
   mount /dev/$dev /media/$dev
done

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