Linux磁盤及文件系統
CPU MEMORY(RAM) I/O
I/O:disks entercard
Disks:持久存儲數據
接口類型:
IDE(ata):并行 133MB/s
SCSI:并口Ultrascsi320 320MB/s Ultrascsi640 640MB/s
SATA:串口 6gbps
SAS:串口 6gbps
USB:串口 480MB/s
并口:同一線纜可以接多塊設備
IDE:兩個 主 從
SCSI:
寬帶 16-1
窄帶 8-1
串口:
同一線纜只能接一塊設備
硬盤:機械硬盤,固態硬盤
Track:磁道
Sector:扇區 512bytes
Cylinder:柱面
分區劃分是基于柱面:
平均尋道時間:
5400rpm 7200rpm 15000rpm
Linux的哲學思想:一切皆文件
設備類型:
塊設備:隨機訪問,數據交換單位是“塊“
字符型設備:線性訪問,數據交換單位是”字符“
設備文件FHS
/dev
設備文件:關聯至設備的驅動程序,設備的訪問入口
設備號
major:主設備號,區分設備類型,用于表明設備所需要的驅動程序
mior:次設備號,區分同種類型下的不同的設備,是特定設備的訪問入口
mknod
make block or character special file
mknod [option] …name type [major minor]
mode:創建mode設備文件的訪問權限
設備文件名ICANN
磁盤:
IDE:/dev/hd[a-z]
SCSI SATA SAS USB :/dev/sd[a-z]
分區:
/dev/sda#
注意:CentOS6 和CentOS7統統將硬盤設備文件標識為/dev/sd[a-z]#
引用設備的方式
設備文件名
卷標
UUID
磁盤分區:MBR GPT
MBR:0 sector
分為三部分:
446bytes:bootloader程序,引導啟動操作系統的程序
64bytes:FAT文件系統分區表,每16個字節表示一個分區
2bytes:MBR區域得有效性標識55AA為有效
4主分區
3主1擴展
N邏輯分區
主分區和擴展分區的表示1-4
邏輯分區5+
fdisk命令
1.查看磁盤分區信息
fdisk -l [-u] [device…]
2.管理分區 fdisk device
fdisk提供了一個交互式接口來管理分區,他有許多字命令,分別用于不同的管理功能,所有的操作均在內存中完成,沒有直接同步到磁盤,直到使用-w命令寫入磁盤
常用命令
n:創建新分區
d:刪除已有分區
t:修改分區類型
l:查看所有已知ID
w:保存并退出
q:不保存退出
m:查看幫助
p:顯示現有分區信息
注意:在已經分區并且已經掛載其中某個分區的磁盤設備上創建新分區,內核可能在創建完成后無法直接識別
查看:cat /proc/partitions
通知內核強制重讀磁盤分區表
Centos5:partprobe [device]
Centos6,7:partx kpartx
partx –a [device]
kpartx –af [device]
分區創建工具:parted fsdisk
創建文件系統
格式化:低級格式化(分區之前進行,劃分磁道)
高級格式化(分區之后對分區進行,創建文件系統)
元數據區,數據區
文件元數據:index node
大小 權限 屬主屬組 時間戳 數據塊指針
鏈接文件:存儲數據指針的空間當中存儲的是真實的文件訪問路徑
設備文件:存儲數據指針的空間當中存儲的是設備號
Bitmap index:位圖索引
VFS virtual file system
Linux文件系統:
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構,即在存儲設備上組織文件的方法,操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,從系統角度看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統,負責為用戶建立文件,存入,讀出,修改,轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
ext2(無日志功能),3,4 xfs reiserfs btrfs
光盤:iso9660
網絡文件系統:nfs cifs
集群文件系統:gfs ocfs2
內核是分布式文件系統:ceph
Windows文件系統:vfat,ntfs
偽文件系統:proc sysfs tmpfs hugepagefs
Unix文件系統:UFS FFS JFS
交換文件系統 swap
用戶空間的分布式文件系統:mogilefs moosefs glusterfs lustre
RAW 未經處理或格式化產生的文件系統
文件系統管理工具
創建文件系統工具
mkfs
mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.xfs …
檢測及修復文件系統的工具
fsck
fsck.ext2 fsck.ext3…
查看其屬性的工具
dumpe2fs tune2fs
調整文件系統特性
tune2fs
鏈接文件:訪問同一個文件的不同路徑
硬鏈接:多個文件路徑指向同一個inode
特性:目錄不支持硬鏈接,避免循環鏈接
硬鏈接不能跨越文件系統
創建硬鏈接會增加inode引用計數
ln src link_src
軟鏈接(符號鏈接)指向一個文件路徑的另一個文件路徑
特性:符號鏈接與原文件是兩個各自獨立的文件,有各自的inode,對原文件創建符號鏈接,不會增加原文件鏈接計數
支持對目錄創建符號鏈接
可以跨文件系統
刪除符號鏈接文件不影響原文件,刪除原文件,符號鏈接指定的鏈接不存在,符號鏈接無效
注意:符號鏈接文件大小是其指定的文件的路徑字符串的字節數
ln –s src link_src
內核及文件系統的組成部分
文件系統驅動:由內核提供
文件系統管理工具:由用戶空間的應用程序提供
創建文件系統的工具:
mkfs.ext2 mkfs.ext3 mkfs.ext4 向后兼容
mkfs –t ext2=mkfs.ext2
ext系列文件系統專用工具Mke2fs
mke2fs [option] device
-t {ext2|ext3|ext4} 指明要創建文件系統類型
-b {1024|2048|4096} 指明文件系統塊大小
-L label 指明卷標
-j 創建有日志功能的文件系統
-i # byte-per-inode 每多少字節一個inode 指明inode與字節比率
-N # 直接指明要給此文件系統創建的inode的數量
-O [^]feature 以指定的特性創建目標文件系統
has_journal
-m # 指定預留空間百分比數值
e2label 卷標查看與設定
查看 e2label device
設定 e2label device label
tune2fs命令:查看或修改系列文件系統的某些屬性
Adjust tunable filesystem parameter on ext2/ext3/ext4 filesystem
塊大小創建后不可修改
-l 查看超級塊的內容
修改指定文件系統的屬性
-j ext2àext3
-L label 修改卷標
-m# 調整預留空間百分比
-O [^]feature 開啟或關閉某種特性
-o [^] mount_options 開啟或關閉某種默認選項
dumpe2fs命令:顯示ext系列文件系統相關屬性信息
dumpe2fs [-h] device
fsck 用于實現文件系統檢測的工具
因進程意外終止或系統崩潰等原因導致電腦操作非正常終止時,此時,因檢測并修復文件系統,建議離線進行
ext系列文件系統的專用工具
e2fsck check a linux ext2/ext3/ext4
e2fsck [options] device
-y 對所有問題自動回答yes
-f 即使文件處于clean狀態,也強制進行檢測
fsck check and clean a linux file system
-t fstype 指明文件系統類型
Fsck –t ext4 = fsck.ext4
-a 無需交互而自動修復所有錯誤
-r 交互修復
blkid command-line to locate/print block device
blkid device
blkid –L label 根據label定位設備
blkid –U uuid 根據uuid定位設備
mount命令掛在文件系統
mount device mount_point
設備名 掛載點
通過cat /etc/mtab文件可以查看當前已經掛在的設備、
對于掛載點,這個掛載點必須實現存在,建議使用空目錄,進程在使用的設備不能被卸載,提示設備正忙,device is busy。
參數
-L label 指明卷標
-U uuid 指明UUID
-t vsftype 指明掛載的設備上的文件系統類型
-r readonly 只讀
-w read and write 讀寫
-n 不跟新/etc/mtab
-a 自動掛載所有支持自動掛載的設備(定義在/etc/fstab文件中,且掛載選項中有anto功能)
-B –bind綁定目錄到另一個目錄上
查看內核追蹤到的已掛載的所有設備
cat /proc/mounts
-o options 掛在文件系統的選項,多個選項使用逗號隔開
async 異步模式 對設備上的文件進行寫操作時,并不是時時保存
sysnc 同步模式 內存中設備上的文件更改時,同時寫進洗盤
atime/noatime 包含目錄和文件
diratime/nodiratime 目錄訪問時間戳、
auto/noauto 是否支持自動掛載
exec/noexec 是否支持在文件系統上運行應用程序
dev/nodev 是否支持在此文件系統上使用設備文件
suid/nosuid 是否支持suid和sgid權限
remount 重新掛載
ro 只讀 等同于 -r
rw 讀寫 等同于 -w
user/nouser 是否允許普通用戶掛在此設備,默認管理員才能掛載
acl 啟用此文件系統上的acl功能
Defaults 相當于rw nosuid dev exec auto nouser async
磁盤管理相關命令練習
mount 掛載相應硬盤
對硬盤進行分區
使用lsblk命令查看硬盤分區信息是否已經更新
如果沒有更新可以使用partx -a device或者partprobe命令更新相關信息
如果兩者都沒有起效,可以查看/proc/partitions文件來使更新生效
創建文件系統mkfs.ext2/3/4/xfs或者mke2fs -t ext2/3/4 device
使用tune2fs查看文件系統相關信息
可以使用hexdump -C -v -n 512 device查看文件系統的第一個塊的存儲信息,最后兩個字節55 aa表示文件是正常的
可以使用e2label對相應分區加上卷標
原創文章,作者:Stupid_L,如若轉載,請注明出處:http://www.www58058.com/40230
文章對一些概念性的東西,而沒有通過自己的文字總結成通順的話語,這是不合適的,建議以后嘗試通過自己的語言將內容的知識點進行總結與梳理,寫出優秀的博客。