如今市面上硬盤主要爲兩種:機械式硬盤 和固態硬盤(SSD)node
機械式硬盤linux
同心圓劃分紅多個track磁道,每一個磁道上有必定數量的扇區(secotr),每一個盤面上編號相同的磁道組成了柱面(cylinder)數據庫
每一個扇區的大小爲512byteswindows
MBR模式下0磁道上0扇區爲master boot record主引導扇區centos
前446bytes:存放了bootloafer引導加載器,啓動磁盤中的操做系統網絡
接着的64bytes:存放磁盤中的文件系統分區表,每16bytes標識一個分區,因此MBR最多隻能認4個分區,若超過4個分區需使用擴展分區,在擴展分區中標註若干個邏輯分區。異步
剩餘的2bytes用於結束標誌 55 AAasync
識別硬盤在linux系統中的文件:/dev/sd【a-z】ide
不一樣的硬盤最後標註的字母不一樣 /dev/sda /dev/sdb工具
同一硬盤上的不一樣分區 最後標註的數字不一樣:/dev/sda1 /dev/sda2
1-4用於標註主或擴展分區
5以上用於標註邏輯分區(由擴展分區中劃分的)
設備文件是一種特殊的文件 分爲塊設備文件和字符設備文件
塊設備文件:存取單位爲數據塊,隨機存取
字符設備文件:存取單位爲字符,線性存取
分區:分割存儲空間爲多個小空間,每一個空間能夠獨立使用文件系統
fdisk,parted, sfdisk
分區工具:fdisk
格式 fdisl 【option】硬盤文件名
管理子命令:
p:顯示
n:建立
d:刪除
t:修改分區ID
l:列出全部支持的分區類型ID
w:保存並退出
q:放棄保存並退出
m:得到幫助
分區大小能夠用數值和單位肯定,沒必要計算柱面
![]()
建立完成後,查看內核是否已經識別新的分區
cat /proc/partitions
![]()
有三個命令可讓內核讀取磁盤分區表:
CentOS 5: partprobe [DEVICE]centos6,7
partx
partx DEVICE 顯示設備的分區
partx -a DEVICE 向內核添加分區信息,已有的重複提交會報錯
partx -a -n M:N DEVICE向內核添加指定的分區信息,避免添加已有的。kpartx命令:
kpartx -af DEVICElinux文件系統管理
文件系統:編輯地址有本身的索引,便於計算機管理。
linux使用vmfs(虛擬文件系統)統一各種文件系統的接口
linux:ext2,ext3,ext4,reiserfs,xfs,btefs,swap
光盤:iso9660
windows:fat32,ntfs
unix:ffs,ufs,jfs,jfs2
(1)日誌型文件系統
ext3
在磁盤空間專門開闢一個日誌區放元數據,帶元數據所對應的數據庫寫完後將元數據寫到元數據區。這樣當在寫數據時,發生錯誤須要自檢時能夠直接在日誌區尋找發生錯誤的元數據,而不須要遍歷全部數據區
(2)swap交換
每一個進程都自認爲物理內存都爲本身所用,一旦進程使用過大內存形成內存耗盡。這時候須要將內存中暫時不使用的數據寫到磁盤的swap分區中,以騰出物理內存空間。待須要這批數據時再寫回物理內存。
建立文件系統
在分區上執行格式化(高級格式化)
要使用某種文件系統,知足兩個條件:
內核中:支持此種文件系統
用戶空間:有文件系統管理工具
建立工具:mkfs (make filesystem)
mkfs -t type DEVICEmkfs.type DEVICE
ext系列文件系統的專用管理工具:
mke2fs [OPTION]... DEVICE
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j: mke2fs -t ext3
-i #:爲inode指定字節數-N #:爲文件系統分配多少個inode
-m #: 預留磁盤空間佔據多大百分比的空間爲後期管理使用;
-O FEATURE[,...] 開啓某些特性
-O ^FEATURE:關閉此特性blkid命令:查看分區信息
blkid DEVICE
LABEL, UUID, TYPE文件系統屬性查看及調整工具
e2label:e2lable DEVICE [LABEL]
管理設備或者分區的卷標
帶卷標名則爲設定 不帶卷標名則是查看功能格式:
tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
[-m reserved_blocks_percent] [-o [^]mount_options[,...]]
[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
[-M last_mounted_dir] [-O [^]feature[,...]]
[-E extended-option[,...]] [-T last_check_time] [-U UUID]
[ -I new_inode_size ] device
-l 顯示超級塊中的信息:顯示整個文件的屬性及佈局等相關信息
-L 修改卷標名字
-m # :調整預留給管理員的後期管理空間的百分比
-j:ext2的文件系統升級爲ext3且不影響原有數據
-O [^] feature[,...]: 調整分區特性-o [^] mount-options[,...]: 設定其默認掛載選項
async: 異步I/O
sync: 同步I/O
noatime/atime: 是否更新訪問時間戳,建議noatime
auto/noauto: 是否可以被mount -a選項自動掛載;
diratime/nodiratime: 是否更新目錄的訪問時間戳;
exec/noexec:是否容許執行其中的二進制程序;
_netdev: 在網絡設備啓用以前禁止嘗試掛載網絡設備
remount: 從新掛載
acl: 啓用facl 文件訪問控制列表
ro:掛載爲只讀
rw:掛載爲可讀寫
user/nouser: 是否容許普通用戶掛載此設備
dump2fs:
顯示ext系列整個文件系統的佈局結構及超級塊信息
-h:僅顯示超級塊信息文件系統檢測:
fsck: Filesystem check
fsck -t type
fsck.type
-a: 自動修復錯誤
-r: 交互式修復錯誤
-f: 強制檢測e2fsck:ext系列文件系統專用的檢測修復工具;
-y: 自動回答爲「yes」
-f:force文件系統的掛載和使用
kernel --》 rootfs(分區)
擁有:bin,sbin,etc,lib,lib64,dev,tmp,proc,sys)
內核啓動後便能找到跟文件所在的分區/, 其餘分區的若要使用必須直接或間接的掛載到/根文件系統下的目錄
將額外文件系統與根文件系統目錄下的現存的目錄相關聯,使該目錄成爲額外文件系統的訪問入口。這樣的行爲成爲掛載
卸載是取消文件系統和根文件下目錄的關聯
掛載點若是有文件,則掛載後其內部原有的文件會被隱藏卸載後從新出現,建議使用空文件
掛載方法:
mount:經過讀取/etc/mtab文件來顯示當前文件系統全部已經掛載的設備
mount -a :自動掛載/etc/fstab文件中的支持自動掛載的文件系統
![]()
mount [options] [-o options] DEVICE MOUNT_POINT
[options]:命令選項
[-o options]:掛載選項DEVICE:要掛載的設備
1.設備文件 /dev/sda5
2.卷標: -L ‘LABEL’
3.UUID: -U 'UUID'
4.文件系統名稱
MOUNT_POINT多爲文件目錄
經常使用選項:
-t type :文件系統的類型
-r 以只讀方式掛載
-w 以讀寫的方式掛載
-n 掛載並更新/etc/mtab
-B綁定目錄至另外一個目錄上
-o 掛載選項:
async:異步模式
sync:同步模式任何數據在內存處理完後立刻寫回磁盤
atime/noatime:是否更新訪問時間戳
auto/noauto:是否容許此設備被自動更新
exec/noexec:是否容許執行此文件系統上的應用程序
dev/nodev:是否支持在此設備上使用設備文件;
suid/nosuid:是否容許設置suid權限
remount:從新掛載
ro:只讀權限
rw:讀寫權限
user/nouser: 是否容許普通掛載此設備;
acl:是否支持此設備上使用facl;
defaults:rw, suid, dev, exec, auto, nouser, and async
umount:卸載命令
# umount DEVICE
# umount MOUNT_POINT
查看正在訪問指定掛載點的進程:
# fuser -v MOUNT_POINT
終止全部正在訪問指定的掛載點的進程:
# fuser -km MOUNT_POINT
交換分區:
free命令:
查看memory和swap的使用狀態
-m: 以MB爲單位
-g: 以GB爲單位
mkswap:建立交換分區
mkswap [option] DEVICE
-L 'LABEL'
swapon:啓用交換分區
swapon [option] [DEVICE]
-a: 激活全部交換分區
-p PRIORITY: 設定其優先級;
swapoff:禁用交換分區
swapoff [option] [DEVICE]
文件系統等空間佔用信息的查看工個:
df: disk free 檢查文件系統的磁盤空間佔用狀況
-h: human-readable
-i: inode數量
-P: 以Posix兼容的格式輸出
du: disk usage 查看文件或目錄所佔的大小
-h: human-readable
-s: summary
文件系統相關掛載配置文件:/etc/fstab
每行定義一個文件系統;
要掛載的設備或僞文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備:
設備文件、LABEL=、UUID=、僞文件系統名稱
掛載選項:
defaults
轉儲頻率:
0: 不轉儲
1: 天天轉儲
2: 每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢,一般只有/才爲1
2:
...
文件系統上的連接文件:
硬連接:
兩個路徑指向同一個inode
不能對目錄進行;
不能跨分區進行
指向同一個inode的多個不一樣路徑; 建立文件的硬連接會增長inode的引用計數;刪除硬連接僅是刪除其一個訪問路徑,只到最後一個路徑被刪除;
符號連接:
連接文件的數據指向另外一個文件路徑;
能夠對目錄進行;
能夠跨分區;
指向的是另外一個文件路徑;而非inode;
對文件建立符號連接不會增長其引用計數;刪除原文件,符號連接文件也將沒法;
ln [-s] SRC DEST
-s:symbolic link
-v:verbose
練習:建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄
1.先建立10G的文件系統
發現內核已經本身識別到該分爲文件系統
2.格式化其類型爲ext4
3.讓系統內核識別該分區並加入爲開機會自動掛載配置的文件/etc/fstab中