Linux系統(tǒng)自動掛載u盤方法步驟介紹
自動掛載命令可以幫我們臨時(shí)解決一些問題,如服務(wù)器沒有輸出設(shè)備,工具等,那么自動掛載命令具體怎么用呢。下面由學(xué)習(xí)啦小編為大家整理了Linux系統(tǒng)自動掛載U盤的命令詳解,希望對大家有幫助!
Linux系統(tǒng)自動掛載u盤的命令詳解
格式:mount [-參數(shù)] [設(shè)備名稱] [掛載點(diǎn)]
其中常用的參數(shù)有:
-a 安裝在/etc/fstab文件中類出的所有文件系統(tǒng)。
-f 偽裝mount,作出檢查設(shè)備和目錄的樣子,但并不真正掛載文件系統(tǒng)。
-n 不把安裝記錄在/etc/mtab 文件中。
-r 講文件系統(tǒng)安裝為只讀。
-v 詳細(xì)顯示安裝信息。
-w 將文件系統(tǒng)安裝為可寫,為命令默認(rèn)情況。
-t <文件系統(tǒng)類型> 指定設(shè)備的文件系統(tǒng)類型,常見的有:
ext2 是linux目前常用的文件系統(tǒng)
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網(wǎng)絡(luò)文件系統(tǒng)
iso9660 CD-ROM光盤標(biāo)準(zhǔn)文件系統(tǒng)
ntfs windows NT/2000/XP的文件系統(tǒng)
auto 自動檢測文件系統(tǒng)
-o <選項(xiàng)> 指定掛載文件系統(tǒng)時(shí)的選項(xiàng),有些也可寫到在 /etc/fstab 中。常用的有:
defaults 使用所有選項(xiàng)的默認(rèn)值(auto、nouser、rw、suid)
auto/noauto 允許/不允許以 –a選項(xiàng)進(jìn)行安裝
dev/nodev 對/不對文件系統(tǒng)上的特殊設(shè)備進(jìn)行解釋
exec/noexec 允許/不允許執(zhí)行二進(jìn)制代碼
suid/nosuid 確認(rèn)/不確認(rèn)suid和sgid位
user/nouser 允許/不允許一般用戶掛載
codepage=XXX 代碼頁
iocharset=XXX 字符集
ro 以只讀方式掛載
rw 以讀寫方式掛載
remount 重新安裝已經(jīng)安裝了的文件系統(tǒng)
loop 掛載“回旋設(shè)備”以及“ISO鏡像文件”
需要注意的是,掛載點(diǎn)必須是一個已經(jīng)存在的目錄,這個目錄可以不為空,但掛載后這個目錄下以前的內(nèi)容將不可用,umount以后會恢復(fù)正常。使用多個-o 參數(shù)的時(shí)候,-o 只用一次,參數(shù)之間用半角逗號隔開:
# mount –o remount,rw /
Linux系統(tǒng)自動掛載u盤的方法步驟
規(guī)則編寫
編寫udev規(guī)則實(shí)現(xiàn)U盤插入時(shí)候的動作。規(guī)則文件寫在/etc/udev/rules.d 下。
如上, 通過規(guī)則定義U盤插入與拔出的動作即可,動作的具體實(shí)現(xiàn)可以在規(guī)則中編寫,也可以通過指定執(zhí)行腳本來實(shí)現(xiàn)。本文的規(guī)則中僅指定執(zhí)行腳本。
規(guī)則如下:
ENV{DEVTYPE}="partition",RUN+="/lib/udev/automount.sh",ENV{REMOVE_CMD}="/lib/udev/autounmount.sh"11
腳本編寫
將腳本文件寫在/lib/udev 下,根據(jù)上文規(guī)則,應(yīng)該分別實(shí)現(xiàn)插入的動作腳本和拔出的動作腳本。
插入動作腳本
主要在于需要獲取到設(shè)備的卷標(biāo),來確定掛載的路徑(即$ID_FS_LABEL)
#!/bin/sh
mount_point=$ID_FS_LABEL
if [ -z $mount_point ];then
mount_point=${DEVNAME##*/}
fi
if [ -n $mount_point ];then
mkdir -p /media/$mount_point
mount -t $ID_FS_TYPE -o gid=100,dmask=000,fmask=111,utf8,flush,rw,noatime,users $DEVNAME /media/$mount_point
fi
1234567891012345678910
拔出動作腳本
在U盤拔出時(shí)候,及時(shí)刪掉掛載的路徑
mount_point=$ID_FS_LABEL
if [ -z $mount_point ];then
mount_point=${DEVNAME##*/}
fi
if [ -n $mount_point ];then
umount -l /media/$mount_point
rm -r /media/$mount_point
fi1234567812345678
自動執(zhí)行動作腳本
這樣,當(dāng)U盤插入時(shí),/media/ 下就會出現(xiàn)于卷標(biāo)相同的文件夾,并掛載上了U盤。因此,需要實(shí)現(xiàn)U盤插入自動執(zhí)行的話,通過輪詢探測/media/ 下相應(yīng)目錄是否存在即可。
如:
UDISK=$1
# ---------------main control area ---------------
while (true)
do
# probe mounted disk
if [ -e "$UDISK" ];then
echo "Mounted device [$UDISK] found !"
else
echo "Device not found [$UDISK] !"
fi
echo "Sleep for sometime..."
sleep 3s
done
1234567891011121314151612345678910111213141516
補(bǔ)充:需要注意的問題
新版本的udev可能會遇到mount失效的問題,通過查詢資料可知,udev的rules運(yùn)行于獨(dú)立的文件空間上,與用戶的文件空間不同,因此及時(shí)掛載上了,用戶也無法訪問。因此需要將udev的運(yùn)行方式改為共享。
修改方式如下:
拷貝一份 /usr/lib/systemd/system/systemd-udevd.service 到 /etc/systemd/system/ (推薦)
編輯/etc/systemd/system/ 將 MountFlags 改為 shared
重啟即可。