天天看點

RHCE 學習筆記(14)- 檔案系統 (1)

這一節學習了rhel的檔案管理系統,主要包括了檔案系統的檢視,裝置的挂載,建立連結和檔案定位4個方面的知識點。

首先來看看檔案系統

我們可以在/proc/partitions這個檔案檢視目前的分區

RHCE 學習筆記(14)- 檔案系統 (1)

通過df -h檢視已經挂載了的裝置

RHCE 學習筆記(14)- 檔案系統 (1)

-ht可以顯示裝置的檔案系統類型

RHCE 學習筆記(14)- 檔案系統 (1)

有的挂載點路徑比較長,自動分2行顯示,可以-p強制一行顯示

RHCE 學習筆記(14)- 檔案系統 (1)

如同程序有pid,使用者有uid,每個檔案系統也有自己的id,稱為uuid,可以通過 blkid(block id)來檢視。注意uuid标記的是檔案系統,而不是分區。uuid的好處在于可以通過uuid這個唯一值來挂載系統,這樣可以避免因為删除硬碟造成的錯位,sda6變成了sda5等等

RHCE 學習筆記(14)- 檔案系統 (1)

在目錄裡面可以通過 ls -ld檢視目錄的屬性,ls -la檢視内容的屬性,但是-ld顯示的目錄大小隻有4k,這僅僅是目錄本身的大小,如何檢視目錄和其内容的整個大小呢?

RHCE 學習筆記(14)- 檔案系統 (1)

可以通過du來檢視,如果隻想看最終結果,使用-s(summary)就行了

RHCE 學習筆記(14)- 檔案系統 (1)

接下來,看看如何建立新的硬碟分區,并加載該裝置

我新添加一個10g的硬碟

RHCE 學習筆記(14)- 檔案系統 (1)

在disk工具裡面可以看見該磁盤了,但是content是unknown,這是因為我們還沒有格式化檔案系統

RHCE 學習筆記(14)- 檔案系統 (1)

自定義格式化,選擇檔案系統格式為xfs

RHCE 學習筆記(14)- 檔案系統 (1)

格式化

RHCE 學習筆記(14)- 檔案系統 (1)

格式化以後就可以看見cotents變成xfs了,但是還沒有加載

RHCE 學習筆記(14)- 檔案系統 (1)

我們可以通過fdisk 或者 blkid來檢視目前的磁盤,也可以通過df -h來檢視目前的磁盤是否都已經加載了

RHCE 學習筆記(14)- 檔案系統 (1)
RHCE 學習筆記(14)- 檔案系統 (1)

加載的文法很簡單 mount -o 選項 外部裝置 挂載點目錄

比如 我建立一個目錄,然後mount加載,umount解除安裝

RHCE 學習筆記(14)- 檔案系統 (1)

有的時候,我們會遇見無法解除安裝裝置的情況,比如使用者正在使用中。

例如,另外開一個程序,進入這個目錄

RHCE 學習筆記(14)- 檔案系統 (1)

這個時候因為正在使用中,是以我無法解除安裝

RHCE 學習筆記(14)- 檔案系統 (1)

如果判斷哪一個程序和使用者正在使用這個檔案系統的話,我們可以強行終止掉這個程序。

我們通過fuser來進行判斷,文法如下

RHCE 學習筆記(14)- 檔案系統 (1)

顯示程序5751,使用者beanxyz正在通路這個目錄(檔案系統)

RHCE 學習筆記(14)- 檔案系統 (1)

kill -9 強行終止程序之後就可以解除安裝了

RHCE 學習筆記(14)- 檔案系統 (1)

-o的選項還可以設定權限讀寫執行的權限

例如,挂載的時候設為隻讀權限

RHCE 學習筆記(14)- 檔案系統 (1)

這樣我是無法寫入内容的

RHCE 學習筆記(14)- 檔案系統 (1)

