在 Linux Mint 上自動掛載硬碟上的所有分割區

在 Linux Mint 上自動掛載硬碟上的所有分割區

問題
我安裝了 Linux Mint。每次啟動時,我都需要手動安裝電腦上的兩個分割區(New volume DDrive C)。如果我不這樣做,這些驅動器就不會出現在任何地方。我想知道是否有某種方法可以自動化這個過程。

目標
每次開機時自動掛載硬碟上的所有分割區。

眼鏡
Linux Mint 14 與 Windows XP SP3 雙重啟動

答案1

您可以透過最簡單的方法來做到這一點。去:

  • 選單 -> 磁碟(應用程式)
  • 選擇要安裝的捲,然後按一下其選項
  • 選擇“編輯安裝選項”-> 並確保在磁碟機中選擇“啟動時安裝”。

答案2

您可以透過文件來完成此操作/etc/fstab。看看這個關聯。這教學還有很好的細節。

步驟範例

首先,您需要找出硬碟的 UUID。您可以使用該命令blkid來執行此操作。例如:

% sudo blkid
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2"
/dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f"
/dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs"
/dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3" 

在 中新增條目時,上述指令的輸出blkid可用於識別硬碟/etc/fstab

接下來您需要編輯該/etc/fstab文件。該文件中的行組織如下:

UUID={YOUR-UID}    {/path/to/mount/point}               {file-system-type}    defaults,errors=remount-ro 0       1

現在編輯檔案:

% sudo vi /etc/fstab

並添加一個這樣的文件,例如:

UUID=41c22818-fbad-4da6-8196-c816df0b7aa8  /disk2p2      ext3    defaults,errors=remount-ro 0       1

儲存文件,然後使用命令重新處理該文件mount -a

Windows分割區

要掛載 ntfs 分割區,您需要在檔案中執行下列操作/etc/fstab

/dev/sda2   /mnt/excess ntfs-3g    permissions,locale=en_US.utf8    0   2

答案3

如果您有很多分割區需要安裝,也許您需要像我一樣的腳本。


# ! python
# mount all partition by neoedmund
from subprocess import Popen
from subprocess import PIPE

def getCol(col, line):
    p1 = line.find(col)
    if p1<0 : return ""
    p2 = p1 + len(col) + 1
    p3 = line.find('"',p2+1)
    return line[p2+1:p3]

data_stream = Popen(["/bin/lsblk", "-P", "-o", "FSTYPE,UUID,MOUNTPOINT,KNAME"], stdout=PIPE)
data=[]
for line in data_stream.stdout:
    fstype = getCol("FSTYPE", line)
    if fstype=="": continue # no fs
    mountpoint = getCol("MOUNTPOINT", line)
    if mountpoint!="":continue  # already mounted   
    uuid = getCol("UUID", line)
    kname = getCol("KNAME", line)
    data.append((kname, uuid))

print("### mount script ###")
for (kname,uuid) in data:
    print("mkdir /media/%s-%s"%(kname, uuid))
    print("mount /dev/%s /media/%s-%s" %(kname, kname, uuid))

print("### umount script ###")
for (kname,uuid) in data:
    print("umount /dev/%s" %(kname))




它是一個python腳本,依賴“/bin/lsblk”,將輸出保存到兩個shell腳本中以進行掛載和卸載。

答案4

目前 fstab 的備份:

#cp -a /etc/fstab /etc/fstab.bk

處理輸出lsblk-f使用sedawk並將輸出重定向到 fstab:

#lsblk -f|sed 's/\[SWAP]/swap /g'|awk '/(-)/{printf"UUID=%-36s %-23s %-7s defaults 
           0 0\n", $3, ($4==""?mnt"NR:$4), $2}'>/etc/fstab

透過呼叫掛載新的掛載點

#mount -a

相關內容