close

低級格式化: 廠商設置,用於創建磁盤隧道

Paration:劃分獨立的文件系統

MBR:主引導記錄(512Byte) 只關重要
 Master Boot Record
      446Bytes:BootLoader
      64Bytes:
              16Bytes:標識一個主分區
      2Bytes:Magic Number

主分區選擇一個作為擴展分區
主+擴戰<=4 做多只能有4個主分區
擴展分區裏存放指針指向更大的空間在更大的空間可以劃分多個分區

按柱面存儲同時按柱面分區

磁盤的讀寫與延遲:磁頭轉到數據所在的相應磁道以及數據需要再轉一圈與磁頭相碰

磁道越靠近外圍,讀寫速率越高,因此經常訪問的數據存儲在磁道外圍

文件系統本身不在分區上,文件系統裏的數據在分區上,文件系統只是一種軟件

文件系統:
     元數據存儲區:
         塊位圖:位圖為0表示沒用過的邏輯存儲區
         iNode去
     數據存儲區:
         邏輯存儲單元(block 磁盤塊) 有編號

iNode(索引):存儲有屬主屬組擴展屬性等,就是沒有文件名
文件名在目錄下

例如:/var/log/messages
 先在iNode位圖中找到根所對應的iNode號
 再根據根的iNode號找到對應的存儲單元
 根的存儲單元裏存儲的是var文件名以及var對應的iNode號
 回到塊位圖
 根據找到var對應的iNode,找到對應的存儲單元
 var的存儲單元裏存儲的是log文件名及log對用的iNode
 回到塊位圖
 根據找到log的iNode,找到對應存儲單元
 log的存儲單元裏存儲的是messag文件名及messag對應的iNode
 回到塊位圖
 根據message的iNode,找到對應的存儲單元

所以目錄不是容器,它也是個文件,是個路徑映射表

創建文件 例如/backup/a.txt 假設backup目錄已經存在
 先掃描iNode位圖找一個沒人用的iNode號
 找backu對應的iNode,根據iNode找到存儲塊
 存儲塊的內容為a.txt及剛開始的iNode號
 到塊位圖中給其分配n個存儲塊
 最開始找的iNode號即指向這些存儲塊

刪除文件:
 將對應的iNode號標為未使用
 將對應的存儲塊標記為空(原來的數據並未刪除)新的數據來時選擇直接覆蓋

同一分區剪切 速度比較快
只是將原來的目錄裏對應的映射內容刪除了
在新的目錄裏創建映射
文件的iNode和磁盤塊(存儲單元)都未動

每個分區有很多塊組,沒一個塊組都有源數據存儲區和數據存儲區

硬鏈接和符號鏈接(軟鏈接)

硬鏈接指向的是同一個文件  iNode號相同,只是有不同的路徑
軟鏈接指向的是不同的文件 iNode號不同

硬鏈接刪除其中一個也能訪問另一個
軟鏈接刪除a-->b中的b 則a不能訪問   

找到/backup/a/m.txt的iNode 但是該iNode不是指向存儲塊而是指向/backup/b/n.txt的路徑名稱
則該/backup/a/m.txt文件的大小顯示為/backup/b/n.txt的字符個數

ln [-s -v] SRC DEST
硬鏈接:
 1、只能對文件創建,不能用於目錄
 2、不能跨文件系統
 3、創建硬鏈接會增加文件被鏈接的次數
 4、原文件被刪除後仍能通過鏈接文件訪問內容
符號鏈接:
 1、可用於目錄
 2、可跨文件系統
 3、不會增加被鏈接文件的鏈接次數
 4、大小為指定路徑所包含的字符個數
 5、原文件刪除後鏈接文件不能訪問原內容

du    
 -s
 -h

df:分區使用情況
 -i iNode
 -h
 -P 在同一行顯示

/dev
 major number
 minor number
    標識同一類型的不同設備
    主次設備號均放在iNode中,不占實際物理內存

mknod  創建塊設備文件或字符設備文件
mknod [options] NAME TYPE [MAJOR MINOR]
  -m MODE

硬盤設備的設備文件名:
IDE,ATA: hd
STAT:sd
SCSI: sd
USB: sd
 a,b,c...來區別同一種類型下的不同設備

IDE
 第一個IDE口:主、從
         /dev/hda /dev/hdb
 第二個IDE口:主、從
         /dev/hdc /dev/hdd

sda,sdb,sdc...

hda:
 hda1:第一個主分區
 hda2:
 hda3:
 hda4:
 hda5:第一個邏輯分區

查看當前系統識別了幾塊硬盤
fdisk -l [/dev/to/some_device_file]

文件系統屬於內核的功能

mkfs -t 文件系統類型

