Linux磁盤與文件系統(tǒng)管理(四)

7. Linux磁盤與文件系統(tǒng)管理

文件系統(tǒng)通常會將數(shù)據(jù)放在不同的區(qū)塊厕九,權限與屬性放置到inode中蓖捶,至于實際數(shù)據(jù)則放到datab lock區(qū)塊中,另外扁远,還有一個超級區(qū)塊(superblock)會記錄整個文件系統(tǒng)的信息俊鱼,包括inode與block的總量、使用量穿香、剩余量等亭引。

  • superblock: 記錄此filesystem的整體信息,包括inode/block的總量皮获、使用量焙蚓、剩余量,一級文件系統(tǒng)的格式與相關信息;
  • inode: 記錄文件的屬性,一個文件占用一個inode购公,同事記錄此文件的數(shù)據(jù)所在的block號碼;
  • block: 實際記錄文件的內(nèi)容萌京,若文件太大時,會占用多個block宏浩。

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

df:列出文件系統(tǒng)的真題磁盤使用量

結構:df [-ahikHTm] [目錄或文件名]

選項參數(shù):

  • -a: 列出所有的文件系統(tǒng)知残,包括系統(tǒng)特有的/proc等文件系統(tǒng);
  • -k,-m: 以Kb比庄,Mb的容量顯各文件系統(tǒng);
  • <u>-h: 以人們較易閱讀的Gb,Mb,Kb等格式自行顯示</u>
  • -H: 以M=1000k取代M=1024K的進位方式;
  • -T: 連同該partition的filesystem名稱(例如xfs)也列出;
  • <u>-i: 不用磁盤容量求妹,而以inode的數(shù)量來顯示.</u>。
df.jpg

字段解釋:

    Filesystem: 代表文件系統(tǒng)是在哪個partition,所以列出裝置名稱;
    lk-blocks: 說明底下的數(shù)字單位是1kb,可以用-h或者-m來改變;
    Used: 磁盤使用掉的空間;
    Available: 磁盤可用空間(剩下的空間);
    Used%: 使用率(Used/total)
    Mounted on: 磁盤掛載的目錄所在敬惦,也就是掛載點.
du:評估文件系統(tǒng)的磁盤使用量(常用在推估目錄所占容量)

結構:du [-ahsSkm] 文件或目錄名稱

選項參數(shù):

  • -a: 列出所有的文件與目錄容量,默認僅統(tǒng)計目錄底下的目錄容量净神,不含文件;
  • -k,-m: 以Kb溉委,Mb的容量顯各文件系統(tǒng);
  • <u>-h: 以人們較易閱讀的Gb,Mb,Kb等格式自行顯示</u>
  • <u>-s: 列出總量而已鹃唯,而不列出每個個別的目錄占用容量;</u>
  • -S: 不包括子目錄下的總計,與-s有點差別.
ln:實體連接與符號連接

hard link與symbolic link圖示


hard_link.jpg

symbolic_link.jpg

結構:ln [-sf] source destination

選項參數(shù):

  • <u>-s: 如果不加任何參數(shù)就是hard_link,-s就是symbolic_link</u>;
  • -f: 強制建立瓣喊,如果destination存在坡慌,就刪除后再建立;


    ln_1.jpg

圖示解釋

    hard link會增加文件的連接數(shù)圖中標紅的;
    符號連接(快捷方式)不會增加連接數(shù),符號連接占用大小跟文件名大小有關型宝,理論上講上圖中文件名(a_symbolic_link)只有15b八匠,應該占用15b的絮爷,但是占用的是19趴酣。
    hard link指向的inode都是相同的(黃線標出,倆都是138),因此即使將a.txt刪除坑夯,文件也不會消失岖寞,僅僅是連接數(shù)變成了1而已,但是可以看到符號連接變成了紅色柜蜈,表示已不可用仗谆。
    其實可以把源文件名a.txt也看成是一個指向實際文件數(shù)據(jù)的hard link.
目錄的link數(shù)(連接數(shù))
dic_link.jpg
    目錄的link數(shù)其實就是它的子目錄數(shù)(與它目錄下的文件無關);
    從圖中可以看出新建目錄的link數(shù)為2,而上層目錄的link數(shù)會增加淑履。

7.3 磁盤的分區(qū)隶垮、格式化、校驗與掛載

lsblk:列出系統(tǒng)上的所有磁盤列表(list block)

結構:lsblk [-dfimpt] [device]

