設備類型分為字符設備和塊設備
主設備號用來標識設備類型,次設備號標識同一類型下的不同設備
硬盤設備命名:
scsi,sata,sas,usb:/dev/sd
不同設備/dev/sda /dev/sdb
同一設備不同分區:/dev/sda1,/dev/sdb2……
硬盤:
一片磁盤的一面叫做盤面,一張盤片有兩個盤面
每個盤面有一個磁頭,最多有256個,即256個盤面
硬盤以扇區為最小單位,一個扇區的大小為512字節
由扇區組成的圓環稱為磁道,一個盤面有1024個磁道
柱面是由不同盤面上的同一磁道組成
CHS:早期的尋址方式,以柱面為單位劃分,不同磁道扇區數相同
LBA:現在的尋址方式,以扇區為單位劃分,不同磁道的扇區數不同
兩種分區方式:MBR,GPT
MBR以32位表示扇區數,分區最大不超過2T
0磁道0扇區為MBR共512字節,前446字節為bootloader(版本分為grub,grub2),接下來64個字節為分區表,用16字節表示一個分區,所以最多可以分4個分區(主分區+擴展分區),最后兩個字節為55aa的mbr標識位
16字節的分區表:第一個字節標識是否為活動分區,2-4字節標識chs的開始位置,5字節標識是否使用此分區,6-8字節標識chs結束位置,9-12字節標識lba起始位置,13-16標識lba結束位置
擴展分區的前512字節ebr:前446字節未使用,后64字節為分區表,最后兩位為標識位
擴展分區64位分區表:前16字節記錄當前分區信息,17-32字節記錄下一分區ebr位置,剩下的則未使用,格式與mbr分區表相同
GPT:使用128位表示扇區數,支持128個主分區,分區支持8z(塊大小為512字節),64z(塊大小為4k),使用128位表示UUID表示磁盤,UUId和GPT分區表自動備份在頭尾兩份,并有CRC校驗位
一個塊組有32768個塊
dd命令復制 if=輸入的文件 of=輸出的文件 bs:塊大小 count:塊的數量
skip:輸入時跳過的塊數,總大小bs*count
seek:輸出時跳過的塊數,若不加conv=notrunc原文件后面的數據會被刪除,總大小為bs*count+bs*seek
hedump:二進制查看工具 -n:查看字節數
新加硬盤后要觸發硬盤:echo” – – – ”>/sys/class/scsi_host/host2/scan
查看塊設備的三種方法:lsblk、/dev/sd*、/proc/partitions
fdisk:創建mbr分區,也支持gpt,一塊硬盤最多管理15個分區
gdisk:創建gpt分區
parted /dev/#:非交互式創建分區,要先選擇分成gpt還是msdos后再分區
mklable gpt|msdos 選擇創建mbr分區還是gpt分區
mkpart primary 創建基本分區
rm# 刪除分區
print顯示信息
-l 顯示全部硬盤信息
分區后如果出現警告要使用partprobe重讀分區表
在centos 6上增加使用partx –a命令重讀分區表,刪除時使用partx –d –nr 命令重讀分區表
文件系統是設備上組織文件的方法
raw是未經處理或未經格式化的文件系統
文件系統按照是否有日志系統分為日志性文件系統和日志性文件系統
日志性文件系統:ext2,vfat
日志性文件系統:ext3,ext4,xfs
ext2與ext3本質上是相同的只是差了一個日志系統
vfat文件系統內文件默認有執行權限,不區分大小寫
linux通過虛擬文件系統vfs彌合不同文件系統的差異
一個塊只能存儲一個文件的信息
調用設備時可以使用設備名,卷標或UUID
mkfs:文件系統管理工具
mke2fs:ext系列文件系統管理工具
-t:指定文件系統 -b:塊大小 -L:卷標 -j :創建ext3文件系統 -i:多少字節分配一個inode號 -N:指定多少個inode -I:每個innode的大小 -m:為管理員預留的空間百分比 -O :啟用指定特性 -O ^#: 關閉指定特性
blkid:塊設備屬性查看器
-U:按UUID查找設備
-L:按照卷標查找設備
e2lable:ext系統卷標管理器
findfs:查找分區
tune2fs:重新設定ext文件系統參數(有些參數在格式化后不能更改)
-l:查看指定文件系統超級塊信息 -L:修改卷標 -m:修改留給管理員空間百分比
-O:文件系統屬性起禁用 -o:默認掛載選項 -U:修改UUID -j:將ext2轉化為ext3
dumpe2fs:查看超級塊及分組詳細信息
uuidgen:生成UUID
fsck:文件系統檢測修復工具(使用時要在非掛載情況下進行,不然會破壞分區)
-a:自動修復錯誤 -r:交互式修復錯誤
e2fsck:ext系列專用文件系統檢測修復工具
-y:自動回答yes -f:強制修復
fuser:查看當前掛載點進程信息
-km:將所有使用此掛載點進程結束
lsof也可以查看掛載點進程
mount:掛載
-t:指定文件系統(一般可以自動識別) -r:只讀掛載 –w:讀寫掛載
-a:自動掛載所有支持自動掛載的設備(定義在/etc/fstab中且掛載選項為auto)
-l:以指定卷標掛載 -U:以指定UUID掛載設備 -B:綁定目錄到另一個目錄
mount –o:默認掛載選項 sdync:異步 sync:同步 atime/noatime 是否更新atime(包含目錄及文件) diratime/nodiratime是否更新atime auto/noauto是否自動掛載 exec/noexec是否在該文件系統上運行程序 dev/nodev是否支持在該文件系統上使用設備文件 suid/nosuid是否支持suid和sgid ro只讀 rw讀寫 user /nouser是否允許普通用戶掛載該設備 acl /noacl:是否開啟acl remount:重新掛載
分完區要立即進行同步,不能多次分區后再同步
/etc/fstab文件格式:
設備 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序(0為不檢測)
自檢次序最好寫0,不然設備出問題會導致系統不能啟動
當設備名寫錯后進入系統只能識別根目錄的掛載,并且是只讀模式,要用rw重新掛載才能修改fstab
光盤的文件系統是iso9660,設備名為/dev/sr0或/dev/cdrom
用文件做分區時,不用創建分區,直接創建文件系統,用blkid看不到,但是加上設備名能夠查到信息,掛載時要用-o loop選項,寫fsstab時選項要寫loop
目錄掛載目錄時fstab的文件系統要寫none,默認選項要寫bind
losetup /dev/loop# #/#/#將目錄與loop設備關聯起來
查看生效的swap分區cat /proc/swaps
新增swap分區
1.分區,并將格式改為swap
2.創建swap文件系統 mkswap
3.寫入fstab,在默認選項寫pri=#為指定優先級,值越大優先級越高,最大為32767
4.swapon –a 自動掛載寫入fstab的swap分區
swapon:開啟swap設備
-s:查看當前生效的swap分區 -p指定優先級
swapoff:禁用swap設備
注:swapon –a和mount –a會讀取fstab文件,直接使用命令則不會讀取該文件
lsmod查看當前生效的模塊
使用u盤時要用sync命令進行同步,防止異步寫入
eject彈出光驅 -t:彈回光驅
制作iso鏡像: cp /#/# /#/#.iso
把目錄制作成iso鏡像 mkisofs -r –o #.iso /#/#
刻錄光盤: wodim –v –eject #.iso
free:查看內存,默認以k為單位 -m:以M為單位 -g:以G為單位 -h:以易讀格式顯示
butters:元數據緩存 cache:數據緩存
df:查看文件系統的掛載信息,默認以k為單位(只能查看文件系統,文件夾查看不到) -H:以1000位單位 -T:文件系統類型 -h:以易讀格式顯示 –i:以inode顯示
-P:以與posix兼容格式輸出
inide用完會顯示空間滿
du:顯示大小 -s:只顯示匯總信息 -h:以易讀格式顯示
備份并壓縮:dd if=/#/#|gzip>/#/#
解壓恢復:gzip –dc /#/#|dd of=/#/#
銷毀數據:dd if=/dev/urandom of=/#/#
dd命令也可以用來測試磁盤的讀寫速度,找出適合的塊大小
修復磁盤: dd if=/#/# of=原文件
磁盤配額:以文件系統為單位,對不同的組或用戶策略不同,根據塊或節點進行限制
初始化:分局掛載選項 userquota grpquota
初始化數據庫quotacheck
quotacheck -c:創建 -u:創建用戶數據庫 –g:創建組數據庫
quotaon:啟用數據庫 -p:查看狀態
edquota:編輯數據以k為單位
系統根據文件所有者計算配額
edquota –p #1 #2 把#1的磁盤配額復制給#2
直接在命令行完成配置setquota 用戶名 塊軟限制 塊硬限制 inode軟限制 inode硬限制 文件系統目錄名
過了寬限期軟限制就和硬限制相同
創建quota數據庫出錯執行 setenforce 0
用getenforce檢查是否關閉
raid實現方式:
外接式磁盤陣列、
內接式raid:主板集成raid控制器
軟件raid:通過os實現
做raid的硬盤或分區要一樣大,設備名為/dev/md#
raid將文件分為chunk
raid級別:
raid0: 讀、寫性能提升, 可用空間n*s無容錯能力 最少磁盤數:2
raid1: 讀性能提升、寫性能略有下降,可用空間:n*s/2,有冗余能力 最少磁盤數:2
raid4: 多塊數據盤異或運算值,存于專用校驗盤,可用空間:n-1/n,有冗余能力 最少磁盤數:3
raid5: 多塊數據盤異或運算值分散存于各盤,可用空間:n-1/n,有冗余能力 最少磁盤數:3
raid6: 多塊數據盤異或運算值計算兩次分散存于各盤,可用空間:n-2/n,有冗余能力 最少磁盤數:4
raid7: 自身帶有處理器和管理工具,可以獨立運行,理論性能最高
raid10: 讀、寫性能提升 可用空間n*s/2 有容錯能力:每組鏡像最多只能壞一塊 最少磁盤數:4
raid01: 讀、寫性能提升 可用空間n*s/2 有容錯能力:每組鏡像最多只能壞一塊 最少磁盤數:4
JBOD:將多塊磁盤組合成一個大的空間
創建軟件raid:mdadm[mode]<raiddevice>
支持級別:0,1,4,5,6,10
使用分區創建raid需要改格式
mdadm :
-C 創建: -a:自動創建raid設備的設備文件 -n:創建raid的設備個數 -x:空閑設備的個數 -l:raid的級別 -c:指定塊的大小
-D:顯示raid的詳細信息
查看md#的狀態 cat/proc/mdstat
管理模式: -f:模擬磁盤損壞 -a:增加磁盤 -r:移除磁盤
-G:增加raid新成員
ps:mdadm –G –n(加上原來成員的總數) -a /dev/#
生成配置文件:mdadm –Ds >/etc/mdadm.conf(若無配置文件則raid關閉后不能再啟動)
mdadm –S停止raid
mdadm –A激活raid
mdadm –R 強制啟動raid
raid的刪除:
mdadm – -zero-superblock刪除raid成員分區內信息
1. 停止raid服務
2. 取消掛載
3. 刪除raid成員分區
4. 刪除raid成員分區信息
原創文章,作者:zzzzz1357x1,如若轉載,請注明出處:http://www.www58058.com/41774
文章理論多于實踐,對于理論部分可以通過圖片來展示磁盤結構會更形象,同時更需要通過實踐來加深自己的理解。