linux私房菜筆記 - 第七章 - Linux磁盤與文件系統(tǒng)管理

7.1認識Linux文件系統(tǒng)

重點:inode、block(數(shù)據(jù)區(qū)塊)乱豆、superblock(超級區(qū)塊)

7.7.1 磁盤組成與分區(qū)的復習

磁盤結(jié)構(gòu)

磁盤結(jié)構(gòu)

GPT與MBR
區(qū)別

  1. MBR早贾虽,GPT晚
  2. MBR最多支持2T ,GPT支持大于2T的總?cè)萘考按笥?T的分區(qū),并且?guī)缀鯖]有上限局荚,最大支持到128個分區(qū)最住,分區(qū)大小支持到256TB钞澳。
  3. MBR第一扇區(qū)(512 byte)有主引導記錄(MBR 446 byte)和分區(qū)表(64byte)。分區(qū)表記錄如何分區(qū)涨缚,分為主要分區(qū)擴展分區(qū)(最多一個)與邏輯分區(qū)轧粟,如果超過4個需要用邏輯分區(qū),分區(qū)信息記錄在每個分區(qū)最前面脓魏。
    GPT兼容MBR并且支持UEFI兰吟,每個分區(qū)都有自己的啟動扇區(qū)。
MBR 使用4個主要分區(qū)
MBR 使用1個主要分區(qū)1個擴展分區(qū)
GPT 與 UEFI

磁盤以文件表示
linux中設(shè)備都以文件形式在/dev中表示茂翔,如磁盤為/dev/sd[a-p物理][1-128分區(qū)]

7.1.2 文件系統(tǒng)特性

  • Linux與Windows文件系統(tǒng)不一樣混蔼,默認情況下不通用
  • 一個可掛載的數(shù)據(jù)是一個文件系統(tǒng)(并非一個分區(qū))
  • 超級區(qū)塊: inode與數(shù)據(jù)區(qū)塊總量 使用量 剩余量 數(shù)據(jù)區(qū)塊與inode大小 文件系統(tǒng)有關(guān)信息,一個文件系統(tǒng)中只有一個
  • BlockGroup: 區(qū)塊的集合檩电,文件系統(tǒng)的部分
  • inode(index node):文件屬性 用戶組 時間 數(shù)據(jù)區(qū)塊號碼 本質(zhì)上是在某些區(qū)塊中存索引 固定大小 一個文件(包括目錄)一個inode
  • 數(shù)據(jù)區(qū)塊:文件內(nèi)容
  • 存索引的inode類文件系統(tǒng)一般不需要碎片整理 fat會因為存的文件離散需要碎片整理
inode

fat

7.1.3 Linux的ex2文件系統(tǒng)(inode)

文件系統(tǒng):boot+group+group...
group: inode信息 數(shù)據(jù)


ext2與各塊含義

限制:

  • 區(qū)塊數(shù)量大小格式化后不能再修改
  • 每個區(qū)塊最多一個文件(浪費容量)

缺點:
區(qū)塊大:小文件多浪費空間
區(qū)塊兄舴帷:inode多讀寫性能差

記錄一個區(qū)塊指針需要4B,一個inode包含12個直接俐末、1個間接料按、1個雙間接、1個三間接卓箫,所以1K區(qū)塊下一個文件最大12+256+256256+256256*256個數(shù)據(jù)區(qū)塊共16G

inode如何存儲區(qū)塊指針

如何查看這些信息

sudo blkid 查詢目前被系統(tǒng)格式化的數(shù)據(jù)
dumpe2fs [-bh] 設(shè)備文件名 (在ext系統(tǒng)下)
xfs_info 掛載點或設(shè)備文件名 (在xfs文件系統(tǒng)下)

輸出:超級區(qū)塊信息+區(qū)塊群組信息

7.1.4與目錄樹的關(guān)系

  • 4KB區(qū)塊存100K载矿,需要26個Block,因為還有一個存多的inode
  • inode本身不記錄文件名烹卒,所以需要逐層進入目錄闷盔,并讀取下一層的inode(內(nèi)含權(quán)限)
  • 文件系統(tǒng)用久了可以復制出所有文件格式化再復制回去,使得數(shù)據(jù)連續(xù)旅急,提高讀寫性能

7.1.5 ext2/ext3/ext4 文件的存取與日志式文件系統(tǒng)的功能

  1. 讀所在目錄inode中記載的是否有w權(quán)限逢勾,如有
  2. 根據(jù)inode對照表找未使用的inode,將新文件的權(quán)限屬性寫入
  3. 根據(jù)區(qū)塊對照表找未使用的區(qū)塊藐吮,將數(shù)據(jù)寫入溺拱,更新inode指向數(shù)據(jù)
  4. 同步更新inode與數(shù)據(jù)到各自對照表

  1. 根據(jù)inode查看是否有x權(quán)限
  2. 查看下一層inode,繼續(xù)檢查權(quán)限
  3. 如有權(quán)限谣辞,打開文件或進入下一層目錄