選項參數(shù):

  • -d: 僅列出磁盤本身秘噪,并不會列出該磁盤的分區(qū)數(shù)據(jù);
  • -f: 同時列出該磁盤內(nèi)的文件系統(tǒng)名稱;
  • -i: 使用 ASCII 的線段輸出狸吞,不要使用復雜的編碼;
  • -m: 同時輸出該裝置在 /dev 底下的權限數(shù)據(jù)(rwx 的數(shù)據(jù));
  • -p: 列出該裝置的完整文件名,而不是僅列出最后的名字而已;
  • -t: 列出該磁盤裝置的詳細數(shù)據(jù),包括磁盤隊列機制蹋偏、預讀寫的數(shù)據(jù)量大小等.
lsblk.jpg

圖示字段解釋

NAME: 裝置的文件名便斥,會省略 /dev 等前導目錄;
MAJ:MIN: 核心認識的裝置都是透過這兩個代碼來熟悉的,分別是主要:次要裝置代碼;
RM: 是否為可卸除裝置(removable device)威始,如光盤枢纠,USB等;
SIZE: 容量大小;
RO: 是否為制度裝置;
TYPE: 是磁盤(disk)、分區(qū)槽(partition)還是只讀存儲器(rom)等輸出;
MOUNTPOINT: 掛載點.

blkid: 列出裝置的UUID,文件類型TYPE等參數(shù)

blkid.jpg

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

MBR分區(qū)表使用fdisk

GPT分區(qū)表使用gdisk

可以使用lsblk或blkid先找到磁盤

可以使用parted /dev/xxx print來查看磁盤分區(qū)表類型

這倆貨用法幾乎一樣

gdisk.jpg
圖中指令gdisk /dev/sda 
使用的裝置名 sda 后邊不能跟數(shù)字哦黎棠,因為是對整個裝置進行的分區(qū)晋渺,而不是對某個分區(qū)槽(例如/dev/sda1)進行的分區(qū)!
d: 刪除一個分區(qū)
n: 添加一個新的分區(qū)
p: 打印出分區(qū)表(常用)
q: 退出
其他不列舉了
可以隨便玩兒哦脓斩,只要離開的時候是「q」些举,就不會生效,要 「w」 才會生效!

p打印分區(qū)表

gdisk_p.jpg
Number: 分區(qū)槽編號俭厚,1指 /dev/sda1 
Start(sector): 每一個分區(qū)槽開始扇區(qū)號碼
End(sector): 每個分區(qū)槽的結束扇區(qū)位置
Size: 分區(qū)槽容量
Code: 在分區(qū)槽內(nèi)的可能的文件類型户魏,Linux為8300,swap為8200挪挤,不過這個只是一個提示叼丑,不見得真的代表此分區(qū)槽內(nèi)的文件系統(tǒng)哦
Name: 文件系統(tǒng)的名稱等等
可以看到最大扇區(qū)為83886080,但是只使用到65026047而已扛门,意思是還可以進行分區(qū)鸠信。
分區(qū)完成之后可以通過reboot或者使用partprobe -s來更新核心分區(qū)表信息,cat /etc/partitions可以查看分區(qū)信息哦

注意:切記不要在MBR分區(qū)上使用gdisk论寨,也不要在GPT分區(qū)上使用fdisk星立,否則一旦指令按錯,分區(qū)記錄可能會死光光哦葬凳。

磁盤格式化(建置文件系統(tǒng))

格式化指令 XFS文件系統(tǒng):mkfs(make filesystem)+.[文件系統(tǒng)名稱]

xfs文件系統(tǒng)mkfs.xfs绰垂;EXT4文件系統(tǒng): mkfs.ext4;查看支持的文件系統(tǒng)直接查詢有哪些mkfs指令即可,輸入mkfs火焰,然后按tab自動補全自己看咯劲装。

選項參數(shù)自行man page

mkfs_xfs.jpg
全都使用默認值,格式化如上圖昌简,可以看到agcount(存儲群組)=4占业,這個值通常跟cpu個數(shù)有關,通常設置成cpu個數(shù)纯赎。
grep 'prosessor' /proc/cpuinfo 指令可以查看cpu個數(shù)谦疾,輸出的cpu序號由0開始。
mkfs_xfs_d.jpg
上圖犬金,可以看到cpu只有一個念恍,因為我們之前已經(jīng)格式化過一次(建立了文件系統(tǒng))碎紊,
所以這里加的-f是強制格式化的意思,-d agcount=2表示設置存儲群組為2(我這里沒有跟cpu設置成一樣樊诺,僅僅是說明這個值如何設置)仗考。

