0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

mount--bind的簡單介紹和使用方法

dyquk4xk2p3d ? 來源:運維研習社 ? 2023-11-03 09:27 ? 次閱讀

轉(zhuǎn)自:運維研習社

Linux運維過程中,經(jīng)常會遇到某個應(yīng)用的存儲目錄跑滿,提前又沒有做任何規(guī)劃,目錄或磁盤無法擴容,這個時候,我們常用的解決方法是做軟鏈接,通過ln,將原先存儲的目錄軟鏈接到另外大的磁盤中的目錄下,以此達到目的。

軟鏈的弊端就是,多層軟鏈之后,會被繞暈,很容易造成誤操作,今天再介紹一種方法

mount --bind

mount命令運維小伙伴應(yīng)該很熟悉,不做過多介紹 先來看下man里面的介紹

4c6f3530-79d9-11ee-939d-92fbcf53809c.png

通過mount --bind可以將文件目錄結(jié)構(gòu)重新掛載,連接兩個目錄,它是將前一個目錄掛載到后一個目錄上,所有對后一個目錄的訪問其實都是對前一個目錄的訪問

例子

通過例子看下,分別創(chuàng)建兩個不同的目錄,并在兩個不同的目錄下創(chuàng)建不同的文件

4c892f94-79d9-11ee-939d-92fbcf53809c.png

查看文件的inode

4c9e2e6c-79d9-11ee-939d-92fbcf53809c.png

通過mount --bind將test1掛載到test2上,重新查看inode和目錄下內(nèi)容

4cac670c-79d9-11ee-939d-92fbcf53809c.png

可以看到,inode號和文件,都是test1的 然后對test2目錄下的文件訪問修改,實際上改動的就是test1目錄,我們測試下,在test2目錄創(chuàng)建文件

4cbbde8a-79d9-11ee-939d-92fbcf53809c.png

然后接觸mount之后,我們再查看下兩個目錄下的內(nèi)容

4cd5d9de-79d9-11ee-939d-92fbcf53809c.png

可以看到,test1目錄保持修改后的狀態(tài),test2目錄文件仍然存在,且保持原來的不變

原理

以mount --bind test1 test2為例,當mount --bind命令執(zhí)行后,Linux將會把被掛載目錄的目錄項(也就是該目錄文件的block,記錄了下級目錄的信息)屏蔽,即test2的下級路徑被隱藏起來了(注意,只是隱藏不是刪除,數(shù)據(jù)都沒有改變,只是訪問不到了)。同時,內(nèi)核將掛載目錄(test1)的目錄項記錄在內(nèi)存里的一個s_root對象里,在mount命令執(zhí)行時,VFS會創(chuàng)建一個vfsmount對象,這個對象里包含了整個文件系統(tǒng)所有的mount信息,其中也會包括本次mount中的信息,這個對象是一個HASH值對應(yīng)表(HASH值通過對路徑字符串的計算得來),表里就有 /test1 到 /test2 兩個目錄的HASH值對應(yīng)關(guān)系 命令執(zhí)行完后,當訪問 /test2下的文件時,系統(tǒng)會告知 /test2 的目錄項被屏蔽掉了,自動轉(zhuǎn)到內(nèi)存里找VFS,通過vfsmount了解到 /test2 和 /test1 的對應(yīng)關(guān)系,從而讀取到 /test1 的inode,這樣在 /test2 下讀到的全是 /test1 目錄下的文件

注意

兩個目錄的對應(yīng)關(guān)系是存在于內(nèi)存中的,一旦重啟,掛載關(guān)系就沒有了,所以需要將掛載關(guān)系,寫入/etc/fstab中

高級用法

臨時配置文件讀取測試 有些應(yīng)用場景下,需要修改配置文件進行測試,但是又不能影響正在運行中的業(yè)務(wù),在沒有把握的情況下,不愿意直接修改原有配置文件的話,我們可以通過在/tmp等目錄,寫一個測試的配置文件,通過mount --bind的方式掛載到配置文件讀取目錄,運行程序讀取該臨時配置文件,測試完成后,只需要umount,不影響原來的配置

只讀掛載 在一些場景下,比如需要給開發(fā)人員查看一些配置的權(quán)限,但是又不允許它們修改配置的情況下,可以通過mount --bind,ro 掛載一個只讀目錄,原目錄可寫,掛載出來的目錄只讀,只需要將只讀目錄權(quán)限給開發(fā)人員即可

以上就是mount --bind的簡單介紹,更多使用方法,各位小伙伴可以自行嘗試。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11126

    瀏覽量

    207946
  • 磁盤
    +關(guān)注

    關(guān)注

    1

    文章

    355

    瀏覽量

    25099
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    551

    瀏覽量

    24564
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    658

    瀏覽量

    21931

