Linux磁盤和文件系統管理
linux磁盤管理
一、Linux設備類型
硬盤有機械硬盤(HDD)和固態硬盤(SSD)之分。機械硬盤即是傳統普通硬盤,主要由:盤片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存等
幾個部分組成。
機械式硬盤
track:磁道,存儲信息的位置
cylinder:柱面
sector:扇區
MBR:全稱為Master Boot Record,即硬盤的主引導記錄。硬盤的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR),該扇區總共512字節;
它由主引導程序、硬盤分區表DPT(Disk Partition table)和分區有效標志。
boot loader(主引導程序):占446bytes
Partition table(用來存取分區表):占64bytes;硬盤中分區有多少以及每一分區的大小都記在其中,其中每16bytes標識一個分區;所以對于早期硬盤
(非UEFI)來講在基于MBR方式管理時一塊硬盤最多只能有4個分區;或者3主分區+1擴展(擴展可以使用N個邏輯分區)
magic number:占2個字節,對于大端模式處理器該值固定為0*55AA,存為55AA表示前面500個字節是有效的,否則是無效的
注意:硬盤單盤容量大于2T,MBR機制無法識別2T及大于2T的硬盤 ,此時需使用GTP機制
二、磁盤接口類型及命名
1、并行:
IDE 接口速率:133MB/s
SCSI 接口速率:640MB/s
2、串口:相對于并行設備類型速率更高
SATA: 接口速率: 6Gbp/s
SAS: 接口速率: 6Gbp/s
USB: 接口速率:480MB/s
3、磁盤命名
磁盤一般以/dev/DEV_FILE方式命名
磁盤設備的設備文件命名:
IDE接口設備:/dev/hd
SCSI,SATA,SAS,USB等接口設備:/dev/sd
不同設備:/dev/sd[a-z],如:/dev/sda,/dev/sdb….
同一設備上的不同分區:1,2,3,…如:/dev/sda1,/dev/sda2,…
三、磁盤分區管理工具:
1、Linux中的分區的主要管理工具有:fdisk、parted,sfdisk,本文中主要介紹使用fdisk工具。
注意:使用fdisk工具分區時,對于一塊硬盤來講,最多只能管理15個分區。
2、fdisk命令:
語法命令:fdisk [option] [DEVICE]
子命令:m:獲取幫助,顯示出所有子命令
p:print,顯示已有分區
n:new,創建
d:delete,刪除
w:write,寫入磁盤并退出
q:quit,放棄更新并退出
l:列表分區id
t:調整分區id
查看內核是否已經識別新的分區:
cat /proc/partations,如果內核沒有識別,使用下列命令手動通知內核重新讀取硬盤分區表
partx -a /dev/DEVICE(centos6、7)
partprobe[/dev/DEVIC](centos5)
Linux文件系統管理
一、Linux文件系統類型:
1、Linux文件系統:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap
swap:交換分區
光盤:iso9660
Unix:FFS,UFS,JFS2
網絡文件系統:NFS,CIFS
系群文件系統:GFS2,OCFS2
分布式文件系統:ceph,moosefs,mogilefs,GlusterFS,Lustre
根據其是否支持“journal”功能分為:
日志型文件系統:ext3,ext4,xfs….
非日志型文件系統:ext2,vfat….
2、文件系統的組成部分:
內核中的模塊:ext4,xfs,vfat
用戶空間的管理工具:mkfs.ext,mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統:VFS
3、文件存儲結構
分區的第一個部分是啟動區(Boot block),它主要是為計算機開機服務的。Linux開機啟動后,會首先載入MBR,隨后MBR從某個硬盤的啟動區加載程序。
程序負責進一步的操作系統的加載和啟動。為了方便管理,即使某個分區中沒有安裝操作系統,Linux也會在該分區預留啟動區。
啟動區之后的是超級區(Super block)。它存儲有文件系統的相關信息,包括文件系統的類型,inode的數目,數據塊的數目。
Inode:Index Node又稱文件索引節點,是文件基本信息的存放地(如讀寫屬性、owner等,但不包括文件名)和數據塊指針(直接、間接及三級指針)存放地。
節點位圖inode bitmap:對應表是每個inode空閑與否的狀態信息
數據塊:文件的具體內容存放地。
當查看某個文件時,會先從inode table中查出文件屬性及數據存放點,再從數據塊中讀取數據
其中文件的inode結構如下(inode里所包含的文件信息可以通過stat filename查看得到):
4、鏈接文件:
硬鏈接:是給文件一個副本,同時建立兩者之間的連接關系。修改其中一個,與其連接的文件同時被修改。
不能對目錄進行
不能跨分區進行
指向同一個inode的過個不同路徑,創建文件的硬鏈接即為inode創建新的引用路徑,因此會增加其引用計數
軟鏈接,也叫符號鏈接:是對源文件在新的位置建立一個“快捷”,所以,當源文件刪除時,符號連接的文件將僅僅
剩下個文件名了,當然刪除這個連接,也不會影響到源文件,但對連接文件的使用、引用都是直接調用源文件的。
可以對目錄進行
可以跨分區
指向另一個文件的路徑,其大小為指向的路徑字符串的長度,不增加或減少目標文件inode的引用計數。
二、Linux文件系統相關命令:
1、創建文件系統:mkfs
用法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
(1)mkfs.FS_TYPE /dev/DEVICE
ext4
(2)mkfs -t FS_TYPE /dev/DEVICE
mke2fs:ext系列文件系統專用管理工具
-t{ext2|ext3|ext4}
-b:{1024|2048|4096}
-L:‘LABEL’
-j:相當于 -t ext3
-i #:為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大小
-N #:為數據空間創建個多少個inode
-m #:為管理員預留的空間占據的百分比
-O FEATURE[,…..]:啟用指定特性
-O ^FEATURE:關閉制定特性
mkswap:創建交換分區
mkswap [OPTION] device
-L ‘LABEL’
前提:調整其分區的ID為82
blkid:塊設備屬性信息查看
blkid [OPTION]…[DEVIE]
-U UUID:根據指定的UUID來查找對應的設備
-L LABEL:根據指定的LABEL來查找對應的設備
e2label:管理ext系列文件系統的LABEL
e2label DEVICE [LABEL]
tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息:super block
-L ‘LABEL’:修改卷標
-m #:修改預留給管理員的空間百分比
-j:將ext2升級為ext3
-O:文件系統屬性啟用或禁用
-o:調整文件系統的默認掛載選項
-U UUID:修改UUID號
dumpe2fs
-h:查看超級塊信息
2、文件系統檢測:
fsck:file system check
fsck.FS_TYPE
fsck -t FS_TYPE
-a:自動修復
-r:交互式修復錯誤
NOTE:FS_TYPE一定要與分區上文件類型相同
e2fsck:ext系列文件專用的檢測修復工具
-y:自動回答為yes
-f:強制修復
3、文件系統的掛載
將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它訪問入口的行為稱之為掛載
解除此關聯關系的過程稱之為卸載
把設備關聯掛載點:Mount Point
掛載命令mount:
mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前系統已掛載設備,查看內核追蹤到的已掛載的所有設備:cat /proc/mounts
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設備
(1)設備文件:例如/dev/sda5
(2)卷標:-L ‘LABEL’:例如-L ‘MYDATA’
(3)UUID,-U ‘UUID’:例如-U ‘2029dba3-0402-4eb6-ae7c-dcc0c9e42c05’
(4)偽文件系統名稱:proc,sysfs,dectmpfs,configfs只需要名字,不需要設備
dir:掛載點
事先存在:建議使用空目錄
進程正在使用中的設備無法被卸載
常用選項:
-t vsftype:指定要掛載的設備上的文件系統類型可省略
-r :readonly,只讀掛載;
-w:read and write,讀寫掛載
-n:不更新/etc/mtab
-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載功能”)
-L ‘LABEL’:以卷標指定掛載設備
-U ‘UUID’:以UUID指定掛載設備
-B,–bind:綁定目錄到另一個目錄上
-o options:(掛載文件系統的選項)
async:異步模式
sync:同步模式(數據可靠性高,性能差)
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載
exec/noexec:是否支持將文件系統上應用程序運行為進程
dev/nodev:是否支持在此文件系統上使用設備文件
suid/nosuid:
remount:重新掛載
ro:
rw:
user/nouser:是否允許普通用戶掛載此設備
acl:啟用此文件系統上的acl功能(centos6默認關閉,centos7默認啟用)
注意:上述選項可多個同時使用,彼此使用逗號分隔
默認掛載選項:defaults
rw,suid,dev,exec,auto,nouser,and async
掛載交換分區
啟用:swapon
swapon [OPTION]….[DEVICE]
-a:激活所有的交換分區
-p:PRIORITY:指定優先級
禁用:swapoff [OPTION]….[DEVICE]
4、文件系統的卸載
卸載命令:umount DEVICE
umount MOUNT_POINT
查看正在訪問指定文件系統的進程
fuser -v MOUNT_POINT
終止所有正在訪問指定的文件系統的進程
fuser -km MOUNT_POINT
5、文件系統相關的查看命令
內存空間使用狀態
free [OPTIONG]
-m:以MB為單位
-g:以GB為單位
文件系統空間占用等信息的查看工具
df:
-h:human-readable
-i:inodes instead of blocks
-P:以POSIX兼容的格式輸出
查看某目錄總體空間占用狀態
du:
du[OPTION]…DIR
-h:human-readable
-s:summary
6、文件掛載的配置文件
文件掛載的配置文件/etc/fstab
每行定義一個要掛載的文件系統:
要掛載的設備或偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或偽文件系統:
設備文件、LABEL(LABEL=" ") 、UUID(UUID=" ")、偽文件系統名稱(proc、sys)
掛載選項:
defaults
轉儲頻率:
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs才用1
原創文章,作者:Net18-天津-康康,如若轉載,請注明出處:http://www.www58058.com/14592
寫的很認真,如果輔以樣式優化一定能頭條,樣式建議使用markdown
@stanley:還在學習中,對markdown還不太熟悉