文件系統(tǒng)修復指令

xfs_repair 處理xfs文件系統(tǒng)

結構:xfs_repair [-dnf] 裝置名稱

選項參數(shù):

  • -d: 通常在單人維護模式底下,針對根目錄(/)進行檢查與修復词爬,很危險M菏取!顿膨!不要隨便使用
  • -f: 后面的裝置其實是個文件而不是實體裝置
  • -n: 單純檢查并不修改文件系統(tǒng)任何數(shù)據(jù)(檢查而已)
  • 其他參數(shù)自行man page
fsck.ext4 處理ext4文件系統(tǒng)

自行man page

注意:修復文件系統(tǒng)是個大任務锅锨,因此,修復該文件系統(tǒng)時恋沃,文件系統(tǒng)不能被掛載必搞,需要先卸除。如果根目錄有問題囊咏,那么只能進入單人模式恕洲,加-d解決,因為根目錄不能被卸除梅割。

文件系統(tǒng)掛載與卸除

mount 指令掛載

常用參數(shù):

  • -a: 依照配置文件/etc/fstab的數(shù)據(jù)將所有未掛載的磁盤都掛載上來
  • -l: 不加任何參數(shù)會顯示目前掛載信息霜第,加上 -l 可以增列Label名稱
  • -n: 默認情況下,系統(tǒng)會將實際掛載的情況實時寫入/etc/mtab中户辞,以便其他程序的運作泌类。但在某些情況下(列如單人維護模式)為了避免問題會可以不寫入,此時就要使用 -n 選項
  • 其他參數(shù)自行man page
CentOS7系統(tǒng)后自動分析最恰當?shù)奈募到y(tǒng)來掛載你需要的裝置底燎,它會通過superblok刃榨,搭配自己的驅動去測試掛載,如果成功掛載双仍,就立即使用該類型的文件系統(tǒng)將裝置掛在起來枢希,指定系統(tǒng)哪些類型的filesystem才需要進行上述的掛在測試主要參考以下倆文件:
/etc/filesystem: 系統(tǒng)指定的測試掛載文件系統(tǒng)類型的優(yōu)先級;
/proc/filesystem: 系統(tǒng)已經(jīng)加載的文件系統(tǒng)類型
Linux的驅動程序在如下目錄中:/lib/modules/$(uname -r)/kernel/fs/
mount_1.jpg

注意:如果掛載了光盤啥的,必須要卸除之后才能拿出光盤殊校,否則光驅是打不開的哦晴玖!如果你正在使用該裝置(比如你正在需要卸載的裝置文件夾內(nèi))读存,是不可以卸除的哦为流!

umount 指令卸除

結構:umount [-fln] 裝置文件名或掛載點

選項參數(shù):

  • -f: 強制卸除!可用在類似網(wǎng)絡文件系統(tǒng)(NFS)無法讀取到的情況下让簿;
  • -l: 立即卸除文件系統(tǒng)敬察,比 -f 還牛逼
  • -n: 不更新 /etc/mtab 情況下卸除
umount_1.jpg

7.4.1 開機掛載 /etc/fstab 及 /etc/mtab

查看/etc/fstab內(nèi)容:

etc_fstab_content.jpg

輸出解釋

欄位 描述 解釋 示例(以圖為例)
第一欄 裝置/UUID等 磁盤裝置文件名/UUID/LABLE name UUID=xxx,/dev/mapper/centos-root
第二欄 掛載點 文件系統(tǒng)掛載點 /,/home
第三欄 文件系統(tǒng) 磁盤分區(qū)槽文件系統(tǒng) xfs
第四欄 文件系統(tǒng)參數(shù) 使用mount掛在是 -o 的參數(shù) 使用的默認參數(shù)尔当,default
第五欄 dump 能否被dump作用莲祸,目前備份系統(tǒng)已經(jīng)很多蹂安,用不住這個了 直接填0 就好
第六欄 fsck 是否以fsck檢查扇區(qū),fsck是檢查ext4系統(tǒng)類型的锐帜,我們當前是xfs 直接填0就好

所以要開機掛載田盈,直接將需要載的文件系統(tǒng)像以上格式填入/etc/fstab即可,如圖所示:


mount_onboot.jpg

reboot后可以看到缴阎,sda4是正常掛載了的

mount_onboot_test.jpg

騷操作之映像文件掛載和掛載裝置文件(file)

