學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux系統(tǒng)自動掛載u盤的命令詳解

Linux系統(tǒng)自動掛載u盤的命令詳解

時間: 佳洲1085 分享

Linux系統(tǒng)自動掛載u盤的命令詳解

  有時候服務器可能沒有必要的鍵盤等設備,此時就需要用到自動掛載命令了。下面由學習啦小編為大家整理了Linux系統(tǒng)自動掛載U盤的命令詳解,希望對大家有幫助!

  Linux系統(tǒng)自動掛載u盤的命令詳解

  格式:mount [-參數(shù)] [設備名稱] [掛載點]

  其中常用的參數(shù)有:

  -a 安裝在/etc/fstab文件中類出的所有文件系統(tǒng)。

  -f 偽裝mount,作出檢查設備和目錄的樣子,但并不真正掛載文件系統(tǒng)。

  -n 不把安裝記錄在/etc/mtab 文件中。

  -r 講文件系統(tǒng)安裝為只讀。

  -v 詳細顯示安裝信息。

  -w 將文件系統(tǒng)安裝為可寫,為命令默認情況。

  -t <文件系統(tǒng)類型> 指定設備的文件系統(tǒng)類型,常見的有:

  ext2 是linux目前常用的文件系統(tǒng)

  msdos MS-DOS的fat,就是fat16

  vfat windows98常用的fat32

  nfs 網(wǎng)絡文件系統(tǒng)

  iso9660 CD-ROM光盤標準文件系統(tǒng)

  ntfs windows NT/2000/XP的文件系統(tǒng)

  auto 自動檢測文件系統(tǒng)

  -o <選項> 指定掛載文件系統(tǒng)時的選項,有些也可寫到在 /etc/fstab 中。常用的有:

  defaults 使用所有選項的默認值(auto、nouser、rw、suid)

  auto/noauto 允許/不允許以 –a選項進行安裝

  dev/nodev 對/不對文件系統(tǒng)上的特殊設備進行解釋

  exec/noexec 允許/不允許執(zhí)行二進制代碼

  suid/nosuid 確認/不確認suid和sgid位

  user/nouser 允許/不允許一般用戶掛載

  codepage=XXX 代碼頁

  iocharset=XXX 字符集

  ro 以只讀方式掛載

  rw 以讀寫方式掛載

  remount 重新安裝已經(jīng)安裝了的文件系統(tǒng)

  loop 掛載“回旋設備”以及“ISO鏡像文件”

  需要注意的是,掛載點必須是一個已經(jīng)存在的目錄,這個目錄可以不為空,但掛載后這個目錄下以前的內(nèi)容將不可用,umount以后會恢復正常。使用多個-o 參數(shù)的時候,-o 只用一次,參數(shù)之間用半角逗號隔開:

  # mount –o remount,rw /

  Linux系統(tǒng)自動掛載u盤的方法步驟

  規(guī)則編寫

  編寫udev規(guī)則實現(xiàn)U盤插入時候的動作。規(guī)則文件寫在/etc/udev/rules.d 下。

  如上, 通過規(guī)則定義U盤插入與拔出的動作即可,動作的具體實現(xiàn)可以在規(guī)則中編寫,也可以通過指定執(zhí)行腳本來實現(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ī)則,應該分別實現(xiàn)插入的動作腳本和拔出的動作腳本。

  插入動作腳本

  主要在于需要獲取到設備的卷標,來確定掛載的路徑(即$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盤拔出時候,及時刪掉掛載的路徑

  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í)行動作腳本

  這樣,當U盤插入時,/media/ 下就會出現(xiàn)于卷標相同的文件夾,并掛載上了U盤。因此,需要實現(xiàn)U盤插入自動執(zhí)行的話,通過輪詢探測/media/ 下相應目錄是否存在即可。

  如:

  UDISK= class="main">

學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > Linux系統(tǒng)自動掛載u盤的命令詳解

Linux系統(tǒng)自動掛載u盤的命令詳解

時間: 佳洲1085 分享

  # ---------------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

  補充:需要注意的問題

  新版本的udev可能會遇到mount失效的問題,通過查詢資料可知,udev的rules運行于獨立的文件空間上,與用戶的文件空間不同,因此及時掛載上了,用戶也無法訪問。因此需要將udev的運行方式改為共享。

  修改方式如下:

  拷貝一份 /usr/lib/systemd/system/systemd-udevd.service 到 /etc/systemd/system/ (推薦)

  編輯/etc/systemd/system/ 將 MountFlags 改為 shared

  重啟即可。

3644612