日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

鸟哥的linux私房菜_linux磁盘与文件系统管理

發(fā)布時間:2024/1/8 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸟哥的linux私房菜_linux磁盘与文件系统管理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

8 . linux磁盤與文件系統(tǒng)管理


8.1認(rèn)識EXT2系統(tǒng)


8.1.2文件系統(tǒng)的特性


super block : 記錄此文件系統(tǒng)的整體信息,包括inode block的總量,使用量、剩余量、以及文件系統(tǒng)的格式以及相關(guān)信息等;


inode: 記錄文件的屬性,一個文件占用一個inode,同時記錄此文件數(shù)據(jù)所在的block號碼;inode并不記錄文件名,記錄在block中


block : 實際記錄文件的內(nèi)容,若文件太大時,會占用多個block;




這種數(shù)據(jù)存取的方法我們稱為索引式文件系統(tǒng)(indexed allocation)


8.1.3 linux的ext2 文件系統(tǒng)


子主題 1


data block 資料區(qū)塊)


是什么


data block 是用來放置文件內(nèi)容數(shù)據(jù)地方,在 Ext2 文件系統(tǒng)中所支持的 block 大小有 1K, 2K 及4K 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode 的記錄。 不過要注意的是,由于 block 大小的差異,會導(dǎo)致該文件系統(tǒng)能夠支持的最大磁盤容量與最大單一文件容量并不相同。


?Ext2 文件系統(tǒng)的 block 基本限制如下:


1 原則上,block 的大小與數(shù)量在格式化完就不能夠再改變了(除非重新格式化);
2 每個 block 內(nèi)最多只能夠放置一個文件的數(shù)據(jù);
3 承上,如果文件大于 block 的大小,則一個文件會占用多個 block 數(shù)量;
4 承上,若文件小于 block ,則該 block 的剩余容量就不能夠再被使用了(磁盤空間會浪費)。


inode table (inode? 表格)


inode 記錄的文件數(shù)據(jù)


1 該文件的存取模式(read/write/excute);
2 該文件的擁有者與群組(owner/group);
3 該文件的容量;
4 該文件建立或狀態(tài)改變的時間(ctime);
5 最近一次的讀取時間(atime);
6 最近修改的時間(mtime);
7 定義文件特性的旗標(biāo)(flag),如 SetUID...;
8 該文件真正內(nèi)容的指向 (pointer);


inode特色


1 每個 inode 大小均固定為 128 bytes (新的 ext4 與 xfs 可設(shè)定到 256 bytes);
2 每個文件都僅會占用一個 inode 而已;
3 承上,因此文件系統(tǒng)能夠建立的文件數(shù)量與 inode 的數(shù)量有關(guān);
4 系統(tǒng)讀取文件時需要先找到 inode,并分析 inode 所記錄的權(quán)限與用戶是否符合,若符合才能夠開始實際讀取 block 的內(nèi)容。


Superblock ( 超級區(qū)塊)


是什么


superblock 是記錄整個 filesystem 相關(guān)信息的地方, 沒有 Superblock ,就沒有這個 filesystem 了。


Superblock記錄的信息主要有:


1 block 與 inode 的總量;
2 未使用與已使用的 inode / block 數(shù)量;
3 block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128bytes 或 256bytes);
4 filesystem 的掛載時間、最近一次寫入數(shù)據(jù)的時間、最近一次檢驗磁盤 (fsck) 的時間等文件系統(tǒng)的相關(guān)信息;
5 一個 valid bit 數(shù)值,若此文件系統(tǒng)已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。


Filesystem Description ( 文件系統(tǒng)描述說明)


是什么


這個區(qū)段可以描述每個 block group 的開始與結(jié)束的 block 號碼,以及說明每個區(qū)段 (superblock,bitmap, inodemap, data block) 分別介于哪一個 block 號碼之間。


block bitmap ( 區(qū)塊對照表)


inode bitmap (inode? 對照表)


dumpe2fs :


是什么


:? 查詢 Ext? 家族 superblock?


語法


[root@study ~]#? dumpe2fs [-bh]? 裝置文件名
選項與參數(shù):
-b :列出保留為壞軌的部分(一般用不到吧!?)
-h :僅列出 superblock 的數(shù)據(jù),不會列出其他的區(qū)段內(nèi)容!


范例


