linux的哲學思想:一切皆文件;
設備類型:
塊(block):隨機訪問,交換數據單位是“塊”; 字符(character):線性訪問,數據交換單位是“字符”;
設備文件:FHS
/dev 設備文件:關聯至設備驅動程序;設備的訪問入口; 設備號: major:主設備號,區分設備類型;用于表明設備所需要的驅動程序; minor:次設備號;區分同種類型下的不同設備;是特定設備訪問入口;
mknod命令:
用法:mknod [選項]… 名稱 類型 [主設備號 次設備號]
-m MODE :創建后的設備文件的訪問權限;
磁盤:
IDE:/dev/hd[a-z] SCSI,SATA,USB,SAS:/dev/sd[a-z]
分區: /dev/sda#
/dev/sda1,… 注意:CentOS6,7統統將硬盤設備文件標識為/dev/sd[a-z]
引用設備的方式:
設備文件名 卷標 UUID
磁盤分區:MBR,GPT MBR:0 sector
Master Boot Record 分為三部分 446bytes:bootloader,程序,引導啟動操作系統的 程序: 64bytes:分區表,每16bytes表示一個分區,一共只能有4個分區 2bytes:MBR區域的有效性標識;55AA為有效:
主分區和擴展分區的標識1-4
邏輯分區標識5+
fdisk命令;
1.查看磁盤分區情況
fidsk -l 列出所有分區及其詳細使用情況
2.管理分區
fdisk device #打開交互式界面
fdisk提供了一個交互是接口來管理分區,他有許多子命令,分別用于不同的管理功能;所有操作均在內存中完成,沒有同步到磁盤;直到使用W命令保存至磁盤上
[root@centous1 yum.repos.d]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): mCommand action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
常用命令;
n;創建分區
d;刪除已有分區
t;修改分區類型
l;查看所有已有ID
w;保存并退出
q;不保存并退出
m;查看幫助
p;顯示現有分區信息
注意:在已經分區并且已經掛載其中某個分區的磁盤設備上創建的新分區,內核可能在創建完成后無法識別
cat /proc/partitions 這個文件里顯示了cpu所識別的所有分區列表
通知內核強制重讀磁盤分區表: CentOS 5 :partprobe [device]
CentOS6,7: partx,kpart
partx -a [device]
kpartx -af [device]
注意重讀命令有的時候需要執行兩次
分區創建工具: parted,sfdisk;
創建文件系統
格式化:低級格式化(分區之前進行的,主要是用來劃分磁道),高級格式化(分區之后對分區進行,創建文件系統)
元數據區,數據區 元數據區;inode 文件元數據:大小,權限,屬主數組,時間戳、…
符號鏈接文件:存儲數據指針的空間當中儲存得事真實文件的訪問路徑;
設備文件:存儲數據指針的空間當中儲存的是設備號;
程序員編寫程序的時候,需要按照系統上的文件系統來編寫,但是系統上的文件系統眾多,那樣太影響效率,所以這時候有了一個中間件,VFS虛擬文件系統,它可以跟多種文件系統來匹配,而且對外只是一中接口。
linux的文件系統:ext2,ext3,ext4,xfs,relsers,btrfs
光盤:iso9660
網絡文件系統:nfs,cifs
集群文件系統:gfs2,ocfs2
內核級分布式文件系統:ceph
windows的文件系統:vfat,ntfs
偽文件系統:proc,sysfs,tmpfs,hugepagefs
Unix的文件系統:UFS,FFS,JFS
交換文件系統:swap
用戶空間的分布式文件系統:mogilefs,moosefs,glusterfs
文件系統管理工具:
創建文件系統的工具 mkfs mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat,... 檢測及修復文件系統的工具 fsck fsck.ext2,fsck.ext3查看其屬性的工具 dumpe2fs,tune2fs 調整文件系統特性: tune2fs
鏈接文件:訪問同一個文件不同路徑:
硬鏈接:指向同一個inode的多個文件路徑; 特性: (1)目錄不支持硬鏈接(為了防止循環鏈接); (2)硬鏈接不能跨文件系統; (3)創建硬鏈接會增加inode引用計數 軟連接:指向一個文件的另一個文件路徑; 特性: (1)符號鏈接與文件是兩個人各自獨立的文件,各有自己的inode (2)支持對目錄創建符號鏈接,可以跨文件系統; (3)刪除符號鏈接文件不影響源文件;但是刪除源文件,符號指定的路徑即不存在,此時會變成無效鏈接;
注意:軟連接文件的大小時期制定的文件路徑的大小
創建:
軟連接 ln -s src link_file 硬鏈接 ln src link_file
內核級文件系統的組成部分:
文件系統驅動:有內核提供 文件系統管理工具:由用戶空間的應用程序提供
如果想CentOS6支持xfs直接用yum install xfsprogs
ext系列文件系統專用工具:mke2fs
make2fs [option] device -t {ext2|ext3|ext4}:指定文件系統類型 -b{1024|2048|4096}:指明塊大小 -L :指明卷標 -j:創建有日志功能的文件系統ext3; -N number :直接指明給此文件系統創建的inode的數量 -O[^]:來開啟或者關閉某項功能 -m number :指定給root預留空間的比率
e2label:卷標的查看與設定
查看:e2label device 設定:e2label device LABEl
tune2fs:查看或者修改ext系列文件系統的某些屬性(注意塊大小創建后不可修改)
tune2fs -l:查看分區信息 tune2fs -j:修改指定文件系統屬性ext2-->ext3 -m number :調整root預留空間大小-L:修改卷標-O選項同上-o[^]mount_options:開啟或關閉某種默認掛載選項
dumpe2fs命令:顯示ext系列文件系統的屬性信息 dumpe2fs [-h] device
fsck:用于實現文件系統檢測的工具
因進程意外中路或系統崩潰等 原因導致定稿操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文件系統;建議,離線進行
ext系列文件系統的專用工具:
e2fsck [option] device -f:即使文件系統處于clean,也要強制進行檢測;
fsck:check and repair a linux file linux
-t:指定文件系統類型;-r:交互式修復
blkid: blkid device blkid -L LABEl:根據LABEL定位設備 blkid -U UUid:根據UUId定位設備
swap文件系統:Linux上的交換分區必須使用獨立的文件系統;且文件件系統的System ID必須為82;
創建swap設備:mkswap
-L:指明卷標-f:強制
windows無法識別linux的文件系統;因此,儲蓄設備需要兩種系統之間交叉使用時,應該使用windows和linux同事支持的文件系統:fat32(vfat);
mkfs.vfat device
mount命令:
mount [-nrw] [-t vfstype] [-o options] device dir 命令選項: -r:readonly 只讀掛載;-w:read and wirte ,讀寫掛載;-n:默認情況下,設備掛在或卸載的操作會同步更新至/etc/mtab文件中;-n用于禁止此特性;-t:指明要掛在的設備上的文件系統類型;多數情況下可省略,此時mount會通過blkid來判斷要掛載的設備文件系統類型;-L (LABEL):掛載時以卷標的方式指明設備;-U UUID :掛載時以UUID的方式指明設備;
-o options:掛載選項
sysnc/async:同步/異步操作; atime/noatime:文件或者目錄在被訪問時是否更新其訪問時間戳; diratime/nodiratime:目錄在被訪問時是否更新其訪問時間戳;
umount卸載命令
umount device |dir
注意:正在被進程訪問到的掛載點無法被卸載;
查看被那個或哪些進程所占用:
lsof MOUNT_POINT fuser -v MOUNT_POINT
終止所有正在訪問mount掛載點的進程:
fuser -km MOUNT_POINT
交換分區的啟用和禁用:
創建交換分區的命令:mkswap 啟用:swapon 禁用:swapoff
設定除根文件系統以外的其他文件系統能夠開機時自動掛載:/etc/fstab文件
每行定義一個要掛載的文件系統及相關屬性:
6個字段:
(1)要股災的設備: 設備文件; LABEL UUID 偽文件系統:如sysfs,proc,tmpfs等 (2)掛載點 swap類型的設備的掛載點為swap; (3)文件系統類型; (4)掛載選項 defaults:使用默認選項; 如果要同時指明多個掛載選項,彼此間以逗號隔開; defaults,acl,noatime (5)轉儲頻率 0:從不備份; 1:每天備份; 2:每隔一天備份; (6)自檢次序 0:不自檢 1:首先自檢,通常只能是根文件系統可用1 2:次級自檢 ...
mount -a : 可自動掛在定義在此文件中的所支持自動掛在的設備;
文件系統:
目錄:文件 元數據:inode,inode table 數據:data blocks 下級目錄或文件的文件名與其inode對應關系 注意:文件不會儲存自己的文件名文件名存在上局目錄里邊
刪除文件:將文件指向的所有data block標記為未使用狀態;將文件的inode標記為未使用;
移動和復制:
復制:新建文件; 移動文件:在同一文件系統,僅是其路徑;不在同一文件系統:復制數據至目標文件,并刪除源文件;
原創文章,作者:forest,如若轉載,請注明出處:http://www.www58058.com/41123
對磁盤管理工具用法總結的很完善,建議多操作,熟練運用。