I/O Ports:I/O設備地址
一切皆文件:
poen(),read(),write(),close()
設備類型:
塊設備:block,存取單位 “塊” 磁盤
字符設備:char,存取單位 “字符” 磁盤
設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信
主設備號:major number 標識設備類型
次設備號:minor number 標識同一類型下的不同設備
硬盤接口類型:
并行:
IDE:133MB/S
SCSI:640M/s
串口:
SATA:6Gbps
SAS: 6Gbps
USB: 480MB/s
rpm:rotations per minute
設備文件
磁盤 設備的設備文件命名:/dev/DEV_FILE
IDE:/dev/hd
SCSI,SATA,SAS,USB:/dev/sd
不同設備:a-z
/dev/sda /dev/sdb
同一設備上的不同分區:1,2,…..
/dev/sda1 /dev/sda5
硬盤存儲術語
head: 磁頭
track: 磁道
cylinder:柱面
seccotr: 扇區 512bytes
分區空間
設備識別
設備分區
創建文件系統
標記文件系統
在/sec/fstab文件中創建條目
掛載新的文件系統
磁盤分區
為什么要分區?
優化I/O性能
實現磁盤空間配額限制
提高修復速度
隔離系統和程序
安裝多個OS
采用不同文件系統
分區
兩種分區方式:MBR GPT
MBR:Master Boot Record
1982年 使用32位表示扇區數,分區不超過2T
如何分區:按柱面
0磁道0扇區:512bytes
446bytes:boot loader
64bytes:分區表
16bytes:標識一個分區
2bytes:55AA
4個主分區;3個主分區+1擴展(N個邏輯分區 )
GPT:GUID(Globals Unique Identifiers) partition tab 支持128分區,使用64位,支持8Z(512Byte/blocck)64Z (4096Byte/block)
使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
UEFI(統一擴展固件接口)硬件支持GPT,使操作系統啟動.
EFI部分又可以分為4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域
管理分區
lsblk
創建分區使用:
fdisk創建MBR分區 也支持GPT 對于一塊硬盤 最多只能管理15個分區
gdisk 創建GPT分區
GNU parted 高級分區操作(創建,復制,調整大小等等)
partprobe:重新設置內存中的內核分區表版本
分區工具fdisk和gdisk
fdisk /dev/sdb
gfisk /dev/sdb 類fdisk的 gfisk是GPT分區工具
fdisk -l[-u] [device….]
命令參數:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
w 保存并退出
q 不保存并退出
同步分區表
查看內核是否已經識別新的分區:
cat /proc/partations
通知內核重新讀取硬盤分區表
新增分區:
partx -a -n M:N /dev/DeviCE
Kpartx -a /dev/DEVICE -f:force
Centos5和7使用:partprobe
partprobe [/dev/DEVICE]
parted命令:
parted的操作都是實時生效的,小心使用?。?/p>
用法:parted [選項]…[設備[命令[參數]…]…]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默認M)
patred /dev/sdb rm 1
parted -l
文件系統
文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法,操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統,具體地說,它負責為用戶建立文件,存入,讀出,修改,轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等
文件系統類型:
Linux文件系統:ext2(Extended file system),ext3,ext4,xfs(SGI),btrfs(Oracle),reiserfs,jfs(AIX),swap
光盤:iso9660
Windows:fat32 ntfs
Unix:FFS(fast) UFS(uninx) JF32
網絡文件系統 :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命令:
mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
mkfs -t FS_TYPE /dev/DEVICE
-L “LABEL” 設定卷標
創建ext文件系統
mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L 'LABEL'
-j 相當于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #:為數據控件中每多少個字節創建一個inode;此大小不應該小于block的大小
-N #:為數據控件創建多個iNode
-m #:默認5% 為管理人員預留空間占總控件的百分比
-I 一個inode記錄大小128—4096
-O FEATURE[….]:啟動指定特性
-O ^FEATURE[…]: 關閉指定特性
文件系統標簽
指定設備的另一種方法
與設備無關
blkid:塊設備屬性信息查看
blkid [OPTION] ….[DEVICE]
-U UUID:根據指定的UUID來查找對應的設備
-U LABEL:根據指定的LABEL來查找對應的設備
e2label:管理ext系統文件系統的LABEL
e2label DEVICE [LABEL]
findfs: 查找分區
findfs [options] UUID=<uuid>
findfs [options] LABEL=<label>
tune2fs
tune2fs:重新設定ext系列文件系統可調整參數的值
-l: 查看指定文件系統超級塊信息:super block
-L 'LABEL':修改卷標
-m #:修改預留給管理員的空間百分比
-j:講ext2升級為ext3
-O:文件系統屬性啟用或禁用 -O ^has_journal
-o: 調整文件系統的默認掛載選項 -o ^acl
-U UUID:修改UUID號
dumpe2fs:
-h:查看超級塊信息(分組信息),分區用分組管理
超級塊和inode table
文件系統檢測和修復
常發生于死機或者非正常關機之后
掛載為文件系統標記為“dirty”
fsck:File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a:自動修復錯誤
-r:交互式修復錯誤
#注意:FS_TYPE一定要與分區上已經有的文件類型相同;
e2fsck:ext系統文件專用的檢測修復工具
-y:自動回答為yes
-f:強制修復
掛載mount
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其他文件訪問入口的行為
卸載:為解除此關聯關系的過程
把設備關聯掛載點:mount point
mount
卸載時:可使用設備,也可以使用掛載點
umount
掛載點下原有文件在掛載完成后會被臨時隱藏
掛載點目錄一般為空
用mount掛載文件系統
掛載方法:mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備
mount [-f nrsvw] [-t vfstype] [-o options]device dir
device:指明要掛載的設備;
設備文件:例如/dev/sdb1
卷標:-L 'LABEL' :例如 -L 'DATA'
UUID -u 'UUID' 例如 -U '012e90b9-2646-4c07-b35b-aae359255cde'
偽文件系統名稱:proc sysfs devtmpfs configfs
dir:掛載點
事先存在;建議使用空目錄
進程正在使用中的設備無法被卸載
mount常用命令選項
-t vsftype:指定要掛載的設備上的文件系統類型
-r: readonly 只讀掛載
-w:read and write 讀寫掛載
-n:不更新/etc/mtab,相當于mount
-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstable文件中,且掛載選項中有auto功能)
-L 'LABEL':以卷標指定掛載設備
-U 'UUID':以UUID指定要掛載的設備
-B –bind:綁定目錄到另一個目錄上
#查看內核追蹤到的已掛載的所有設備:
cat /proc/mounts
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式
synnc:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄訪問的時間戳
auto/noauto:是否支持在此文件系統上使用設備文件
dev/nodev:是否支持在此文件系統上使用設備文件
suid/nosuid:不支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啟用此文件系統上的acl功能
Defaults:相當于rw,suid,dev,exec,auto,nouser,async
卸載命令
查看掛載情況:
#findmnt MOUNT_POINT
查看正在訪問指定文件系統的進程:
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
終止所有正在訪問指定的文件系統的進程
#fuser -km MOUNT_POINT
卸載
#umount DEVICE
#umount MOUNT_POINT
原創文章,作者:鬧鐘哥,如若轉載,請注明出處:http://www.www58058.com/40529
文章對當天所學知識點進行了完整的整理,但是對于一些專有名詞未能進行詳細描述,這是不合適的,比如一切皆文件,也就是說linux通過一些系統調用來實現將一切設備等其他接口抽像為文件,這些系統調用函數包括open()打開文件。。。。等,我們要站在一個小白的基礎上寫博客,力求讓沒有基礎的同學也能看懂,整體下來,文章內容整理的還算完善,但有些地方還需要用心改善。