范例:鳥哥的一塊 1GB ext4 文件系統(tǒng)內(nèi)容
[root@study ~]#? blkid <==這個指令可以叫出目前系統(tǒng)有被格式化的裝置
www.linuxidc.com
/dev/vda1: LABEL="myboot" UUID="ce4dbf1b-2b3d-4973-8234-73768e8fd659" TYPE="xfs"
....(中間省略)....
Inode size: 256 # inode 的容量大小!已經(jīng)是 256 了喔!
....(底下省略)....
# 由于數(shù)據(jù)量非常的龐大,因此鳥哥將一些信息省略輸出了!上表與你的屏幕會有點差異。
# 前半部在秀出 supberblock 的內(nèi)容,包括標(biāo)頭名稱(Label)以及 inode/block 的相關(guān)信息
# 后面則是每個 block group 的個別信息了!您可以看到各區(qū)段數(shù)據(jù)所在的號碼!
# 也就是說,基本上所有的數(shù)據(jù)還是與 block 的號碼有關(guān)就是了!很重要!


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


目錄


ext2一個目錄會分配一個inode與至少一塊block 給該目錄。inode記錄了目錄屬性等相關(guān)信息,而block則記錄了該目錄下的文件名與該文件名占用的inode號碼等數(shù)據(jù);


文件:


ext2會給文件分配一個inode和相對于該文件大小的block數(shù)量;


目錄樹讀取


tips


inode 本身并不記錄文件名,文件名的記錄是在目錄的 block 當(dāng)中。因此當(dāng)我們要讀取
某個文件時,就務(wù)必會經(jīng)過目錄的 inode 與 block ,然后才能夠找到那個待讀取文件的 inode 號碼,最終才會讀到正確的文件的 block 內(nèi)的數(shù)據(jù)。


文件系統(tǒng)的大小與磁盤的讀取性能


8.1.5 ext2/etx3文件的訪問日志與日志文件的系統(tǒng)功能


8.1.6 linux文件系統(tǒng)的操作


8.1.7掛載點(mount point )的意義


是什么


每個 filesystem 都有獨立的 inode / block / superblock 等信息,這個文件系統(tǒng)要能夠鏈接到目錄樹才能被我們使用。 將文件系統(tǒng)與目錄樹結(jié)合的動作我們稱為『掛載』


8.1.8其他linux的文件系統(tǒng)與vfs


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


是什么


CentOS 7 開始,預(yù)設(shè)的文件系統(tǒng)已經(jīng)由原本的 EXT4 變成了 XFS 文件系統(tǒng)了!


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


8.2.1磁盤與目錄的內(nèi)容:df、du


df:列出文件系統(tǒng)整體磁盤使用量


>df [-ahikHTM] 目錄或文件名
-a:列出所有文件系統(tǒng),包括系統(tǒng)特有的/proc等文件系統(tǒng)
-k:以kb容量顯示文件系統(tǒng)
-m:以MB的容量顯示各文件系統(tǒng)
重要
-h:以人們?nèi)菀组喿x的GB、MB、KB來顯示文件系統(tǒng)
-H:以M=100k來替代M=1024K進位方式
-T:連同該分區(qū)的文件系統(tǒng)名稱(例如ext3)也列出;
重要
-i:不用硬盤容量,而以inode的數(shù)據(jù)來顯示


輸出結(jié)果:
Filesystem :代表該文件系統(tǒng)是在哪個分區(qū),所以列出了設(shè)備名稱
1k-block:說明下面的數(shù)字單位時1KB。可以利用-h或-m來改變?nèi)萘?br /> Used:使用掉的磁盤空間
available:剩下的磁盤空間大小
Use%:磁盤的使用率。超過90%時要注意下。
mountedon:磁盤的掛載的目錄所在(掛載點)


du:評估文件系統(tǒng)整體磁盤使用量


>du [-ahskm] 文件或者目錄名稱
-a:列出所有目錄和文件的容量,默認(rèn)只統(tǒng)計目錄下面的文件容量
-h:以人們?nèi)菀组喿x的方式列出容量
-s:列出總?cè)萘?#xff0c;而不列出每個各別的目錄占用容量
-S:不包括子目錄下總計;
-k:以KB列出容量
-m:以MB列出容量


與df不同ds會直接到文件系統(tǒng)內(nèi)查找所有文件數(shù)據(jù),所以會需要一段時間;默認(rèn)情況下輸出的大小是以kB計算的


8.2.2連接文件:ln


語法;
> ln [-sf] 源文件 目標(biāo)文件
-s: 如果沒有加任何參數(shù) 默認(rèn)是hard link ,s就是symbolic link;
-f:如果目標(biāo)文件存在時,就將目標(biāo)文件刪除,再創(chuàng)建


hard link 硬連接 或?qū)嶋H連接


子主題 2


多個文件名對應(yīng)到一個inode號碼 。例:兩個不同的文件名都鏈接到一個相同的inode號碼;


