一、複習本次課程所講的內容;node
Linux磁盤管理
硬盤:硬盤是通用的叫法,其實硬盤和磁盤是同樣的,都是用來存東西的;還有磁帶、光盤、U盤等只是存儲的介質不同。
機械式硬盤
SSD固態硬盤linux
機械式:
track磁道
每一個扇區(sector): 512bytes
磁柱(cylinder): 分區的基本單位;vim
主引導記錄 MBR:Master Boot Record 512bytes
446: bootloader
64: filesystem allocation table
16: 標識一個分區
2:55AAwindows
磁盤的主引導扇區=磁盤的主引導記錄(MBR 446)+磁盤分區表(DPT 64) +結束符(55AA)網絡
bootload能夠安裝在磁盤的主引導記錄(MBR)或是分區的引導記錄(PBR,也叫DBR)
(1)linux的bootload能夠安裝在二者上(MBR,PBR)
(2)windows自行安裝的MBR只用做跳轉到指定的分區上,windows的bootloader 是安裝在分區的PBR上的。dom
磁盤接口類型:
IDE (ATA):133MB/s,/dev/hd
SCSI: 640MB/s
SATA:6Gbps
SAS:6Gbps
USB:480MB/s異步
識別硬盤設備:/dev/sd
標記不一樣的硬盤設備:/dev/sd[a-z]
標記同一設備上的不一樣分區:/dev/sd[a-z][1-]
1-4: 主或擴展分區標識
5+:邏輯分區標識async
設備文件:特殊文件
設備號:
major, minor
major: 設備類型
minor: 同一類型下的不一樣設備分佈式
「塊」:block,隨機設備
「字符」:character,線性設備ide
GPT
設備文件分爲兩種:塊設備文件(b)和字符設備文件(c)
設備文件通常存放在/dev目錄下,對常見設備文件做以下說明:
/dev/hd[a-t]:IDE設備
/dev/sd[a-z]:SCSI設備
/dev/fd[0-7]:標準軟驅
/dev/md[0-31]:軟raid設備
/dev/loop[0-7]:本地迴環設備
/dev/ram[0-15]:內存
/dev/null:無限數據接收設備,至關於黑洞
/dev/zero:無限零資源
/dev/tty[0-63]:虛擬終端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:並口
/dev/console:控制檯
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]
/dev/random:隨機數設備
/dev/urandom:隨機數設備
分區:分隔存儲空間爲多個小的空間,每一個空間可獨立使用文件系統;
分區工具:
fdisk, parted, sfdisk
fdisk工具的使用:
最多支持在一塊硬盤上的15個分區;
分區管理子命令:
p: 顯示
n: 建立
d: 刪除
t: 修改分區ID
l: 列出全部支持ID類型
w: 保存退出
q: 放棄修改並退出
m: 獲取幫助
建立完成以後,查看內核是否已經識別新的分區:
# cat /proc/partitions
有三個命令可讓內核重讀磁盤分區表:
CentOS 5: partprobe [DEVICE]
CentOS 6,7:
partx
kpartx
partx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE
M
M:
:N
kpartx命令:
kpartx -af DEVICE 通知內核強制重讀分區表【對於一個已經存在的磁盤,內核是不會直接識別的】
二、總結整理磁盤管理及文件系統管理中設計的各類命令的使用,並附註必定的示例;
1)、查看系統分區狀況
2)獲取fdisk參數信息的相關幫助
命令:fdisk /dev/sda #進入fdisk操做環境
m #打印幫助 列表
3)新建分區
按n #建立一個分區
Command (m for help): m
Command 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)Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (7063-26108, default 7063):
Using default value 7063
Last cylinder, +cylinders or +size{K,M,G} (7063-26108, default 26108): +10GCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 設備或資源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.重啓後生效。
linux文件系統管理
文件系統:
VFS:Virtual File System
Linux:ext2,ext3,ext4,reiserfs,xfs,btrfs,swap
光盤:iso9600windows:fat32(vfat),ntfs
Unix:ffs,ufs,jfs,jfs2
網絡文件系統:nfs,cifs
集羣文件系統:ocfs2,gfs2
分佈式文件系統:ceph
mosefs,mogilefs,hdfs,gfs,gluterfs
(1)日誌型文件
非日誌型文件:ext2
日誌型文件系統:ext3,ext4,reserfs,xfs,btrfs,swap
日誌型文件系統[ext3,ext4]和非日誌型文件系統[ext2]的區別:
日誌型寫入步驟:1.預備,當系統要寫入文件時,會先在日誌記錄塊中記錄某個文件準備要寫入的信息
2.實際寫入,開始寫入文件的權限和步驟;開始更新meta data[中間數據]的數據
3. 結束,完成數據與metadata的更新後,在日誌記錄塊中完成該文件的記錄
非日誌寫入步驟:1. 先肯定用戶對於欲添加文件的目錄是否有w和x權限,如有的話才能添加
2.根據inode bitmap 找到沒有使用的inode號碼,並將新文件的權限/屬性寫入
3.根據block bitmap 找到沒有使用的block號碼,並將實際數據寫入block中,且更新inode的block指向數據
4.將剛纔寫入的inode與block數據同步更新inode bitmap與block bitmap,並更新superblock的內容
當中途斷電等因素致使系統中斷時,會出現數據的不一致狀態,這時非日誌文件系統須要進行一致性檢查,很費時間。而日誌文件系統,只須要去檢查日誌記錄塊就能夠知道那個文件發生了問題,沒必要去針對整塊文件系統去檢查。
(2)swap:交換分區
建立文件系統:
在分區上執行格式化(高級格式化)
要使用某種文件系統,知足兩個條件
內核中:支持此種文件系統
用戶空間:有文件系統管理工具
建立工具:mkfs(make file system)
-t {ext2|ext3|ext4}:指明要建立的文件系統類型
mkfs-t ext4 = mkfs.ext4 = mke2fs -t ext4
b {1024|2048|4096}:其上限由page frame決定
-L LABEL:指定要使用的卷標[使用時,LABEL='MYLABELNAME']
-j: 至關於使用-text3
mkfs.ext3= mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 指明inode與字節的比率[不加% ],;即,每多少字節給建立一個inode;
-N #: 直接指明給此文件系統建立多少個inode
-m #:指定預留空間的百分比[只有root能用,不用%];默認爲5;
-O [^]FEATURE:能夠用來指明這個文件系統額外能夠具備的屬性,具體能夠查看man手冊
例:-o has_journa 啓用日誌屬性
-o ^has_journa 不啓用日誌屬性
e2label: 調整卷標
查看:e2label /dev/DEVICE
設定卷標:e2label /dev/DEVICE LABEL
tune2fs:查看或修改ext系列文件系統的某些屬性
查看超級塊中的數據信息:如UUID:全局唯一標識符
tune2fs-l /dev/DEVICE
例 tune2fs -l /dev/sda5
修改指定文件系統的屬性:
-j:ext2 --> ext3
-L LABEL: 修改卷標;
-m #: 調整預留空間的百分比;
-O [^]FEATURE: 開啓或關閉某種特性
-o [^]mount_options: 開啓或關閉某種默認掛載選項
-o acl開啓acl
-o ^acl關閉acl
dumpe2fs命令:顯示ext系列文件系統屬性信息
dumpe2fs[-h] /dev/DEVICE
例dumpe2fs -h/dev/sda5
blickid命令:能夠查看文件類型
檢測文件系統
fsck.ext2, fsck.ext3, fsck.ext4, fsck.xfs ...
fsck:文件系統檢查命令
-tFSTYPE
fsck-t FSTYPE = fsck.FSTYPE
例fsck -t ext4 修復即刪除不一致文件
-a:自動修復全部錯誤[慎用]
-r: 交互式修復錯誤
ext系列文件系統的專用工具:
e2fsck
-y: 對全部問題自動回覆爲yes;
-f: 即便文件系統處於clean狀態,也要強制進行檢測;
Windows沒法識別Linux上專用的文件系統,所以,有存儲設備須要兩種系統之間交叉使用時,應該使用windows支持的文件系統:
#mkfs -t vfat /dev/DEVICE
掛載:
注意:1.在Linux系統上,全部的文件系統必須經過根文件系統的某個分支來訪問;
2.單一文件系統不該該被重複掛載在不一樣的掛載點(目錄)中
3.單一目錄不該重複掛載多個文件系統
4.做爲掛載點的目錄理論上應該都是空白目錄,否則原來目錄下的文件會被隱藏
根文件系統:根是一切文件系統的訪問入口,根關聯到的分區,有必定的要求:FHS
除了根,其他全部的其它文件系統若是想要被訪問,都只可以經過「關聯」至根文件系統上的某個目錄來實現;這種操做即所謂的「掛載」,也即mount;相反動做,即卸載,命令爲umount
掛載點:mount_point,即用於做爲另外一個文件系統訪問入口的目錄;
mount命令:
mountDEVICE MOUNT_POINT
掛載點
一、事先存在;
二、應該使用別的進程未使用的目錄;
三、掛載點下原有的文件將被隱藏;
mount:將顯示當前系統已經掛載的全部文件系統的相關信息;
mount[OPTION]... [-t FSTYPE] [-o OPTION] [DEVICE] MOUNT_POINT
命令選項:
-r: 只讀掛載
-w: read and write,讀寫掛載
-t FSTYPE: 被掛載的設備上的文件系統類型;可省略,此時mount會自動使用blkid命令來判斷之;
-L LABEL: 以卷標的方式指定要掛載的設備,所以,此時DEVICE必須省;
-U UUID:以UUID的方式指定要掛載的設備,所以,此時DEVICE必須省;
-a: 自動掛載全部的支持自動掛載的設備(/etc/fstab文件中定義的支持自動掛載的設備);
-n: 默認狀況下,設備掛載與否的改變結果會被保存於/etc/mtab中一份;-n選項用於變更時不更新此文件
此時,若是想查看掛載的全部文件系統:cat /proc/mounts
-a: 自動掛載全部支持自動掛載的設備;
-B:綁定目錄至另外一個目錄上;
-o 掛載選項:
async:異步模式
sync: 同步模式
atime/noatime:是否更新訪問時間戳;
diratime/nodiratime:是否更新目錄的訪問時間戳;
auto/noauto: 是否容許此設備被自動掛載;
exec/noexec:是否容許執行此文件系統上應用程序;
dev/nodev:是否支持在此設備上使用設備文件;
suid/nosuid:
remount:從新掛載
ro
rw
user/nouser: 是否容許普通掛載此設備;
acl:是否支持此設備上使用facl;
defaults:rw, suid, dev, exec, auto, nouser, and async
umount:卸載命令
# umount DEVICE
# umount MOUNT_POINT
查看正在訪問指定掛載點的進程:
# fuser -v MOUNT_POINT
終止全部正在訪問指定的掛載點的進程:
# fuser -km MOUNT_POINT
三、建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄
1)建立掛載點 #mkdir /mydata
2)建立分區 #我已建立sda3
3)分區文件系統高級格式化 #mkfs.ext4 /dev/sda3
4)配置掛載文件:/etc/fstab #vim /etc/fstab
/mydata ext4 defaults 0 0
5)掛載到 /mydata
# mount /dev/sda3 /mydata