VFS(Virtual File System)
 mkdir 這個命令可能只對ext3這個文件類型的系統有效,對於其他文件系統無效,為了讓mkdir對於所有類型的文件系統都有效,在所有不同類型的文件系統上抽象出一個VFS
 VFS為mkdir提供統一的接口

一個分區就是一個獨立的文件系統

只有根是自引用的
例如:/usr/var 假若根在第一個分區,若將usr關聯到第二分區,則usr本身在第一分區。而usr裏的內容在第二分區,此時usr只是作為第二分區的入口,本身屬於第一分區,不關聯的話,usr裏的內容還是在第一分區

根所在的分區稱為根分區或者根文件系統

管理磁盤分區
fdisk /dev/sda
 p:顯示當前硬件的分區,包括沒保存的改動
 n:創建新分區
     e:擴展分區
     p:主分區
 d:刪除分區
 w:保存退出
 q:不保存退出
 t: 修改分區類型
 l:顯示所支持的所有類型

partprobe 讓內核重讀分區表

進程在用戶模式,用戶空間

內核模式,內核空間

CPU有4個級別圓環。由內往外ring0,ring1,ring2,ring3,ring4
 ring0 內核 與外部硬件交互
 ring1 不使用
 ring2 不使用
 ring3 用戶進程

blocksize:1024,2048,4096Bytes 即 1k 2k 4k linux上

設備文件 套接字文件 管道文件都不需要磁盤塊 所以沒有文件大小

iNode map
         通過掃描位圖來判斷iNode和磁盤塊是否沒被錄用
block map

將數據存儲區分為多個塊組,每個塊組都有各自的iNode bitmap 和
block bitmap

塊組的大小個數由源數據區的super block 確定
為了防止super block崩潰,可有多個備份

superblock 包含的信息:
         有幾個塊組
         每個塊組有多少個磁盤塊
         空閑iNode
         空閑磁盤塊
         等等

塊組描述符表(GDT group description table)

boot block blockgroup0 blockgroup1 blockgourp2...

blockgroup0:superblock
         GDT
         block bitmap
         iNode bitmap
         iNode table
         data blocks

超級塊
描述整個分區的文件系統信息,例如塊大小,文件系統版本號,上次mount時間等待
超級快在每個組的開頭都有一份拷貝

塊組描述符
由很多塊組描述組成,整個分區分成多個個塊組對應有多少個塊組描述符
每個塊組描述符存儲一個組的描述信息,例如在這個塊組中從哪兒開始是iNode表,從哪兒開始是數據塊,空閑的iNode和數據塊還有多少等等。
和超級塊類似,塊組描述符表在每個塊組的開頭都有一份拷貝,這些信息十分重要,一旦超級塊意外損壞就會丟失整個分區的數據,一旦塊組描述符意外損壞就會丟失整個塊組的數據,因此他們有很多拷貝

塊位圖(Block Bitmap)
塊位圖就是用來描述整個塊組中哪些塊已用哪些空閑。它本身占一個塊,其中的每個bit代表本塊組中的一個塊,這個bit為1表示塊已用,為0表示該空閑塊可用

iNode位圖
和塊位圖類似,本身占一個塊,其中的每個bit表示一個inode是否空閑可用

inode表(inode Table)
一個文件除了數據需要存儲之外,一些描述信息也需要存儲,例如文件類型(常規、目錄、符號鏈接等),權限,文件大小,創建/修改/訪問時間等,也就是ls -l命令看到的那些信息,這些信息存在inode中而不是數據塊中
每個文件都有一個inode,一個塊組中的所有inode組成了inode表
inode表占多少個塊在格式化時就要決定並寫入塊組描述符中
mke2fs格式化工具的默認策略是一個塊組有多少個8KB就分配多少個inode

數據塊(Data Block)
對於常規文件,文件的數據存儲在數據塊中
對於目錄,該目錄下的所有文件名和目錄名存儲在數據塊中,文件名保存在它所在目錄的數據塊中
除文件名之外,ls -l命令看到的其它信息都保存在該文件的inode中
目錄也是一種文件,是一種特殊類型的文件
對於符號鏈接,如果目標路徑名較短則直接保存在inode中以便更快地查找,如果目標路徑名較長則分配一個數據塊來保存
設備文件、FIFO和socket等特殊文件沒有數據塊,設備文件的主設備號和次設備號保存在inode中

iNode號內容有 MODE,Owner Info,Group Info,Size,TimesStamps,磁盤塊的序列號,主次設備號

磁盤分割在文件系統創建的那一刻起已經把元數據區域預留出來

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 成功运行 的頭像
    成功运行

    成功运行的部落格

    成功运行 發表在 痞客邦 留言(0) 人氣()