symbolic link符號連接(也即快捷方式)


子主題 2


基本上symbolic link 就是創(chuàng)建一個獨立的文件,而這個文件指向他連接的那個文件;可以與windows的快捷方式劃等號


連接數(shù)量


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


如果我們想要在系統(tǒng)中增加一個硬盤,應(yīng)該要有哪些動作要做呢;
1.對磁盤進行分區(qū),以新建可用的分區(qū)
2.對該分區(qū)進行格式化(format),以創(chuàng)建系統(tǒng)可用的文件系統(tǒng)
3.若想要仔細(xì)一點,則可以對剛建好的文件系統(tǒng)進行檢驗
4.在linux 系統(tǒng)上,需要創(chuàng)建掛載點(也即是目錄),并將它掛載上來


磁盤分區(qū):fdisk


fdisk [-l] 設(shè)備名稱
-l:輸出后面接的設(shè)備所有的分區(qū)內(nèi)容,若僅有fdisk -l 時,則會把整個系統(tǒng)內(nèi)能夠找到的設(shè)備分區(qū)全部列出來


例子:
>df /?
#找出磁盤文件名
> fdisk /dev/hds
#進入到fdisk 命令界面


進入fisk后的幾個常用操作


刪除磁盤分區(qū)
1 fdisk? /dev/hdc? #進入fdisk頁面
2.p? #先看下分區(qū)的信息,假設(shè)要刪除 /dev/hdc1
3. d #這時會要你選擇一個要刪除的分區(qū),就選1
4 w(or)q #完成


新增磁盤分區(qū)


磁盤格式化


mkfs [-t 文件系統(tǒng)格式] 設(shè)備文件名
-t:可以接文件系統(tǒng)格式 例如:ext2 ext3 vfat等(系統(tǒng)有支持的才會生效)


例如:將上一個小節(jié)中產(chǎn)生的 /dev/hdc6 設(shè)置為ext3格式
>mkfs -t ext3 /dev/hdc6


命令2:
mke2fs [-b block大小]? [-i block大小] [-L 卷標(biāo)]? [-cj] 設(shè)備
-b:可以設(shè)置每個block的大小,目前支持1024 2048 4096 bytes三種
-i:每個inode的容量
-c:檢查磁盤錯誤,僅下達(dá)一次時候會進行快速讀取測試,下達(dá)兩次的時候 -c -c 會測試讀寫?
-L:后面接券名稱 (lable),這個lable 是有用的 ,e2lable介紹時談
-j:默認(rèn)是ext2 ,-j改成ext3


磁盤檢驗:fsck,badblock


fsck (file system check):
>fsck [-t 文件類型] [-aCay] 設(shè)備名稱
-t:指定文件系統(tǒng),不過現(xiàn)在linux 很智能,能自動判斷系統(tǒng)類型,該參數(shù)不經(jīng)常用
-a:自動修復(fù)檢查到有問題的扇區(qū)
-A:依據(jù) /etc/fstab 的內(nèi)容,將需要的設(shè)備掃描一次。通常開機就會執(zhí)行此命令
-y:與 a類似,但是某些文件系統(tǒng)僅支持-y這個參數(shù)
-C:可以在檢查過程當(dāng)中 使用直方圖來顯示目前的進度;


badblocks [-svw] 設(shè)備名稱
-s:在屏幕上列出進度
-v:可以在屏幕上看到進度
-w:使用寫入的方式進行測試,建議不要使用此參數(shù),尤其已經(jīng)有文件存在時


磁盤掛載與卸載


掛載


語法:
>mount [-a] [-l] [-L lable名] [-t 文件系統(tǒng)] [-o 額外參數(shù)]


