您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux 中怎么管理磁盤與文件系統,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
磁盤分區表主要有兩種格式,一種是限制較多的 MBR 分區表,一種是較新且限制較少的 GPT 分區表。 MBR 分區表中,第一個扇區最重要,里面有:(1)主要開機區(Master boot record, MBR)及分區表(partition table), 其中 MBR 占有 446 Bytes,而 partition table 則占 有 64 Bytes。 GPT 分區表除了分區數量擴充較多之外,支持的磁盤容量也可以超過 2TB。
文件系統通常會將這兩部份的數據分別存放在不同的區塊,權限與屬性放置到 inode 中,至于實際數據則放置到 data block 區塊中。 另外,還有一個超級區塊 (superblock) 會記錄整個文件系統的整體信息,包括inode 與 block 的總量、使用量、剩余量等。
superblock:記錄此 filesystem 的整體信息,包括inode/block的總量、使用量、剩余量,以及文件系統的格式與相關信息等。
inode:記錄文件的屬性,一個文件占用一個inode,同時記錄此文件的數據所在的 block號碼。
block:實際記錄文件的內容,若文件太大時,會占用多個 block 。
Ext2 格式化后有點像下面這樣:
每一個區塊群組(block group)的六個主要內容說明如下:
data block (數據區塊) data block 是用來放置文件內容數據地方,在 Ext2 文件系統中所支持的 block 大小有 1K, 2K及 4K 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode的記錄啦。
inode table (inode 表格)
inode 的內容在記錄文件的屬性以及該文件實際數據是放置在哪幾號 block 內! 基本上,inode 記錄的文件數據至少有下面這些: 該文件的存取模式(read/write/excute); 該文件的擁有者與群組(owner/group); 該文件的容量; 該文件創建或狀態改變的時間(ctime); 最近一次的讀取時間(atime); 最近修改的時間(mtime); 定義文件特性的旗標(flag),如 SetUID...; 該文件真正內容的指向 (pointer);
Superblock (超級區塊) Superblock 是記錄整個 filesystem 相關信息的地方, 沒有 Superblock ,就沒有這個filesystem 了。他記錄的信息主要有:
block 與 inode 的總量; 未使用與已使用的 inode / block 數量; block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128Bytes 或 256Bytes); filesystem 的掛載時間、最近一次寫入數據的時間、最近一次檢驗磁盤 (fsck) 的時間 等文件系統的相關信息; 一個 valid bit 數值,若此文件系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。
Filesystem Description (文件系統描述說明) 這個區段可以描述每個 block group 的開始與結束的 block 號碼,以及說明每個區段 (superblock, bitmap, inodemap, data block) 分別介于哪一個 block 號碼之間。這部份也能 夠用 dumpe2fs 來觀察的。
block bitmap (區塊對照表) 如果你想要新增文件時總會用到 block 吧!那你要使用哪個 block 來記錄呢?當然是選擇“空 的 block ”來記錄新文件的數據啰。 那你怎么知道哪個 block 是空的?這就得要通過 block bitmap 的輔助了。從 block bitmap 當中可以知道哪些 block 是空的,因此我們的系統就能夠 很快速的找到可使用的空間來處置文件啰。 同樣的,如果你刪除某些文件時,那么那些文件原本占用的 block 號碼就得要釋放出來, 此 時在 block bitmap 當中相對應到該 block 號碼的標志就得要修改成為“未使用中”啰!這就是 bitmap 的功能。
inode bitmap (inode 對照表) 這個其實與 block bitmap 是類似的功能,只是 block bitmap 記錄的是使用與未使用的 block 號碼, 至于 inode bitmap 則是記錄使用與未使用的 inode 號碼啰!
dumpe2fs /dev/vda5
日志式文件系統 (journal) 會多出一塊記錄區,隨時記載文件系統的主要活動,可加快 系統復原時間;
將文件系統與目錄樹結合的動作我們稱為“掛載”。重點是:掛載點一定是目錄,該目錄為進入該文件系統的入口。因此并不是你有任何文件系統都能使用,必須要“掛載”到目錄樹的某個目錄后,才能夠使用該文件系統的。
df:列出文件系統的整體磁盤使用量; du:評估文件系統的磁盤使用量(常用在推估目錄所占容量)
實體鏈接與符號鏈接: ln
Hard Link (實體鏈接, 硬式鏈接或實際鏈接)
假設我系統有個 /root/crontab 他是 /etc/crontab 的實體鏈接,也就是說這兩個文件名鏈接到同一個 inode 。
Symbolic Link (符號鏈接,亦即是捷徑)
這個 Symbolic Link 與 Windows 的捷徑可以給他劃上等號,由Symbolic link 所創建的文件為一個獨立的新的文件,所以會占用掉 inode 與 block。
如果我們想要在系統里面新增一顆磁盤時,應該有哪些動作需要做的呢:
對磁盤進行分區,以創建可用的 partition ;
對該 partition 進行格式化 (format),以創建系統可用的 filesystem;
若想要仔細一點,則可對剛剛創建好的 filesystem 進行檢驗;
在 Linux 系統上,需要創建掛載點 (亦即是目錄),并將他掛載上來;
觀察磁盤分區狀態
lsblk 列出系統上的所有磁盤列表
blkid 列出設備的 UUID 等參數
parted 列出磁盤的分區表類型與分區信息
磁盤分區: gdisk/fdisk
磁盤格式化(創建文件系統)
XFS 文件系統 mkfs.xfs
XFS 文件系統 for RAID 性能優化 (Optional)
EXT4 文件系統 mkfs.ext4
其他文件系統 mkfs
文件系統檢驗
xfs_repair 處理 XFS 文件系統
fsck.ext4 處理 EXT4 文件系統
文件系統掛載與卸載
mount
單一文件系統不應該被重復掛載在不同的掛載點(目錄)中;
單一目錄不應該重復掛載多個文件系統;
要作為掛載點的目錄,理論上應該都是空目錄才是。
設置開機掛載
開機掛載 /etc/fstab 及 /etc/mtab,其實 /etc/fstab (filesystem table) 就是將我們利用 mount 指令進行掛載時, 將所有的選項與參數寫入到這個文件中就是了。
內存交換空間(swap)之創建
使用實體分區創建swap
使用文件創建swap
關于Linux 中怎么管理磁盤與文件系統就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。