硬盤接口類型:
IDE:并口,133M/s;100個IO/s
SCSI:并口,UltraSCSI320,320M/s UltraSCSI640 640M/s 150-200IO/s
SATA:串口,6Gbps/8=750M/s 100IO/s
SAS:串口,6Gpbs
USB:串口 480M/s
注意:上述速度指的是接口定義的最快速度,但實際傳輸可能到不到上面所述的速度。
lops:每秒能完成多少個IO,每個IO就是一次存取操作,機械硬盤 400IO/s。
設備類型:
塊設備:隨機訪問,數據交換單位是“塊”
字符設備:線性訪問,數據交換單位是“字符”
設備文件:存儲數據指針的空間當中存儲的是設備號,位圖索引,關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信。
設備號:
major:主設備號,區分設備類型,用于標明設備所需要的驅動程序
minor:次設備號,區分同種類型下的不同設備,是特定設備的訪問入口
引用設備的方式:
設備文件名
卷標
UUID:可以唯一標識一個設備
磁盤的基礎知識:
盤面最外側是0磁道,依次往里遞增(0磁道存放MBR)
扇區固定大小512個字節
磁道一圈最多63個扇區
磁道最多1024個
磁頭數等同于盤面數最多256個
柱面的大小=扇區大小*扇區數*盤面數=512字節*63個*256個=7.875M
磁盤的三維:CHS —cylinder 柱面 head 磁頭 secotr 扇區
磁盤分區:
兩種分區方式:
MBR: Master Boot Record, 使用32位表示扇區,分區不能超過2T數, 分區不超過2T,cenots6 按照柱面分區,cenots7按照扇區分區,0磁道0扇區主引導分區MBR 512字節,446引導程序,64分區表,16B引導一個分區,最多4個分區,2bytes,55AA,用于標識硬盤是否分區,且最多4個主分區或3個主分區+1擴展(N個邏輯分區)。
注意:MBR位于0磁道0扇區的主活動分區,每塊邏輯分區都有自己的EBR,當我們備份主分區的MBR時:dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 , 要求還原的硬盤與備份的硬盤大小一致,此時恢復只能恢復主分區的,不能恢復邏輯分區。
dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=510 seek=510 覆蓋55AA
hexdump -C -n 512 /dev/sda 以二進制形式查看/sda設備的前512個字節
-v 顯示所有信息
-C 以二進制形式顯示
有一個大與2K的二進制文件fileA。 現在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,請問如何實現?
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
GPT: Globals Unique Identifiers,partition table 支持128個分區,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)
使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動
磁盤的組成部分:
1、MBR:主引導分區512bytes,446引導程序,64分區表,16B引導一個分區,最多4個分區,2bytes,55AA,用于標識硬盤是否分區。
2、super block: 存放塊組信息,記錄的是inode和block 應該有多少個block,已用多少,剩余多少。
3、inode:有文件存儲在block的時候,在inode的位置都會有該文件相關的記錄,記錄該文件的屬性信息,user、group等,也會指明該文件存放在那個block里,相當與目錄,內容存在block中。
4、block:存儲內容的,每一個block成為一個塊,默認是4k,block是真正存儲文件的地方,當一個block存儲數據后,如果有剩余也不 能存儲其他文件了,文件1k,block4k,該block也不能用了,劃分分區的時候可以指定block的大小,如存儲12k的文件,會占用3個 block,如果說一個block1k那么會占用12個block,那么讀取的block會比價多,尋到時間會比較長,效率比較低。
Block group的組成部分:
第一部分:存儲的是super block
第二部分:文件系統的描述信息,比如每個block group是從第幾個開始到第幾個block結束。
第三部分:塊位圖/塊對照表 那些block沒有被使用,哪些被使用了
第四部分:inode位圖 哪些inode被使用,哪些剩余
第五部分:inode表 每記錄一個文件都會在inode寫相應的條目,保存文件的屬性信息,每記錄將消耗128B的空間,每次指向一個block塊將消耗4B,一共可指向32個塊。
磁盤管理相關命令:
列出設備:
lsblk
cat /proc/partitions
ls /dev/sd*
注意:上述三種方法列出內存中的設備信息,可能會存在不同步的問題。
系統添加硬盤后讓其識別的方法:
echo "- – -" > /sys/class/scsi_host/host2/scan centos6 上添加硬盤之后,讓系統識別
echo "- – -" > /sys/class/scsi_host/host0/scan centos7
創建、編輯分區:
fdisk:
1、查看磁盤的分區信息
fdisk -l device:查看指定磁盤的設備的分區信息
fdisk -lcu 以扇區的形式顯示 centos6 默認是以柱面單位顯示分區的
2、管理分區
fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能,所有操作都在內存中完整,沒有直接同步到磁盤,只有當執行保存w命令時才同步到磁盤。
常用命令:
d: 刪除
n: 新建
p: 列出
t: 調整分區ID
l: 列出內核支持的分區ID
w: 保存退出
q: 不保存退出
注意:在已有的分區或者已經創建掛載的分區上面創建新的分區,內核可能無法立即識別,需要重新通知內核識別。
parted:
parted的操作都是實時生效的,小心使用
用法: parted [選項]… [設備 [命令 [參數]…]…]
parted /dev/sdb mklabel gpt|msdos 將磁盤類型轉換為gpt 或msdos形式
parted /dev/sdb print 打印當前分區
parted /dev/sdb mkpart primary 1 200 (默認M) 劃分一個起始位置為1,大小為200M的分區
parted /dev/sdb rm 1 刪除第一個分區
通知內核重新識別新的分區:
新增分區用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
刪除分區用
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
CentOS 5, 7: 使用partprobe(此命令在centos6中不起作用)
partprobe [/dev/DEVICE]
文件系統:
文件系統類型:
Linux文件系統: : ext2(Extended file system), ext3,ext4, xfs( SGI) , btrfs( Oracle) , reiserfs, jfs(AIX) , swap
光盤: iso9660
Windows: fat32, ntfs
網絡文件系統: NFS, CIFS
集群文件系統: GFS2, OCFS2( oracle)
分布式文件系統: ceph, moosefs, mogilefs, glusterfs,Lustre
RAW:未經處理或者未經格式化產生的文件系統
文件系統分類:
根據其是否支持"journal"功能:
日志型文件系統: ext3, ext4, xfs, …
非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊: ext4, xfs, vfat
用戶空間的管理工具: mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統: VFS
查前支持的文件系統: cat /proc/filesystems
文件系統的管理工具:
創建文件系統的工具:mkfs mke2fs
檢測及修復文件系統的工具:fsck e2fsck(ext文件系統專用)
查看文件系統的屬性的工具:tune2fs dumpe2fs
查看或設定卷標的工具:e2label
查看文件系統的UUID和文件系統類型、卷標:blkid
查看磁盤的使用情況:df
查看目錄的大?。篸u
查找分區:findfs
查看當前系統上掛載的設備:mount | cat /etc/mtab | cat /proc/mounts
查看掛載點被哪個程序或進程所占用:lsof | fuser -v
終止所有正在被訪問的掛載點進程:fuser -km
mke2fs:
mke2fs [option] device
-t{ext2|ext3|ext4}:指明要創建的文件系統類型。
-L LABEL:指明卷標
-b{1024|2048|4096}:指明塊大小
-j:創建有日志功能的文件系統ext3
mke2fs -j = mke2fs -t ext3 = mkfs.ext3
-i#:bytes-per-inode,每多少個字節一個inode,指明inode與字節的比例,此大小不應該小于block的大小。
-I :一個inode記錄大小128—4096
-N#:直接指明要給此文件系統創建的inode數量
-m#:指定預留空間的百分比,默認5%
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關閉指定特性
e2label:
e2label device:查看卷標
e2label device LABEL 設定卷標
findfs:
findfs [options] LABEL=labelname
findfs [options] UUID=uuid
tune2fs:
-l device:查看超級快的屬性信息
-L LABEL:指明卷標
-m#:指定預留給管理員的空間百分比
-O[^]feather:開啟或關閉某中特性
tune2fs -O ^has_journal /dev/sda3 關閉日志功能
tune2fs -O has_journal /dev/sda3 開啟日志功能
-o[^]mount_options:開啟或關閉某種掛載選項
tune2fs -o acl /dev/sda3 默認掛載到acl
-j: 將ext2升級為ext3
-U UUID: 修改UUID號
dumpe2fs命令:顯示ext文件系統的屬性信息(超級快和塊組的信息)
dumpe2fs [-h] /dev/sda5
e2fsck:
-y:對所有問題自動回答為yes
-f:及時文件系統處于clean狀態,也要強制進程檢測
fsck:
-t:指明文件系統類型
-a:無需交互自動修復錯誤
-r:交互式修復
因進程意外終止,或者系統崩潰等原因導致正常操作終止,可能造成文件系統損壞,此時應該檢測并修復文件系統,建議離線進行,不要掛載。
blkid:
-L LABEL:根據LABEL定位設備
-U UUID:根據UUID定位設備
df:
-T:顯示系統類型
-l:顯示本地文件的信息
-h:human-readable
-i:顯示inode的狀態而非block
du:
du -sh /etc 查看/etc/目錄的大小
swap交換分區:
創建交換分區:mkswap
-L LABEL:指明卷標
啟用/禁用:swapon/swapoff
掛載mount
根文件系統之外的文件系統要想能夠被訪問,都必須通過“關聯”至根文件系統上面的某個目錄來實現,此關聯操作即為掛載,目錄即為掛載點。
掛載點:用于作為另外一個文件系統的訪問入口
1、事先存在,
2、應該未被使用或不被其他進程使用到的目錄
3、掛載之后原有的文件將會被隱藏
mount的常用選項:
-r:只讀掛載,光驅
mount -r /dev/cdrom /media/media
-w:讀寫掛載
-n:默認情況下,設備掛載或卸載的操作會同步更新至/etc/mtab中,-n禁用此特性
-t vfstype:指明要掛載的設備上文件系統的類型,可省略,此時mount會自動通過blkid自動識別文件系統的類型、
-a:自動掛載所有/etc/fstab文件中支持自動掛載的設備
-L LABEL:掛載時以卷標的方式指明設備
mount -L LABEL /media
-U UUID:掛載以UUID的方式指明設備
mount -U UUID dir
-B, –bind: 綁定目錄到另一個目錄上
-o option選項:
sync/async:同步(內存更改時,同時寫磁盤)/異步操作
atime/noatime:文件或目錄被訪問的時候是否更改其時間戳
diratime/nodirname:目錄被訪問的時候是否更改時間戳
remount:重新掛載
acl:支持使用facl功能
ro:只讀
rw:讀寫
uto/noauto: 是否能夠被mount -a選項自動掛載
dev/nodev:此設備上面是否允許創建設備文件
exec/noexec:是否允許運行此設備上面的程序文件
user/nouser:是否允許普通用戶掛載此文件系統
suid/nosuid:是否允許程序文件上面的suid生效
default:rw nosuid exec auto nouser async reatime
查看掛載情況:
mount
cat /etc/mtab
cat /proc/mounts (最全)
查看正在訪問指定文件系統的進程:
lsof MOUNT_POINT
fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程:
fuser -km MOUNT_POINT
取消掛載:
umount DEVICE
umount MOUNT_POINT
補充:centos7 添加misc 文件夾的方法
yum install autofs -y
systemctl start autofs
原創文章,作者:Naruto,如若轉載,請注明出處:http://www.www58058.com/40448
文章結構層次清晰,內容完整,建議多些實際操作,只有理論和實踐結合起來,才能更好的的發現問題,并將其總結成經驗。