-a:依照配置文件 /etc/fatab的數(shù)據(jù) 將所有未掛載的磁盤都掛載上來。
-l:單純輸入mount 會顯示目前掛載的信息,加上-l可增label 列名稱
-t:與mkfs的參數(shù)非常類似的,可以加上文件系統(tǒng)種類來指定欲掛載的類型
-n:默認(rèn)情況下系統(tǒng)會將實際掛載情況實時寫入/etc/mtab中,以利于其他程序運行,但是在某些情況下(例如單用戶維護模式)為了避免問題,會刻意不寫入,這時候可以使用-n這個參數(shù)
-L:系統(tǒng)除了利用設(shè)備文件名(例如/dev/hedc6)之外,還可以利用文件系統(tǒng)的卷標(biāo)名(lable)來進行掛載,最好為你的文件系統(tǒng)起一個獨一無二的卷標(biāo)名
-o:后面接一些掛載時額外加上的參數(shù),
ro、rw:掛載的文件系統(tǒng)成為只讀,或者可讀寫;
async、sync:此文件系統(tǒng)是否使用同步寫入(sync),或者異步寫入(async)的內(nèi)存機制,參考文件系統(tǒng)的運行方式。默認(rèn)為異步;
auto、noauto:允許此分區(qū)被mount -a自動掛載;
Dev、nodev:是否允許此分區(qū)上創(chuàng)建設(shè)備文件;
suid、nosuid:是否允許分區(qū)含有suid/sgid的文件格式;
exec、noexec:是否允許分區(qū)用戶可執(zhí)行binary文件;
user、nouser:是否允許此分區(qū)上讓任何用戶執(zhí)行mount?一般來說mount只有root用戶可以執(zhí)行,但是下達(dá)user參數(shù),則讓一般 用戶也能夠?qū)Ψ謪^(qū)進行mount
defaults:默認(rèn)值為 rw、suid、dev、exec、auto、nouser、and async;
remount:重新掛載,這是在系統(tǒng)出錯。或者重新更新參數(shù)時,很有用;


掛載ext2/ext3 文件系統(tǒng)
例如
用默認(rèn)的方式,將創(chuàng)建的、/dev/hdc6 掛載到/mnt/hdc6
>mkdir /mnt/hdc6
>mount /dev/hdc6 /mnt/hdc6
>df #查看


例2 :查看當(dāng)前已掛載的文件系統(tǒng),包含文件系統(tǒng)的lable名
>mount -l


掛載CD或DVD光盤


格式化與掛載軟盤


掛載U盤


重新掛載目錄與掛載不特定目錄


使用lable上進行掛載
?利用文件系統(tǒng)的卷標(biāo)名來掛載
>mount -L "vbird" /mnt/hdc6


卸載umount


語法:
>umount? [-fn] 設(shè)備文件名或者掛載點
-f:強制下載,
-n:不更新 /etc/mtab 的情況下卸載


列子
>umount /dev/hdc6


磁盤參數(shù)修改


mknod


設(shè)備都是由文件來代表,文件是通過文件的major和minor數(shù)值 來代表設(shè)備
major 設(shè)備主碼,minor設(shè)備碼


語法
>mknod 設(shè)備文件名 [bcp] [Major] [Minor]
-b 設(shè)置設(shè)備成為一個外部存儲的設(shè)備文件,例如硬盤
-c:設(shè)置設(shè)備成為一個外部輸入的設(shè)備,如鍵盤鼠標(biāo)
-p:設(shè)置設(shè)備名稱成為一個FIFO


例如: mkno /dev/hdc2 b 20 10;
major 和minor有意義,不要隨便修改


e2lable


我們在介紹mkfs 命令時談到了設(shè)備設(shè)備文件系統(tǒng)的卷標(biāo),例如windows c磁 d盤會有個名稱,那就是卷標(biāo)


語法 修改lable
>e2lable 設(shè)備名稱 新的lable名稱
例如
>e2lable /dev/hdc2 “l(fā)abeltest”?


tune2fs


語法
tune2fs [-jlL] 設(shè)備名稱
-l:類似dumpe2fs -h的功能,將superblock 內(nèi)的數(shù)據(jù)讀出來
-L:類似e2label 的功能 可以修改系統(tǒng) label
-j:將ext2的文件系統(tǒng) 轉(zhuǎn)換為ext3;


此命令有很多方法。更多參數(shù) 參考man


hdparm


8.4設(shè)置開機掛載


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


如何開機的時候就將文件系統(tǒng)掛載好,可以直接編輯/etc/fstab;
限制:
1 根目錄/是必須掛載的,而且一定要先于其他mount point 掛載進來
2. 其他掛載點必須為已新建的目錄,可任意指定,但一定要遵守必需的系統(tǒng)架構(gòu)目錄規(guī)則
3.所有掛載點在同一時間內(nèi) 只能掛載一次
4.所有分區(qū)在同一時間內(nèi) 只能掛載一次
5 如果進行卸載,你需要將目錄移到掛載點的外邊


8.4.2特殊設(shè)備loop掛載(鏡像文件不刻錄就掛載使用)


8.5內(nèi)存交換空間(swap)的構(gòu)建


使用物理分區(qū)構(gòu)建swap


使用文件構(gòu)建swap


swap在使用上的限制


8.6文件系統(tǒng)的特殊查看與操作


boot sector和super bolck的關(guān)系


磁盤空間浪費問題


利用GNU的parted進行分區(qū)行為

總結(jié)

以上是生活随笔為你收集整理的鸟哥的linux私房菜_linux磁盘与文件系统管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。