數(shù)據(jù)不一致

  • 原因:斷電等
  • ext2: 數(shù)據(jù)檢查
  • ext3迫摔、ext4:Journal日志(預備、實際寫入泥从、結(jié)束三個階段)句占,檢查日志出問題的文件而不用檢查全盤

7.1.6 Linux文件系統(tǒng)的運行

異步處理
修改時將文件讀入內(nèi)存標記為clean,修改后標記為dirty但并不立即寫入硬盤躯嫉,需要調(diào)用sync纱烘。
不正常關(guān)機時會導致磁盤校驗杨拐。

7.1.7 掛載點的意義(mount point)

文件系統(tǒng)與目錄樹
掛載:文件系統(tǒng)與目錄樹結(jié)合,比如將/掛載到/dev/sda1這個設(shè)備
相同文件系統(tǒng)類型的不同文件系統(tǒng)目錄樹根的inode相同凹炸,不同文件系統(tǒng)內(nèi)文件inode值可能重復戏阅,同一個文件系統(tǒng)inode與文件一一對應(yīng)。

7.1.8 其他Linux支持的文件系統(tǒng)與VFS

Linux支持多種文件系統(tǒng)啤它,包括傳統(tǒng)奕筐、日志、網(wǎng)絡(luò)的变骡,以下命令可以查詢离赫。

ls -l /lib/modules/$(uname -r)/kernel/fs # 系統(tǒng)支持的
cat /proc/filesystems # 加載到內(nèi)存中的

VFS(Virtual Filesystem Switch)是位于內(nèi)核層系統(tǒng)調(diào)用,幫助處理讀取不同文件系統(tǒng)

7.1.9 XFS文件系統(tǒng)簡介

ext4不好:預先分配所有inode塌碌,格式化慢秉继,不適合大容量磁盤
XFS好:適合大容量磁盤和巨型文件
lsattrchattr可以更改隱藏屬性虽缕,但是xfs不支持部分隱藏屬性
xfs分為數(shù)據(jù)區(qū)(data section)经伙、文件系統(tǒng)活動登錄區(qū)(log section)拘荡、實時運行區(qū)(realtime section)

數(shù)據(jù)區(qū)
同ext,分為超級區(qū)塊接剩、剩余空間的管理切厘、inode分配與追蹤。但是inode動態(tài)分配懊缺,格式化快疫稿。且數(shù)據(jù)塊(4K以上內(nèi)核不給掛載)與inode大小(256B-2M)可以自定義鹃两。

文件系統(tǒng)活動登錄區(qū)
類似日志區(qū)遗座,所有文件變化在此記錄,當完全被寫入記錄才被刪除俊扳,用于校驗途蒋。可指定外部磁盤作為該區(qū)馋记。

實時運行區(qū)
先在該區(qū)段中尋找數(shù)個extent區(qū)塊号坡,將文件放到這些區(qū)塊中,等分配完了再寫入數(shù)據(jù)區(qū)中的inode與區(qū)塊中抗果。

xfs文件系統(tǒng)查看信息

df -T 路徑 #查詢路徑文件系統(tǒng),具體見7.2
xfs_info 掛載點|設(shè)備文件名 #查看超級區(qū)塊記錄

注意點:如果對/boot使用奸晴,可以看到/dev/sda2指向某個物理設(shè)備冤馏,但是對/使用,可以看到指向/dev/mapper/centos-root寄啼。這是因為在安裝系統(tǒng)時候逮光,設(shè)備分區(qū)使用了LVM而非標準分區(qū)代箭,linux為你自動創(chuàng)建的空間池,用多少取多少涕刚。

ypeng@study:~ $ ll /dev/mapper/centos-root 
lrwxrwxrwx. 1 root root 7 3月  28 11:59 /dev/mapper/centos-root -> ../dm-0

含有inode大小嗡综、個數(shù)、總數(shù)杜漠、區(qū)塊大小极景、數(shù)量、與陣列stripe有關(guān)的信息

7.2 文件系統(tǒng)的簡單操作

df

df [-ahikHTm]
-a : 列出**所有**文件系統(tǒng)
-h : 容量自動單位換算
-i : 顯示inode數(shù)量不顯示磁盤容量
-T : 顯示所在硬盤分區(qū)的文件系統(tǒng)

/proc中1kblock驾茴,used盼樟,free都是0,因為這個目錄掛載在內(nèi)存中
/dev/shm/是用內(nèi)存虛擬出的磁盤空間