可以通過remount來更改權限,比如改為讀寫權限,我就可以建立新文檔了

RHCE 學習筆記(14)- 檔案系統 (1)
RHCE 學習筆記(14)- 檔案系統 (1)

再試試看執行的權限,建立一個簡單sh腳本,輸出一行語句

RHCE 學習筆記(14)- 檔案系統 (1)

更改權限為不可執行之後,即使是root執行腳本也會被拒絕,更改為exec之後就沒問題了

RHCE 學習筆記(14)- 檔案系統 (1)

前面說了uuid也可以用來挂載,直接把裝置名改成uuid="xxxxx"的格式就行了

RHCE 學習筆記(14)- 檔案系統 (1)

前面的這些挂載操作都是臨時性的,一旦重新開機計算機,就會丢失。我們可以修改/etc/fstab檔案來實作開機的自動挂載

格式有6列,分别代表以下幾個含義

裝置名/uuid  挂載點  檔案系統 defaults dump 開機自檢

裝置名,挂載點和檔案系統一目了然,defaults是指系統預設的各種權限設定, dump和開機自檢都設成0(關掉)即可

RHCE 學習筆記(14)- 檔案系統 (1)

可以直接用mount -a來挂載所有在fstab裡面已經配置了裝置

RHCE 學習筆記(14)- 檔案系統 (1)

第三部分 連結的建立

rhel裡面,一個硬碟分區一般包括兩大部分,inode 區和資料區,資料區是由很多的block(塊)組成的,一個塊預設大小是4k,一個塊最多隻能存放一個檔案,是以1個12k的檔案需要占據3個塊,而一個1k的檔案隻會使用1個塊,而且這個塊裡面有3k的空間都會浪費掉。是以對于大量的小檔案,适合較小的塊,少而大的檔案适合比較大的塊來分區; inode區裡面有很多的inode節點,每一個inode對應一個檔案的元資訊,比如大小,建立時間,block的位置,連接配接數目等等;當我們通路一個檔案或者目錄的時候,系統會找到檔案名比對的inode号碼,然後找到inode的相關資訊,然後通路記錄檔案目錄的block。

知道了inode的基本概念,現在了看看如何使用

在rhel裡面,可以通過ls -i來檢視inode。

RHCE 學習筆記(14)- 檔案系統 (1)

如果我建立了一個mm檔案,然後拷貝一個副本nn,這兩個檔案是獨立的,是以擁有不同的inode編号

RHCE 學習筆記(14)- 檔案系統 (1)

我們可以通過ln來建立硬連接配接,一個硬連結類似于windows的junction point,或者了解為别名。我建立了mm的硬連結nn,mm和nn其實都是指向同一個inode,是以他們通路的其實是同一個檔案,對其中任何一個做修改,另外一個其實也被修改了;如果删除其中一個,那麼inode的連接配接數減少1,其餘的任然可以通路inode,當全部删掉以後,系統就會回收這個inode号碼和對應的block。

這裡順便說一下目錄檔案的"連結數"。建立目錄時,預設會生成兩個目錄項:"."和".."。前者的inode号碼就是目前目錄的inode号碼,等同于目前目錄的"硬連結";後者的inode号碼就是目前目錄的父目錄的inode号碼,等同于父目錄的"硬連結"。是以,任何一個目錄的"硬連結"總數,總是等于2加上它的子目錄總數(含隐藏目錄)

RHCE 學習筆記(14)- 檔案系統 (1)

硬連結的缺點在于他不能跨分區,例如以下報錯

RHCE 學習筆記(14)- 檔案系統 (1)

除了硬連結 我們還可以建立軟連接配接,這個類似windows的快捷方式,他指向的是檔案名而不是inode,是以是兩個獨立的檔案(不同的inode),a依賴b而存在,如果删除了b,那麼a會報錯

RHCE 學習筆記(14)- 檔案系統 (1)

繼續閱讀