LINUX磁盤及文件系統管理
-
cpu,Memory(RAM),I/O
-
I/O:Disks,Entercard
Disks:持久存儲數據
接口類型:
IDE(ata):并口,133MB/s
SCSI:并口,Ultrascsl320,320MB/S,UltraSCSI640,640MB/S
STAT:串口,6gbps
SAS:串口,6gbps
USB:串口,480MB/s
硬盤:機械硬盤,固態硬盤。
機械硬盤:
track:磁道
sector:扇區,512bytes
cylinder:柱面
分區劃分基于柱面
平均尋道時間:
5400rpm,7200rpm,10000rpm,15000rpm
-
linux的哲學思想:一切皆文件
設備類型:
塊(block):隨機訪問,數據交換單位是“塊”;
字符(character):線性訪問,數據交換單位是“字符”;
設備文件:FHS /dev
設備文件:關聯至設備的驅動程序;設備的訪問入口;
設備號:
major:主設備號,區分設備類型;用于表明設備所需要的驅動程序;
minor:次設備號,區分同種類型下的不同的設備;是特定設備的訪問入口;
mknod命令:make block or characterspecial files創建設備文件
mknod[OPTION]…NAME TYPE [MAJOR MINOR]
-m MODE:創建后的設備文件的訪問權限;
設備文件名:ICANN
磁盤:
IDE:/dev/hd[a-z]
例如:/dev/hda,/dev/hdb
SCSI,STAT,USB,SAS:/devsd[a-z]
分區:
/dev/sda#:(如/dev/sda1,/dev/sda2)
注意:CentOS 6和7統統將硬盤設備文件標識為/dev/sd[a-z]#
引用設備的方式:
設備文件名
卷標
UUID
磁盤分區:MBR,GPT
MBR:0 sector(Master Boot Record)主引導記錄
分為三部分:
446bytes:bootloader,程序,引導啟動操作系統的程序;
64bytes:分區表,每16bytes標識一個分區,一共只能有四個分區;
4分區
3主1擴展:
n邏輯分區
2bytes:MBR區域的有效性標識;55AA為有效;
主分區和擴展分區的標識: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
通知內核強制重讀磁盤分區表:
CentOS 5:partprobe[device]
CentOS 6/7:partx,kpartx
partx -a[device]
kpartx -af[device]
分區創建工具:parted,sfdisk;
-
創建文件系統:
格式化:低級格式化(分區之前進行,劃分磁道)、高級格式化(分區之后對分區進行,創建文件系統)
元數據區:
文件元數據:inode(index node)
大小,權限、屬主屬組、時間戳、數據塊指針
符號鏈接文件:存儲數據指針的空間當中存儲的是真實文件的訪問路徑;
設備文件:存儲數據指針的空間當中存儲的是設備號(major,minor);
bitmap index:位圖索引
VFS:Virtual File System
Linux的文件系統:ext2,ext3,ext4,xfs,relserfs,btrfs
光盤:iso9660
網絡文件系統:nfs,cifs
集群文件系統:gfs2,ocfs2
內核及分布式文件系統:ceph
windows的文件系統:vfat,ntfs
偽文件系統:proc,sysfs,tmpfs,hugepagefs
Unix的文件系統:UFS,FFS,JFS
交換文件系統關凱
用戶空間的分布式文件系統:mogilefs,moosefs,glusterfs
-
文件系統管理工具:
創建文件系統
mkfs
mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat…
檢測及修復文件系統工具
fsck
fsck.ext2,fsck.ext3,…
查看其屬性的工具
dumpe2fs,tune2fs
調整文件系統特性:
tune2fs
-
ext系列文件系統的管理工具:
mkfs.ext2,mkfs.ext3,mkfs.ext4
mkfs -t ext2 = mkfs.ext2
ext系列文件系統管理工具:mke2fs
mke2fs[OPTION] device
-t{ext2|ext3|ext4}:指明要創建的文件系統類型
mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
-b{1024|2048|4096}:指明文件系統block大小;
-L LABEL:指明卷標;
-j:創建有日志功能的文件系統ext3;
mke2fs -j = mak2fs -t ext3 = mkfs -t ext3 =mkfs.ext3
-i#:bytes-per-inode,指明inode與字節的比率;即每多少個字節創建1個inode
-N#:直接指明要給此文件系統創建的inode的數量;
-m#:指定預留的空間,百分比;
-O[^]FEATURE:以指定的特性創建目標文件系統;
-
e2label命令:卷標的查看與設定
查看:e2label device
設定:e2label device LABEL
-
tune2fs命令:查看或修改ext系列文件系統的某些屬性
adjust tunable filesystem parameters on ext2/ext3/ext4/ filesystems;
注意:塊大小創建后不可修改;
tune2fs[OPTIONS]device
-l:查看超級快的內容;
修改指定文件系統的屬性:
-j:ext2 –>ext3;
-L LABEL:修改卷標;
-m #:調整預留空間百分比;
-O[^]FEATURE:開啟或關閉某種特性;
-o[^]mount_options:開啟或關閉某種默認掛載選項
acl
^acl
-
dumpe2fs命令:顯示ext系列文件系統的屬性信息
dumpe2fs [-h] device
用于實現文件系統檢測的工具
因進程意外終止或系統崩潰等原因導致定稿操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文件系統;建議,離線進行;
ext系列文件系統的專用工具:
e2fsck:check a Linux ext2/ext3/ext4/ file systems
-y:對所有問題自動回答為yes;
-f:及時文件系統處于clean狀態,也要強制進行檢測;
fsck:check and repalr a Linux file system
-t fstype:指明文件系統類型;
-a:無需交互而自動修復所有錯誤;
-r:交互式修復;
CentOS 6如何使用xfs文件系統:
#yum -y install xfsprogs
-
blkid命令:
blkid device
blkid -L LABEL:根據LABEL定位設備
blkid -U UUID:根據UUID定位設備
-
swap文件系統:
Linux上的交換分區必須使用獨立的文件系統;
且文件系統的System ID必須為82;
創建swap設備:mkswap命令
mkswap[OPTION]device
-L LABEL:指明卷標
-f:強制
Windows無法識別Linux的文件系統;因此,存儲設備需要兩種系統之間交叉使用時,應該使用windows和Linux同事支持的文件系統:fat32(vfat);
文件系統的使用:
首先要“掛載”:mount命令和umount命令
根文件系統之外的其他文件系統要想能夠被訪問,都必須通過“關聯”至根文件系統上的摸一個目錄來實現,此關聯操作即為“掛載“;此目錄即為”掛載點“;
掛載點:mount_point,用于作為另一個文件系統的訪問入口;
(1)事先存在;
(2)應該使用未被其他進程使用的目錄;
(3)掛載點下原有的文件將會被隱藏;
-
mount命令:mount [-fnrsvw] [-t vfstype] [-o options] device dir
命令選項:
-r:readonly,只讀掛載;
-w:read and write,讀寫掛載;
-n:默認情況下,設備掛載或卸載的操作會同步更新至/etc/mtab文件中;-n禁用
-t vfstype:指明要掛載的設備上的文件系統的類型;多數情況下可以省略,此時mount會通過blkld來判斷要掛載的設備的文件系統類型;
-L LABEL:掛載以卷標的方式指明設備;mount -L LABEL dir
-U UUID:掛載時以UUID的方式指明設備;mount -U UUID dir
-o options:掛載選項
sync/async:同步/異步操作;
atime/noatime:文件或目錄再被訪問時是否更新其訪問時間戳;
diratime/nodiratime:目錄再被訪問時是否更新其訪問時間戳;
remount:重新掛載;
acl:支持使用facl功能;
#mount -o acl device dir
#tune2fs -o acl device
ro:只讀
re:只寫
dev/nodev:此設備上是否允許創建設備文件;
exec/noexec;是否允許運行此設備上的程序文件;
auto/noauto:
user/nouser:是否允許普通用戶掛載此文件系統;
suid/nosuid:是否允許程序文件上的suid和sgid特殊權限生效;
defaults:Use default options:rw,suid,dev,exec,auto,nouser, async,and relatime。
一個使用技巧:可以實現將目錄綁定至另一個目錄上,作為其臨時訪問入口;
mount –bind 源目錄 目標目錄
查看當前系統所有以掛載的設備:
# mount
# cat /etc/mtab
# cat /proc/mounts
掛載光盤
mount -r /dev/cdrom mount_point
光盤設備文件:/dev/cdrom,/dev/dvd
掛載U盤:
事先識別U盤的設備文件;
掛載本地的回環設備:
#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
-
umount命令:umount device|dir
注意:正在被進程訪問到的掛載點無法被卸載;
查看被那個或哪些進程所占用;
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
終止所有正在訪問某掛載點的進程:
#fuser -km MOUNT_POINT
-
交換分區的啟用和禁用:
創建交換分區的命令:mkswap
啟用:swapon
swapon[OPYION][DEVICE]
-a:定義在/etc/fstab文件中的所有swap設備;
禁用:swapoff
swapoff DEVICE
設定除根文件系統以外的其他文件系統能夠開機時自動掛載:/etc/fstab文件
每行定義一個要掛載的文件系統及相關屬性:
6個字段:
(1)要掛載的設備:
設備文件
LABEL
UUID
偽文件系統:如sysfs,proc,tmpfs等
(2)掛載點
swap類型的設備的掛載點為swap;
(3)文件系統類型;
(4)掛載選項
defaults:使用默認掛載選項;
如果要同時指明多個掛載選項,彼此間以逗號分隔;
defaults,acl,noatime,noexec
(5)轉儲頻率
0:從不備份;
1:每天備份;
2:每隔一天備份;
(6)自檢次序
0:不自檢;
1:首先自檢,通常只能是根文件系統可用1;
2:次級自檢
…
mount -a:可自動掛載定義再次文件中的所支持自動掛載的設備;
-
兩個命令:df和du
df命令:
df[OPTION]…[FILE]…
-l:僅顯示本地文件的相關信息;
-h:human-readable
-i:顯示inode的使用狀態而非blocks
do命令:
do[OPTION]…[FILE]…
-s:sumary
-h:human-readable
原創文章,作者:502795641,如若轉載,請注明出處:http://www.www58058.com/41388
文章內容較為完整,不要用筆記來代替自己的博客,自己寫過的東西才是自己的東西,對一些專有名詞,我們可以通過查詢資料來進行介紹和深入學習。這才是寫博客的意義所在哦,不忘初心,方得始終。