48.Linux-普通U盤以及多分區U盤自動掛載

来源:https://www.cnblogs.com/lifexy/archive/2018/12/12/10107310.html
-Advertisement-
Play Games

在上章學習33.Linux-實現U盤自動掛載(詳解)後,只是講解了普通U盤掛載,並沒有涉及到多分區U盤,接下來本章來繼續學習 1.多分區U盤和普通U盤區別 1)U盤插上只會創建一個/dev/sda文件,這種一般表示該U盤沒有分區,這個sda文件便代表該U盤總大小,我們只需要掛載/dev/sda即可 ...


在上章學習33.Linux-實現U盤自動掛載(詳解)後,只是講解了普通U盤掛載,並沒有涉及到多分區U盤,接下來本章來繼續學習

 

 

1.多分區U盤和普通U盤區別

  • 1)U盤插上只會創建一個/dev/sda文件,這種一般表示該U盤沒有分區,這個sda文件便代表該U盤總大小,我們只需要掛載/dev/sda即可
  • 2)另一種U盤則會創建/dev/sda以及/dev/sda1文件,這種一般表示該u盤只有一個分區sda1,我們只需要掛載/dev/sda1即可
  • 3)最後一種U盤則是多分區情況,會創建/dev/sda,/dev/sda1,/dev/sda2... .../dev/sdaN等,這種表示該U盤有sda1~sdaN多個分區,我們需要掛載/dev/sda1~sdaN才行

 

2.接下來重新修改/etc/mdev.conf文件

sd[a-z] 0:0 660 * if [ $ACTION = "add" ]; then /etc/hotplug/usb/udisk_insert.sh; else /etc/hotplug/usb/udisk_remove.sh; fi
sd[a-z][1-9]+ 0:0 660 * if [ $ACTION = "add" ]; then /etc/hotplug/usb/udisk_insert1.sh; else /etc/hotplug/usb/udisk_remove.sh; fi

上面表示:

  • 當出現/dev/sda時,則會調用/etc/hotplug/usb/udisk_insert.sh,當移除/dev/sda時,則會調用/etc/hotplug/usb/udisk_remove.sh
  • 當出現/dev/sda1~9時,則會調用/etc/hotplug/usb/udisk_insert1.sh,當移除/dev/sda1~9時,則會調用/etc/hotplug/usb/udisk_remove.sh

 

3.添加/etc/hotplug/usb/udisk_insert.sh文件

#!/bin/sh

MOUNT_POINT=/mnt/usbdisk

if [ ! -f $MDEV ]; then
    if [ ! -d $MOUNT_POINT ]; then   #判斷掛載目錄是否存在
           mkdir -p $MOUNT_POINT    
fi

echo "${MDEV}  usb insert"
sleep 0.5                           #延時500ms,判斷一下是否有sda1,如果沒有,則表示沒有分區

if [!  -e "/dev/sda1"]; then        #如果有/dev/sda1,則屬於多分區U盤,所以不需要再掛載/dev/sda了    
          echo " ${MDEV} don't have to create " > /dev/console
          exit
fi

echo "create usb disk mount point: $MOUNT_POINT." > /dev/console

mount -t vfat,exfat,ntfs    /dev/$MDEV $MOUNT_POINT
   if [ $? -ne 0 ]; then
        echo "mount usb disk ${MDEV} falied!" > /dev/console
   else
        echo "mount usb disk successfully!" > /dev/console
   fi
fi

註意: 由於/dev/sda文件最先創建,所以上面需要延時500ms後,判斷是否有/dev/sda1,來區別是否是多分區

 

4.添加/etc/hotplug/usb/udisk_insert1.sh文件

#!/bin/sh

POINT_SOURCE=/mnt/usbdisk
num=${MDEV#*sda}                         #獲取sda尾碼數字

MOUNT_POINT=${POINT_SOURCE}${num}

if [ ! -f $MDEV ]; then
        if [ ! -d $MOUNT_POINT ]; then
                mkdir -p $MOUNT_POINT
fi

echo "${MDEV}  usb insert1"
echo "create usb disk mount point: $MOUNT_POINT." > /dev/console

mount -t vfat,exfat,ntfs    /dev/$MDEV $MOUNT_POINT
        if [ $? -ne 0 ]; then
                echo "mount usb disk ${MDEV} falied!" > /dev/console

        else
                echo "mount usb disk successfully!" > /dev/console
        fi
fi
    

 

5.添加/etc/hotplug/usb/udisk_remove.sh文件

#!/bin/sh
POINT_SOURCE=/mnt/usbdisk
num=${MDEV#*sda}
MOUNT_POINT=${POINT_SOURCE}${num}

umount $MOUNT_POINT
if [ $? -ne 0 ]; then
    echo "umount usb disk falied!    ${MDEV} " > /dev/console
else
    echo "umount usb disk successfully!" > /dev/console
fi

rm -rf $MOUNT_POINT echo "remove usb disk mount point: $MOUNT_POINT." > /dev/console

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 預設的Ubuntu 18.1桌面版沒有安裝ssh遠程登錄服務: 打開"終端視窗",輸入"sudo apt-get update"-->回車-->"輸入當前登錄用戶的管理員密碼"-->回車,就可以了。 安裝ssh 打開"終端視窗",輸入"sudo apt-get install openssh-ser ...
  • 1、製作redis_low_discovery.sh腳本 mkdir -p /data/service/script/zabbix cd /data/service/script/zabbix cat redis_low_discovery.sh #!/bin/bash#Fucation:mysql ...
  • 1.查看埠號 2.殺死進程 3.查看文件夾文件 4.重命名 5.複製文件 6.刪除文件或文件夾 7.新建文件 8.新建文件夾 此隨筆乃本人學習工作記錄,如有疑問歡迎在下麵評論,轉載請標明出處。 如果對您有幫助請動動滑鼠右下方給我來個贊,您的支持是我最大的動力。 此隨筆乃本人學習工作記錄,如有疑問歡 ...
  • c# 添加引用時報錯:“未能正確載入“ReferenceManagerPackage”包”的解決方法 在添加應用的時候,右鍵點擊“引用”,選擇“添加引用”後,會提示“**未能正確載入ReferenceManagerPackage包**”之類的信息。具體的解決方法如下: (1)點擊開始按鈕,在搜索框中 ...
  • 配置bind 1、確定已經安裝bind軟體,需要安裝3 個bind、bind-chroot、bind-util [root@localhost wj]# yum install –y bind bind-chroot bind-util 2、修改配置文件“/etc/named.conf” [root ...
  • 簡介 mktemp命令用於創建一個臨時的文件或者目錄。 語法格式 示例 不帶選項和參數的mktemp用於創建臨時文件,帶-d選項用於創建臨時目錄。 創建完成後,會輸出臨時文件的絕對路徑。 當僅運行mktemp命令的時候,其等同於 這裡的XXX就表示隨機數,至少需要3個X。 -p DIR, --tmp ...
  • php7連接mysql測試代碼 ...
  • 簡介 從命令的名字上來看,會讓人誤以為這是一個和安裝相關的命令。 其實不然,install命令用於複製文件(cp)或創建空目錄(mkdir)並設置相關的屬性(chown、chmod)。 這裡的屬性包含了ownership、許可權以及時間戳(保留時間戳,而不是修改)。 語法格式 單源複製。一般省略掉-T ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...