
在Ubuntu中,即使不同的區塊裝置(例如外部硬碟和快閃磁碟機)依序由同一個裝置檔案(例如/dev/sdb1
)表示,它們也會自動掛載到不同的掛載點(例如/media/b/mydrive
和/media/b/myflashdrive
)。這是如何實現的? Ubuntu 如何知道每個裝置的「名稱」並使用該「名稱」來命名其安裝點? (/etc/fstab
不包括這些插件設備。)
我怎麼能模擬呢?手動安裝塊設備時,我運行
sudo mkdir /media/b/mountingpoint1
sudo mount -t ntfs /dev/sdb1 /media/b/mountingpoint1
sudo umount /media/b/mountingpoint1
sudo rmdir /media/b/mountingpoint1
如果我分離設備然後附加不同的區塊設備,新設備將再次由相同的設備檔案表示/dev/sdb1
,並且上面的命令會將其安裝到相同的安裝點/media/b/mountingpoint1
。我需要一種方法來為不同設備以不同方式命名安裝點。
答案1
由相同的裝置檔案表示(例如/dev/sdb1)
訣竅是他們是不是由相同的設備文件表示:除了包含由內核管理的字母和數字的主設備文件之外,您還具有符號鏈接,/dev/disk/by-*
例如,其中包含文件系統的捲名、硬碟的供應商和型號,或設備路徑。
您應該在 inside 中使用這些符號鏈接/etc/fstab
,而不是/dev/sdb1
等待。
答案2
(例如
/media/b/mydrive
和/media/b/myflashdrive
)。這是如何實現的? Ubuntu 如何知道每個裝置的「名稱」並使用該「名稱」來命名其安裝點? (/etc/fstab
不包括這些插件設備。)
可移動裝置的安裝是由 UDisk 完成的,它還為它們建立安裝點,該安裝點始終(在 Ubuntu 上)格式為/media/<user>/<unique_id>
。最後一部分是檔案系統標籤,如果檔案系統沒有標籤,則最後部分是 UUID。可移動磁碟和磁碟機通常已預先格式化,並且分割區由供應商標記(例如,我的金士頓快閃磁碟機的 VFAT 分割區標記為KINGSTON
)。
您可以使用 取得設備的標籤(和 UUID)lsblk -f
。
如果您想手動安裝設備(不是透過 GUI)並達到相同的效果,您可以使用udisksctl mount -b /dev/sdb1
.
如果您(將來)用於fstab
自動掛載,則應始終使用 UUID ( UUID=
) 而不是/dev/sdb1
.