磁盤管理、文件系統管理
磁盤管理
磁盤設備
-
機械硬盤(非固態)
-
I/O Ports —– I/O 設備地址
-
塊設備:Block 存取單位“塊”;(磁盤)
-
字符設備:char 存取單位“字符”;(鍵盤)
設備文件:關聯一個設備驅動程序,進而能夠跟與之對應的硬件設備進行通信;
– 設備號碼:
-
主設備號 major number;標識設備類型
-
次設備號 minor number;標識同一類設備中的不同設備
Linux系統硬件設備文件儲存在/dev目錄下
– 硬盤接口:
-
并行{IDE、SCSI}
-
串口{SATA、SAS、USB}
/dev目錄下的硬盤名稱一般是/sd*(*代表[a-z]);不同分區之間用數字區分,例如:/sda1、/sda2、/sda3….
– 機械硬盤
-
track:磁道
-
cylinder:柱面
-
secotr:扇區 (512byte)
0扇區(mbr)512byte中 446byte是boot loader;
64byte是分區表(所以最多4個分區);
2byte是4個16進制數值(55AA表示前55個已經使用);
擴展:分區是按照柱面劃分的,mbr只能識別2T以下的單塊硬盤,超過2T需要使用GPT
磁盤分區
-分區工具:fdisk
-
fdisk:
fdisk -l [-u] [device...] { -l:顯示磁盤信息;} fdisk內置命令: p -查看磁盤信息; m -打開幫助信息; n -新創建一個分區; d -刪除分區; w -保存退出; q -放棄保存退出; l -列出分區ID t -修改ID
分好區以后,內核中不一定能識別到分區,內核沒有識別到分區的話無法進行格式化、文件系統等操作;
-
解決
查看內核有無識別到分區: cat /etc/partations 讓內核重新掃描識別分區:partx -a /dev/DEVICE -n M:N kpartx -a /dev/DEVICE -f: force ------------以上是centos 6-7 使用----------------- CentOS 5: 使用:partprobe [/dev/DEVICE]
文件系統管理
-
Linux文件系統:ext2、ext3、ext4、xfs、btrfs、reiserfs、jfs、swap
swap:交換分區;用磁盤空間當內存來使用(虛擬內存)
-
擴展:
光盤: iso9660;
windows: fat32、ntfs
網絡文件系統:NFS、CIFS
集群文件系統:GF32、OCFS2
分布式文件系統:ceph、moosefs、mgilefs、Glusterfs、Lustre
-日志文件系統
-
日志型文件系統是一種特殊類型的文件系統,它記錄一個被稱為日志的追蹤文件。日志可以讓系統能夠修復在異常終止時出現的不一致情況。它通過追蹤之前提交到主文件系統的更改。在計算機非正常關機的情況下,任何數據丟失都可被重建。因此,這種文件系統不太可能遭受破壞,并且可以使文件系統快速恢復工作。
-
日志型文件系統:ext3、ext4、xfs…..
-
非日志型文件系統:ext2、vfat
-文件系統的組成
-
內核中的模塊:ext4、xfs、vfat
-
用戶空間的管理工具:mkfs.ext4、mkfs.xfs、mkfs.vfat
擴展:Linux的虛擬文件系統叫VFS
-創建文件系統
-
查看當前系統上所支持的文件系統類型: cat /proc/filesystems
-
顯示分區屬性:blkid [DEVICE]
-
mkfs
(1) # mkfs.FS_TYPE /dev/DEVICE ext4 xfs btrfs vfat (2) # mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL': 設定卷標 備注: mkfs.FS_TYPE /dev/DEVICE = mkfa -t FS_TYPE /dev/DEVICE 例子: mkfs.ext4 /dev/sdb1 = mkfa -t ext4 /dev/sdb1
-
mke2fs
mke2fs:ext系列文件系統專用管理工具 -t:設置類型 {ext2|ext3|ext4} -b: 設置塊大小{1024|2048|4096} 不自己設置默認大小是4096 -L 'LABEL':設定卷標 -j: 相當于 -t ext3 -i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大?。?nbsp; -N #:為數據空間創建個多少個inode; -m #: 為管理人員預留的空間占據的百分比; -O FEATURE[,...]:啟用指定特性 -O ^FEATURE:關閉指定特性 備注:mke2fs -t ext_TYPE = mkfs.ext_TYPE /dev/DEVICE = mkfa -t ext_TYPE /dev/DEVICE 例子: mke2fs -t ext4 /dev/sdb1 = mkfs.ext4 /dev/sdb1 = mkfa -t ext4 /dev/sdb1
-
mkswap
mkswap:創建交換分區 mkswap [options] device -L 'LABEL':卷標 注意:調整其分區的ID為82;
-
e2label
e2label:管理ext系列文件系統的LABEL # e2label DEVICE [LABEL]
-
tune2fs
tune2fs:重新設定ext系列文件系統可調整參數的值 -l:查看指定文件系統超級塊信息;super block -L 'LABEL':修改卷標 -m #:修預留給管理員的空間百分比 -j: 將ext2升級為ext3 -O: 文件系統屬性啟用或禁用 -o: 調整文件系統的默認掛載選項 -U UUID: 修改UUID號;
-
dumpe2fs
dumpe2fs [DEVICE] 查看超級塊的詳細信息 -h:查看超級塊信息
-文件系統檢測
-
fsck
fsck: File System CheCk fsck.FS_TYPE fsck -t FS_TYPE -a: 自動修復錯誤 -r: 交互式修復錯誤 Note: FS_TYPE一定要與分區上已經文件類型相同;
-
e2fsck
e2fsck:ext系列文件專用的檢測修復工具 -y:自動回答為yes; -f:強制修復;
-文件系統掛載
-
將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為稱之為掛載;
-
解除此關聯關系的過程稱之為卸載;
把設備關聯掛載點:Mount Point mount 卸載時:可使用設備,也可以使用掛載點 umount
注意:掛載點下原有文件在掛載完成后會被臨時隱藏;
-
掛載方法:mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前系統已掛載的所有設備 mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要掛載的設備; (1) 設備文件:例如/dev/sda5 (2) 卷標:-L 'LABEL', 例如 -L 'MYDATA' (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e' (4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs dir:掛載點 事先存在;建議使用空目錄; 進程正在使用中的設備無法被卸載; 常用命令選項: -t vsftype:指定要掛載的設備上的文件系統類型; -r: readonly,只讀掛載; -w: read and write, 讀寫掛載; -n: 不更新/etc/mtab; -a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能) -L 'LABEL': 以卷標指定掛載設備; -U 'UUID': 以UUID指定要掛載的設備; -B, --bind: 綁定目錄到另一個目錄上; 注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts -o options:(掛載文件系統的選項) async:異步模式; sync:同步模式; atime/noatime:包含目錄和文件; diratime/nodiratime:目錄的訪問時間戳 auto/noauto:是否支持自動掛載 exec/noexec:是否支持將文件系統上應用程序運行為進程 dev/nodev:是否支持在此文件系統上使用設備文件; suid/nosuid: remount:重新掛載 ro: rw: user/nouser:是否允許普通用戶掛載此設備 acl:啟用此文件系統上的acl功能 注意:上述選項可多個同時使用,彼此使用逗號分隔; 默認掛載選項:defaults rw, suid, dev, exec, auto, nouser, and async
-
卸載命令:
# umount DEVICE #umount MOUNT_POINT 查看正在訪問指定文件系統的進程: # fuser -v MOUNT_POINT 終止所有在正訪問指定的文件系統的進程: # fuser -km MOUNT_POINT
-
掛載交換分區:
啟用:swapon swapon [OPTION]... [DEVICE] -a:激活所有的交換分區; -p PRIORITY:指定優先級; 禁用:swapoff [OPTION]... [DEVICE]
-
內存空間使用狀態:
free [OPTION] -m: 以MB為單位 -g: 以GB為單位
-
文件系統空間占用等信息的查看工具:
df: -h: human-readable -i:inodes instead of blocks -P: 以Posix兼容的格式輸出;
-
查看某目錄總體空間占用狀態:
du: du [OPTION]... DIR -h: human-readable -s: summary
-
文件掛載的配置文件:/etc/fstab
每行定義一個要掛載的文件系統; 要掛載的設備或偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序 要掛載的設備或偽文件系統: 設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc, sysfs) 掛載選項: defaults 轉儲頻率: 0:不做備份 1:每天轉儲 2:每隔一天轉儲 自檢次序: 0:不自檢 1:首先自檢;一般只有rootfs才用1;
命令總結:fdisk, partx, mkfs, mkswap, mke2fs, tune2fs, blkid, dumpe2fs, e2label, fsck, e2fsck,
mount, umount, free, df, du, swapon, swapoff, fuser
文件系統上的其它概念:
-Inode: Index Node, 索引節點
文件名是源數據但是inode不包含文件名
-
地址指針:地址指針儲存的大小決定塊的大小
-
直接指針:
-
間接指針:
-
三級指針:
inode bitmap:對位標識每個inode空閑與否的狀態信息;
– 鏈接文件:
-
硬鏈接:
不能夠對目錄進行; 不能跨分區進行; 指向同一個inode的多個不同路徑;創建文件的硬鏈接即為為inode創建新的引用路徑,因此會增加其引用計數;
-
符號鏈接(軟鏈接):
可以對目錄進行; 可以跨分區; 指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數; ln [-sv] SRC DEST -s:symbolic link(符號鏈接) -v: verbose
-
文件管理操作對文件的影響:
文件刪除:把inode引用次數降低為0,對應的位圖標記為空閑 文件復制:數據的讀取、寫入 文件移動:不同分區之間移動就是把數據讀取出來復制一份寫入目標,然后刪除源文件; 同分區內改變路徑 inode不變;
原創文章,作者:N21_志建,如若轉載,請注明出處:http://www.www58058.com/24711