關于磁盤與文件系統大致思路:要想對磁盤進行充分利用,必須要對磁盤進行分區,第二步就是要對分區進行高級格式化,也就是在分區上創建文件系統,在此過程中可以對磁盤的各種屬性進行自定義。打個比方來說,創建磁盤分區好比剛買來一個毛坯房,還未裝修,還不適宜人居住,那么創建文件系統就好比在光禿禿的毛坯房上進行了裝修,這樣才更適于人居住使用。
要想搞懂磁盤,首先就要從根上了解硬盤的組成。
head 磁頭 一個盤片正反兩面對應兩個磁頭,有多個盤片
track 磁道 磁頭旋轉一圈劃分的圓環
sector 扇區 512bytes
cylinder 柱面 所有盤片的相同磁道
設備:ll /dev/ 可見
塊設備(block):支持隨機訪問,數據交換單位是塊
字符設備(character):線性訪問,數據交換單位為字符
設備文件:FHS
/dev
設備文件:關聯至設備的驅動程序;設備的訪問入口
設備號:
主設備號
major:主設備號,區分設備類型,用于標明設備所需要的驅動程序
minor:次設備號,區分同種類型下的不同的設備,是特定設備的訪問入口
mknod:創建塊和字符設備
mknod /dev/testdev c 110 1
-m MODE:創建后的設備文件的訪問權限,利用系統調用
設備文件名:ICANN
磁盤
SCSI SATA USB SAS:/dev/sd[a-z]
并口:同一線纜可以接多塊設備
SCSI:
寬帶:16-1
窄帶:
主分區和擴展分區表示:1-4
邏輯分區:5+
查看分區:cat /proc/partitions
通知內核強制重讀磁盤分區表:
cnetos 6:partx -a [device]
元數據不包括文件名,文件名保存在目錄
元數據:inode
文件使用磁盤有不連續的塊,碎片
文件元數據:inode 數據塊指針
********************
inode
128bytes
block=2^n sector
符號鏈接文件:存儲數據指針的空間當中存儲的是真實文件的訪問路徑
塊和inode比例
需要預留一部分塊空間給管理員
如何判斷inode和block是否使用,0表示空,1表示使用
bitmap index:位圖索引
找一空間,每一位對應block
GDT:快組描述符
元數據區域:
1.inode
2.inode位圖
3.block位圖
GDT:
stat查看元數據
文件名存放在目錄上,與inode一一對應
低級格式化
高級格式化
******************
VFS:Virtual File System
linux文件系統:ext2-4,xfs(centos 7 defaults),relserfs,btrfs(測試階段)
光盤:ISO9660
網絡文件系統:nfs,cifs
集群文件系統,gfs2,osfs2
內核級分布式文件系統:ceph
windows的文件系統:vfat,ntfs
偽文件系統:proc,sysfs,tmpfs,hugepagefs
Unix的文件系統:UFS,FFS,JFS
交換文件系統:swap
用戶空間得分布式文件系統
************************
虛擬內存
32位 4G內存可用
交換分區
創建文件系統工具
mkfs.ext4
檢測及修復文件系統的工具
fsck
查看其屬性的工具
dumpe2fs,tune2fs
調整文件系統特性
tune2fs
***
journal
降低磁盤碎片
日志區,在處理數據時先放在日志區,
如果遇到特殊情況要修復時,優先修復日志區中的內容
鏈接:指向同一文件的不同路徑
硬鏈接:指向同一inode的多個路徑
1.目錄不支持硬鏈接
2,。不能跨文件系統,各分區inode各自管理,從0開始
3。引用次數增加
4.大小相同
符號鏈接:指向一個文件的指針指向另一文件路徑
1.符號鏈接與文件時兩個單獨文件,有各自inode
2.可跨分區
3.文件大小為指向的路徑的字符串的字節數
ls -i example.txt
ls -i命令列出整個目錄文件,即文件名和inode號碼:
ls -i /etc
理解了上面這些知識,就能理解目錄的權限。目錄文件的讀權限(r)和寫權限(w),都是針對目錄文件本身。由于目錄文件內只有文件名和inode號碼,所以如果只有讀權限,只能獲取文件名,無法獲取其他信息,因為其他信息都儲存在inode節點中,而讀取inode節點內的信息需要目錄文件的執行權限(x)。
先創建分區,再創建文件系統,
內核中有相關的文件系統驅動程序,可使用lsmod查看
lsmod :查看內核已經加載的驅動程序
文件系統管理工具:由用戶控件的應用程序提供
1.
mkfs -t ext2=mkfs.ext2
blkid /dev/sda6
2.
mke2fs ext專用工具
-t ext4 指定要創建的文件系統類型
-b {1024|2048|4096(MAX默認)}指定文件系統的block大小
-L 卷標
-j 創建有日志功能的文件系統的ext3
mke2fs -j=mke2fs -t ext3=mkfs.ext3
-i #:每多少字節一個inode,bytes-per-inode,
指明inode與字節的比率,即多少字節創建一個inode,
默認為
-N # 直接指明要給此文件系統創建的inode的數量
-O [^]FEATURE :以指定的特性創建目標文件系統,啟用某種特性
-m #指定預留空間百分比:5 –>5%s
3.改變卷標
e2label 卷標的查看和設定
e2label /dev/sda8 sb
4.tune2fs 查看修改ext系列文件的某些屬性
不可修改:塊大小,
修改文件系統屬性
-j ext2–>ext3
-L label:修改卷標
-m #:調整預留空間百分比
-O FEATURE 啟用或者關閉某種特性
-o [^]mount_options:開啟或者關閉某種默認掛載選項
acl
^acl
5.dumpe2fs:顯示所有塊組信息,類似tune2fs
-d 只顯示superblock
6.
fsck命令:用于實現文件系統檢測的工具
因進程意外終止或者系統崩潰等原因導致進程非正常終止,可能造成文件損壞
此時要進行離線修復
e2fsck device
-y 對所有問題回答yes
-f 強制檢測
fsck.ext4
-a:無需交互修復所有錯誤
-r 交互式修復
通用命令
7.
blkid
-L label 根據卷名定位分區
-U UUID
8。
swap文件系統
linux'上的交換分區必須使用獨立的文件系統
且文件系統的System ID必須為82
創建swap設備:
mkswap
-L :指明卷標
-f : 強制
9.
windows無法識別Linux的文件系統,要交叉使用時,
應該使用同時支持的文件系統
10.
根文件系統之外的其他文件愛系統想要能夠被訪問,都必須通過關聯至根文件系統上的某個目錄來實現,此關聯操作即為掛載:此目錄為掛載點
掛載點:用于作為另一個文件系統的訪問入口
1.事先存在
2.應該使用未被或不會被其他進程使用到的目錄
3.掛載點下原有的文件將不會被隱藏
11.
mount
-r 只讀filesystem
-w 讀寫掛載
-n 默認情況下,設備掛載或卸載的操作會同步更新至/etc/fstab中
-n禁止更新同步
-t vfs :指明要掛載的設備上的文件系統的類型,多數情況下可省略,
此時mount會通過blkid來判斷要掛載的設備的文件系統類型
-L label:掛載時以卷標的方式指明設備
mount -L lable dir
-U UUID 以UUID的方式指明設備
-o options:掛載選項
sync/async 同步/異步操作:
異步:先在內存寫完,再寫入磁盤
atime/noatime:文件或目錄被訪問時是否更新其訪問時間戳
diratime/nodiratime:目錄訪問時,是否保存訪問時間戳
remount:重新掛載;
acl;支持使用facl功能訪問控制列表
1.mount -o acl device dir
2.tune2fs -o acl device
ro 只讀
rw 讀寫
/dev/nodev:此設備上是否允許創建設備文件
exec/noexec 是否允許運行此設備上的程序文件
auto/noauto:自動掛載
/user/nouser:是否用戶掛載此文件系統
suid/nosuid:是否允許程序上的suid和sgid特殊權限生效
default:
12。 實現將目錄綁定至另一個目錄上,作為臨時訪問入口
mount –bind 源目錄 目標目錄
13.查看當前系統所有已掛載的設備
1.mount
2.cat /etc/mtab
3.cat /proc/mounts
掛載光盤
mount -r /dev/cdrom mount_point
掛載U盤:需事先識別U盤的設備文件
mount -r
14.
umount
注意:正在被進程訪問的掛載點無法卸載
查看被哪些進程所占用
lsof mount——point
fuser -v mount_point
-km /mnt:踢出正在使用/mnt的用戶
終止所有某掛載點的進程
fuser -km
15
掛載本地回環設備
mount -o loop /path/to/some_loop mount_point
16
交換分區
創建交換分區:mkswap
啟動禁用
swapon
-a:定義在/etc/fstab文件中的所有swap設備
swapoff
/etc/fstab
設備除根文件系統以外的其它文件系統能夠開機時的掛載
每行定義一個要掛載的文件系統及相關屬性
6個字段:
1.要掛載的設備
label
UUID偽文件系統
2.掛載點
swap 類型的設備的掛載點為swap
3.文件系統類型
4.掛載選項
defaults:默認
如果使用多個掛載選項,彼此間以逗號分隔
defaults,acl,noatime,noexec
5.轉儲頻率
0:從不備份
1.每天備份
2.隔天備份
6.自檢持續
0:不自檢
1.首先自檢,通常只能是根文件系統可用
2.次級自檢
mount -a:可自動掛載定義在/etc/fstab中的所有支持自動掛載的設備
16
df:disk free
-h 人類可讀
-l 本地可讀
-i inode的使用狀態
du:顯示文件大小
-s :sumary
-h human-readable
原創文章,作者:000,如若轉載,請注明出處:http://www.www58058.com/41618
文章對磁盤管理各方面知識整理的很全面,層次結構也很清晰,但是對于硬盤基礎我們能夠給出一些圖片來敘述各個硬盤的各個組件會更好,同時,也希望作者能通過差資料,將筆記中的關鍵字組織成通順的話。