mount -o loop可以掛載iso映像文件允瞧,而不用刻錄到光盤就可以直接讀取,這個就不說了蛮拔,下面來點騷的

當分區(qū)不良的情況下述暂,比如只分區(qū)出一個目錄,而已經(jīng)沒有多余的容量進行額外的分區(qū)建炫,但是偏偏根目錄又很大畦韭,這個時候我們就可以制作出一個大文件,然后將這個文件掛載肛跌,如此一來感覺上就多了一個分區(qū)槽哦艺配!這個操作用途很廣哦!

首先建立一個大文件(用dd指令衍慎,后續(xù)有這個指令的講解妒挎,這里只演示)

dd if=/dev/zero of=/srv/loopdev bs=1M count=512

if就是input file。那個/dev/zero是會一直輸出0的裝置西饵!
of就是output file酝掩。將一堆0寫入到后面接的文件中。
bs就是每個block大小眷柔,就像文件系統(tǒng)那樣的block意義期虾。
count就是總共幾個bs的意思。所有bs*count就是這個文件的容量了驯嘱!

mkfs指令-f參數(shù)key格式化文件

mkfs -f /srv/loopdev

mkfs_xfs_loop_file.jpg

使用開機掛載時镶苞,由文件系統(tǒng)建立的filesystem,裝置名稱最好還是使用原文檔名類為好鞠评,這樣不容易出現(xiàn)錯誤信息茂蚓,畢竟大多數(shù)系統(tǒng)僅查詢block device去找UUID而已,而不會去查file的UUID剃幌;參數(shù)loop為掛載時加的參數(shù)聋涨;如圖所示:

onboot_mount_filesystem.jpg
建立swap交換分區(qū)
mkswap.jpg
如上圖所示:
因為我們之前已經(jīng)使用gdisk攻擊建立了分區(qū)swap分區(qū)/dev/sda6,所有我們直接使用了。
mkswap /dev/sda6: 將sda6格式化成swap分區(qū)负乡,自己man page該指令牍白;
swapon /dev/sda6: 啟用sda6這個swap分區(qū),自己man page該指令抖棘;
可以看到第一次free和開啟sda6這個swap分區(qū)后茂腥,swap分區(qū)的容量值有增加狸涌;

使用file形式的filesystem同樣也可以建立swap分區(qū)哦!


filesystem_swap.jpg
如果所示最岗,需要注意的就是我們開啟分區(qū)的時候要求權限為0600帕胆,
swapon開啟的時候報錯設備忙,所以我設置了開機自動啟用(自己去補充/etc/fstab哦)般渡,
重啟后看下圖操作:swapoff 用來關閉swap的啟用狀態(tài)
filesystem_swap_onboot.jpg

parted指令可以同時處理GPT和MBR分區(qū)表格式惶楼,而且可以一條指令直接完成分區(qū)哦,自行man page吧!

over...

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诊杆,一起剝皮案震驚了整個濱河市歼捐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晨汹,老刑警劉巖豹储,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淘这,居然都是意外死亡剥扣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門铝穷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钠怯,“玉大人,你說我怎么就攤上這事曙聂』薮叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵宁脊,是天一觀的道長断国。 經(jīng)常有香客問我,道長榆苞,這世上最難降的妖魔是什么稳衬? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮坐漏,結果婚禮上薄疚,老公的妹妹穿的比我還像新娘。我一直安慰自己赊琳,他們只是感情好街夭,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慨畸,像睡著了一般莱坎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寸士,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天檐什,我揣著相機與錄音,去河邊找鬼弱卡。 笑死乃正,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的婶博。 我是一名探鬼主播瓮具,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凡人!你這毒婦竟也來了名党?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挠轴,失蹤者是張志新(化名)和其女友劉穎传睹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岸晦,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡欧啤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了启上。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邢隧。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冈在,靈堂內(nèi)的尸體忽然破棺而出倒慧,到底是詐尸還是另有隱情,我是刑警寧澤包券,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布迫靖,位于F島的核電站,受9級特大地震影響兴使,放射性物質發(fā)生泄漏系宜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一发魄、第九天 我趴在偏房一處隱蔽的房頂上張望盹牧。 院中可真熱鬧,春花似錦励幼、人聲如沸汰寓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽有滑。三九已至,卻和暖如春嵌削,著一層夾襖步出監(jiān)牢的瞬間毛好,已是汗流浹背望艺。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肌访,地道東北人找默。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像吼驶,于是被迫代替她去往敵國和親惩激。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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