不知道某個目錄/文件所在掛載點锈至,還想知道這個分區(qū)還能存多少東西晨缴?

df [目錄名|掛載點名]

du

du [-ahskm]
-s : 列出僅當前目錄
不加參數(shù):列出當前目錄和所有**目錄**
-a : 列出目錄和文件
-S : 不統(tǒng)計子目錄中的文件

7.2.2 硬鏈接與符號鏈接

硬鏈接

  • 在訪問目錄中文件時,查到目錄的inode之后找目錄的數(shù)據(jù)峡捡,目錄的數(shù)據(jù)存的文件名->inode击碗。硬鏈接只是加了一條文件名->inode,并沒有產(chǎn)生新的文件们拙。
  • 硬鏈接權(quán)限屬性完全一樣稍途。
  • 既不增加inode數(shù),也不減少inode數(shù)
  • 可以通過任何一個文件名寫入睛竣,刪除一個文件名inode和區(qū)塊還在
  • 不能跨文件系統(tǒng)(inode重復)
  • 不能鏈接目錄(需迭代進行晰房,復雜度高,不支持射沟,但是...目錄例外殊者,每新建一個目錄其鏈接數(shù)為2,包括其自身和.验夯,其父目錄鏈接數(shù)+1猖吴,由于..
    硬鏈接的讀取
ln 建立硬鏈接

符號鏈接

ln -s
  • 等同于Windows快捷方式
  • 可以鏈接目錄
  • 源文件刪除后符號鏈接打不開


    符號鏈接的讀取

磁盤的分區(qū)、格式化挥转、檢驗與掛載

流程: 分區(qū)->格式化->檢驗(可選)->掛載(Linux特色)

7.3.1 觀察磁盤分區(qū)狀態(tài)

lsblk [-dfimpt] [設(shè)備名] #列出磁盤分區(qū) [設(shè)備名]只可以輸入disk海蔽,不能輸入分區(qū)

查看UUID(全局唯一標識符):lsblk-fblkid

parted 設(shè)備文件 print #列出磁盤分區(qū)信息

磁盤分區(qū):gdisk(GPT)/fdisk(MBR)

分區(qū)流程:lsblkblkid查看分區(qū)->gdiskfdisk根據(jù)提示操作
區(qū)塊與扇區(qū):區(qū)塊針對文件系統(tǒng)而言,扇區(qū)針對物理硬盤而言
不要處理正在活動的分區(qū)(已掛載的分區(qū))绑谣,linux將不能更新分區(qū)表
添加分區(qū)默認按序號給分區(qū)編號党窜,且默認開始扇區(qū)從第一個未被占用的扇區(qū)開始。

7.3.3 磁盤格式化(創(chuàng)建文件系統(tǒng))

功能:使用文件系統(tǒng)格式化軟件格式化磁盤分區(qū)借宵。
命令:mkfs.xfs mkfs.ext4 mkfs

mkfs.xfs -b 區(qū)塊容量 -d 有關(guān)datasection的數(shù)值 -f 分區(qū)內(nèi)已經(jīng)有文件系統(tǒng)強制執(zhí)行
 -i inode數(shù)值Log內(nèi)置或者放到其他設(shè)備等幌衣,-r 與實時區(qū)有關(guān)
mkfs.ext4 [-b 區(qū)塊大小] [-L 設(shè)備名稱]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子豁护,更是在濱河造成了極大的恐慌哼凯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楚里,死亡現(xiàn)場離奇詭異断部,居然都是意外死亡,警方通過查閱死者的電腦和手機班缎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門蝴光,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吝梅,你說我怎么就攤上這事虱疏。” “怎么了苏携?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵做瞪,是天一觀的道長。 經(jīng)常有香客問我右冻,道長装蓬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任纱扭,我火速辦了婚禮牍帚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乳蛾。我一直安慰自己暗赶,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布肃叶。 她就那樣靜靜地躺著蹂随,像睡著了一般。 火紅的嫁衣襯著肌膚如雪因惭。 梳的紋絲不亂的頭發(fā)上岳锁,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音蹦魔,去河邊找鬼激率。 笑死,一個胖子當著我的面吹牛勿决,可吹牛的內(nèi)容都是我干的乒躺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼低缩,長吁一口氣:“原來是場噩夢啊……” “哼嘉冒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤健爬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后么介,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娜遵,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年壤短,在試婚紗的時候發(fā)現(xiàn)自己被綠了设拟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡久脯,死狀恐怖纳胧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情帘撰,我是刑警寧澤跑慕,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站摧找,受9級特大地震影響核行,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹬耘,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一芝雪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧综苔,春花似錦惩系、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妙黍,卻和暖如春悴侵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拭嫁。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工可免, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人做粤。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓浇借,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怕品。 傳聞我的和親對象是個殘疾皇子妇垢,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容