原文標題:教你在 Linux 下做到一個文件即可讀寫,又只讀~

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    英飛凌MEMTOOL軟件介紹使用方法

    ,附件中詳細介紹了這款軟件支持的操作系統(tǒng)平臺、支持燒錄的英飛凌MCU系列和具體型號,并詳細介紹了軟件的使用方法。MEMTOOL軟件介紹使用方法
    發(fā)表于 12-14 09:39

    介紹示波器的特殊使用方法

    本文介紹了示波器的特殊使用方法。
    發(fā)表于 05-06 10:36

    介紹獨立按鍵基本的使用方法

    獨立按鍵基本的使用方法——狀態(tài)機(有人也喜歡用三行代碼的方法。當然這都無所謂,蘿卜白菜各有所愛,只要別用主時序給按鍵消抖就行?。?、要使用獨立按鍵,那么開發(fā)板上的J5跳帽必須接到BTN(獨立按鍵)。...
    發(fā)表于 01-06 06:30

    介紹SPI的使用方法

    寫在最前使用RT-Thread Studio開發(fā)環(huán)境開發(fā)STM32單片機程序,與MDK使用env有一定的差別,對于剛開始使用的程序員來說,主要是找不到配置選項在哪里,上一篇介紹了TIM設(shè)備的使用方法
    發(fā)表于 02-17 06:32

    示波器的使用方法

    示波器的使用方法 1 示波器使用        本節(jié)介紹示波器的使用方法。示波器種類、型號很多,功能也不同。
    發(fā)表于 01-14 13:06 ?1.8w次閱讀

    Bind源代碼包安裝

    先到官方下載Bind的安裝包 wgetftp://ftp.isc.org/isc/bind9/9.6.0-P1/bind-9.6.0-P1.tar.gz tar xzvf
    發(fā)表于 04-04 20:30 ?23次下載

    Verilog HDL語言的文件調(diào)用問題:include使用方法介紹

    本文簡單介紹在使用Verilog HDL語言時文件的調(diào)用問題之include使用方法介紹及舉例說明,詳見本文...
    發(fā)表于 01-24 14:40 ?6672次閱讀
    Verilog HDL語言的文件調(diào)用問題:include<b class='flag-5'>使用方法</b><b class='flag-5'>介紹</b>

    面包板的結(jié)構(gòu)和使用方法詳細介紹

    面包板是實驗室中用于搭接電路的重要工具,熟練掌握面包板的使用方法是提高實驗效率,減少實驗故障出現(xiàn)幾率的重要基礎(chǔ)之一。下面就面包板的結(jié)構(gòu)和使用方法簡單介紹。
    發(fā)表于 10-31 08:00 ?0次下載
    面包板的結(jié)構(gòu)和<b class='flag-5'>使用方法</b>詳細<b class='flag-5'>介紹</b>

    真空包裝機怎么用_使用方法介紹

    本文主要介紹了真空包裝機的使用方法,另外還簡單介紹了真空包裝主要結(jié)構(gòu)與工作原理,還介紹了真空包裝機的使用維護
    發(fā)表于 05-06 17:18 ?3.5w次閱讀

    STM32 ST-LINK Utility介紹、 下載、安裝、使用方法

    STM32 ST-LINK Utility介紹、下載、安裝、使用方法
    的頭像 發(fā)表于 03-24 13:55 ?5.6w次閱讀
    STM32 ST-LINK Utility<b class='flag-5'>介紹</b>、 下載、安裝、<b class='flag-5'>使用方法</b>

    淺談STM32CubeMX使用方法及功能介紹

    STM32CubeMX使用方法及功能介紹
    的頭像 發(fā)表于 03-25 11:02 ?1.2w次閱讀
    淺談STM32CubeMX<b class='flag-5'>使用方法</b>及功能<b class='flag-5'>介紹</b>

    示波器的使用方法(三):示波器的使用方法詳解

    示波器的使用方法并非很難,重點在于正確使用示波器的使用方法。往期文章中,小編對模擬示波器的使用方法和數(shù)字示波器的使用方法均有所介紹。為增進大
    的頭像 發(fā)表于 12-24 20:37 ?2991次閱讀

    WinCC中定時器使用方法介紹

    WinCC中定時器使用方法介紹說明。
    發(fā)表于 04-22 14:50 ?8次下載

    什么是bind?你真的熟悉bind嗎?

    bind()方法創(chuàng)建一個新的函數(shù),在bind()被調(diào)用時,這個新函數(shù)的this被指定 bind()的第一個參數(shù),而其余參數(shù)將作為新函數(shù)的參數(shù),供調(diào)用時使用。
    的頭像 發(fā)表于 07-13 09:56 ?2468次閱讀

    內(nèi)網(wǎng)穿透工具的種類、原理和使用方法

    本文以滲透的視角,總結(jié)幾種個人常用的內(nèi)網(wǎng)穿透,內(nèi)網(wǎng)代理工具,介紹簡單原理和使用方法。
    的頭像 發(fā)表于 08-25 10:35 ?1601次閱讀
    內(nèi)網(wǎng)穿透工具的種類、原理和<b class='flag-5'>使用方法</b>