Linux 學習「linux磁碟與檔案系統管理」

2021-08-21 05:29:52 字數 2861 閱讀 2978

檔案系統一般將許可權與屬性放到inode中,將資料放到data block中;

inode:記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的block號碼;

block:實際記錄檔案的內容,若檔案太大會占用多個block;

ext2是索引式的檔案系統,u盤則是fat,並沒有inode,而inode則相當於索引;

block要有效選擇,太小,則乙個檔案會佔多個block,太大,因為至少乙個檔案佔乙個block會造成浪費,block大小還會影響最大總容量與最大單一檔案大小;

每個inode大小固定為128bytes,每個檔案都僅會佔乙個inode而已,檔案系統能夠建立的檔案數量與inode數量有關,系統讀取檔案時需要先找到inode並分析inode所記錄的許可權與使用者是否符合,符合才會去讀取block的內容;

inode記錄乙個block需要4byte,inode會使用間接連線來記錄,就是使用block輔助記錄;

超級塊是記錄整個檔案系統相關資訊的地方,沒有超級塊就沒有這個檔案系統了,超級塊還會記錄乙個validbit數值,若檔案系統已經被掛載了那麼vlid bit會被記錄為0,若違背掛載則記錄為1;

超級塊非常重要,如果超級塊死掉了,檔案系統可能要花很長時間去拯救,一般來說,超級塊大小為1024bytes,可以使用dumpe2fs命令來呼叫superblock的資訊來看;

每乙個block group都可能含有超級塊,但是我們說每乙個檔案系統僅有乙個超級塊,事實上,除了第乙個block group內會含有超級塊之外,後續的block group不一定會有超級塊,若含有也主要是給第乙個block group內的superblock做備份用的,這樣就可以進行superblock的救援活動了;

檔案系統描述說明,記錄了每個block group開始與結束的block號碼,以及說明每個區段分別介於哪乙個block號碼之間;

block bitmap塊對照表,記錄了哪些塊是空的可以用的,刪除也是同樣的;

inode bitmap inode對照表,與塊對照表作用類似;

df顯示現在掛載的裝置,可以使用-th;

在xfs的檔案系統中可以使用xfs_growfs;

在ext2中,新建乙個目錄會分配乙個inode與至少一塊block給該目錄,block用來記錄目錄下的檔名與該檔名占用的inode號碼資料,用ls -i可以檢視inode號碼;

我們可以通過判斷inode來看看不同檔名是否為相同檔案;

linux是通過乙個名叫 virtual filesystem switch(虛擬檔案系統,vfs)的核心功能去讀取檔案系統的,也就是說整個linux的檔案系統都是vfs在管理;

df -h以易讀的方式顯示,-h則是以1000為進製代替1024,-a將所有的特殊檔案格式都列出來,-i將inode列出,通常inode比block的剩餘數量要多;

/proc裡的資料是linux所需要的載入的系統資料,掛載在記憶體中,所以不佔任何磁碟空間;

/dev/shm是利用記憶體虛擬出來的磁碟空間,所以在此目錄下新建任何資料檔案,訪問速度是非常快的,在記憶體內工作,所以新建的東西在下次開機就消失了;

硬連線就是在某個目錄下新建一條檔名連線到某inode號碼的關聯記錄;

通常硬鏈結不會改變inode與磁碟空間大小變化,硬鏈結只能在同一檔案系統下進行,並且不支援連線到目錄;

符號連線就是快捷方式用ln -s,symbolic link連線會占用inode與block;

df  /可以看掛載目錄,fdisk /dev/sdx 不要加數字,輸入m;

mkfs為格式化;

fsck可以用來修復磁碟,通常使用這個命令是系統出現極大問題時導致開機要進入單使用者模式下進行維護的時候才使用的,fsck在掃瞄硬碟時會造成部分檔案系統的損壞,所以執行fsck時,檢查的分割槽必不可掛載到系統上;

badblocks用來檢測檔案系統是否出錯;

要將檔案系統掛載到linux下要使用mount這個命令,掛載到目錄下的東西會暫時消失;

mount -o在單使用者維護模式時非常重要,那時候根目錄會被掛載為唯讀;

umount進行解除安裝;

fdisk -l檢視裝置;

mknod可以用來設定主裝置碼與次裝置碼,其中b為設定成外部儲存裝置如硬碟,c設定成外部輸入裝置,如鍵盤滑鼠,p則是fifo檔案;

可以用e2label來修改卷標;

可以在/etc/fstab裡修改開機掛載,根目錄必須掛載,而且先於其他,掛載點必須為已經新建的目錄,可以任意指定但是要遵守系統目錄框架原則,所有掛載點與分割槽在同一時間只能掛載一次,若進行解除安裝需要將工作目錄移到掛載點之外;

修改掛載為 /dev/sdxx /mnt/sdxx vfat defaults 1 2;

mount -a 根據/etc/fstab裡的記錄將未掛載的掛載上去;

實際檔案的掛載記錄到/etc/mtab與/proc/mounts裡的,每次更改檔案,都會記錄在這裡;

當輸入fstab錯誤導致無法順利開機,從而進入單使用者維護模式,可以使用mount -n -o remount,rw / ;

特殊裝置可以使用loop來掛載,mount -o loop /root/centos5.2_x86_64.iso /mnt/centos_*** 這種;

dd if=/dev/zero of=/home/loopdev bs=1m count=512 ,mkfs -t ext3 /home/loopdev格式化,mount -o loop /home/loopdev /media/cdrom/ 這是強行掛載乙個檔案;

使用檔案構建swap,先使用dd,然後mkswap格式化,free,swapon 檔案 =>啟動,free,可以使用swapoff關閉swapfile;

目前64位機,swap的總量最大僅達到64g;

superblock的大小為1024bytes;

fdisk無法支援高於2tb以上的分割槽,這時候需要使用parted來處理;

Linux學習 記憶體與磁碟管理

檢視命令 dfdu du 與 ls 的區別,du 讀取的是檔案真實占用的大小,ls 讀取的整體檔案所占用的大小,該檔案可能包含一些空洞儲存來用於其它用途 ext4檔案系統 其他常見的檔案系統還有 xfs,ntfs 行動硬碟的檔案格式,需安裝額外軟體 相關常用命令 facl 檔案訪問控制列表 磁碟配額...

Linux學習筆記 Linux磁碟管理

硬碟介面型別 序列介面 linux中磁碟裝置檔案存放在 dev dev file中,裝置的命名方式如下 同一裝置的不同分割槽用阿拉伯數字命名 1,2,分割槽管理工具 fdisk,parted,sfdisk 檢視核心是否已經識別新的分割槽 通知核心重新讀取硬碟分割槽表 windows檔案系統 fat3...

Linux磁碟學習小結

最近在看 鳥哥的linux私房菜 學習linux下關於磁碟的知識,在此做個小結 目前個人計算機常見的磁碟介面有 ide 和 sata 主流 兩種。對於 ide 介面,計算機一般提供2個介面,而每個介面又可以連線2個 ide 裝置,故在linux其裝置名稱為 dev hd a d 但由於種種原因,id...