MBR: Master Boot Record, 主引導記錄又叫做主引導扇區,是計算機開機後訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址爲(柱面,磁頭,扇區)=(0,0,1)。在深入討論主引導扇區內部結構的時候,有時也將其開頭的446字節內容特指爲“主引導記錄”(MBR),其後是4個16字節的“磁盤分區表”(DPT),以及2字節的結束標誌(55AA)。
主分區:分區信息記錄在DPT中的分區,而且只能將主分區設置爲活動分區.由於DPT只有4個16字節所以只能記錄4個分區信息,所以一塊MBR硬盤只能接受4個主分區.
擴展分區:引用額外的分區表,可以在擴展分區中繼續分配邏輯分區以擴大磁盤的分區數量.擴展分區不能格式化創建文件系統,只能在擴展分區下繼續新建邏輯分區.在MBR分區表中最多4個主分區或者3個主分區+1個擴展分區,也就是說擴展分區只能有一個,然後可以再細分爲多個邏輯分區。
GPT: 全局唯一標識分區表(GUID Partition Table)是一個實體硬盤的分區表的結構佈局的標準硬盤接口,支持更多的磁盤分區表
fdisk /dev/sda 格式化硬盤
d: 刪除
n: 新建 子命令: e,創建擴展分區; p,新建邏輯分區
p: 列出
t: 調整分區ID
l: 列出內核支持的分區ID
w: 保存退出
q: 不保存退出
文件系統:是一種存儲和組織計算機數據的方法,它使得對其訪問和查找變得容易,文件系統使用文件和樹形目錄的抽象邏輯概念代替了硬盤和光盤等物理設備使用數據塊的概念,用戶使用文件系統來保存數據不必關心數據實際保存在硬盤(或者光盤)的地址爲多少的數據塊上,只需要記住這個文件的所屬目錄和文件名。
文件系統常見文件系統類型:
基本文件系統:Ext2, Ext3, Ext4, Reiserfs, xfs, JFS, vfat, NTFS
交換分區:swap
集羣文件系統:GFS2, OCFS2
網絡文件系統:NFS, smbfs(CIFS)
光盤:iso9660
raw: 沒有格式化創建文件系統的硬盤
Linux系統下常見的文件目錄
/bin, /sbin 默認存放二進制程序
/usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
/lib, /lib64, /usr/lib, /usr/lib64 默認存放庫文件目錄
/etc/ 默認存放配置文件目錄
/media, /mnt 臨時掛載目錄
/dev 設備文件目錄
/proc, /sys 內核信息輸出目錄
/home, /root 用戶的家目錄
/var 存放經常
/opt, /misc
/srv 默認服務存放的目錄
/tmp 臨時文件目錄
/boot 啓動文件信息目錄
/usr
重載硬盤分區:
CentOS 5: partprobe
CentOS 6: partx, kpartx 重讀硬盤分區
kpartx -l /dev/sda
kpartx -af /dev/sda
partx -a /dev/sda
格式化:是指對磁盤或磁盤中的分區(partition)進行初始化或創建文件系統的一種操作,這種操作通常會導致現有的磁盤或分區中所有的文件被清除。又分爲高級格式化和低級格式化:多數情況下,低級格式化,往往是指硬盤的填零操作;高級格式化又稱邏輯格式化,它是指根據用戶選定的文件系統,在磁盤的特定區域寫入特定數據,以達到初始化磁盤或磁盤分區、清除原磁盤或磁盤分區中所有文件的一個操作。
Linux系統根據版本默認使用的文件系統: ext2,3,4
創建文件系統:
mkfs: 指定文件系統類別,調用mkfs.ext2命令
-t fstype /dev/somedevice #fstype 文件系統類型
# mkfs -t ext2 /dev/sda3
mke2fs 功能更強大,與mkfs,mkfs.ext2調用命令的關係
Ext4: mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
Ext3: mkfs -t ext3 = mkfs.ext3 = mke2fs -t ext3 = mke2fs -j
mke2fs: 配置文件在etc/mke2fs.conf
常用選項
-t {ext2|ext3|ext4} 選定文件系統類型
-j : 相當於-t ext3
-L Label:卷標
-b {1024|2048|4096}:指定塊大小
-i #: #個字節給預留一個inode,相當於數據塊和inode塊的比例
-N #: 直接指定預留多少個Inode,
-I #:Inode大小
-m #:預留管理員的空間百分比,默認爲5
-O:指定分區特性
e2label:分區卷標操作命令
e2label /dev/SOMEDEVICE: 查看卷標
e2label /dev/SOMEDEVICE Label: 設定卷標
blkid /dev/SOMEDEVICE: 查看設備的屬性,UUID(分區ID號)和TYPE(文件系統類型)
dumpe2fs:磁盤塊數據參看命令
-h: 僅查看超級塊中保存的信息
tune2fs: 調整查看超級塊信息
-l: 查看超級塊中的信息
-L label: 設定卷標
-m: 預留管理員的空間百分比,默認爲5
-j: 如果原來的文件系統爲ext2, -j能夠將其提升爲ext3
-o [^]mount-options[,...]:設定其默認掛載選項,加^表示關閉
-O [^]feature[,...] :調整分區特性
fsck: 文件系統檢測修復
-t fstype :
-a: 自動修復錯誤
-r: 交互式修復錯誤
-f: 強行檢測
e2fsck:
-f: 強制檢測
-y: 對問題自動回答爲yes
交換分區:在物理內存使用完之後,將磁盤空間(也就是SWAP分區)虛擬成內存來使用.需要注意的是,雖然這個SWAP分區能夠作爲"虛擬"的內存,但它的速度比物理內存可是慢多了,因此如果需要更快的速度的話,並不能寄厚望於SWAP,最好的辦法仍然是加大物理內存.SWAP分區只是臨時的解決辦法.
mkswap 格式化文件爲交換分區
-L label:指定交換分區的卷標
swapon 啓動交換分區
-a: 所有
-p #: 指定優先級
swapoff 停用交換分區
-a
hdparm :獲取IDE和SATA硬盤的信息
-i 從CPU上獲取
-I 直接從硬盤上讀取
-g 顯示磁盤的佈局信息
-t 測試硬盤性能
-T
/proc/partitions 分區
/proc/meminfo 內存信息
/proc/filesystems 已識別的文件系統類別 nodev模擬的文件系統
掛載:指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上, 然後通過訪問這個目錄來訪問存儲設備。內核啓動時只啓動/根分區所有文件都需要與/根分區關聯才能使用,把文件與/根分區相關聯
掛載條件:
1、掛載點必須是一個目錄。
2、一個分區掛載在一個已存在的目錄上,這個目錄可以不爲空,但掛載後這個目錄下以前的內容將不可用。對於其他操作系統建立的文件系統的掛載也是這樣。
卸載條件: 空閒時可以被卸載.
mount: 直接使用,可顯示當前系統所有已掛載的設備.還可以通過查看文件/proc/mounts, /etc/mtab查看
mount [options] [-t fstype] [-o option] 設備 掛載點
[options]: 命令的選項
-o options: 掛載時啓用分區特性,
[option]常用選項:
-t fstype:
-r: 只讀掛載
-w: 讀寫
-L lable: 以卷標指定, LABLE=“label”
-U UUID:以UUID指定掛載設備,UUID=“UUID”
-a: 自動掛載所有(/etc/fstab文件中)支持自動掛載的設備
-o [options]啓用分區特性的選項,多個選項之間用,號隔開
async: 異步I/O 數據的寫入在內存上操作,有內核延遲統一寫入.
sync: 同步I/O
noatime|atime: 建議noatime 是否更新寫入文件和目錄訪問時間戳
auto|noauto: 是否能夠被mount -a選項自動掛載;
diratime|nodiratime: 是否更新目錄的訪問時間戳;
exec|noexec:是否允許執行其中的二進制程序;
_netdev: 阻止網絡啓動之前,自動掛載網絡設備
group:是否允許這個組普通用戶掛載
remount: 重新掛載
acl: 啓用facl,文件訪問控制列表
# tune2fs -o mount-option 設備 啓動mount命令的-o options特性
# tune2fs -o ^mount-option 取消
光盤:
/dev/cdrom, /dev/dvd, /dev/sr0
[-t iso9660]
查看佔用掛載的設備的進程:
fuser -v 掛載點 查看訪問硬件的用戶
fuser -km 掛載點 移除掛載點的用戶
取消掛載
umount 設備|掛載點
df: 磁盤空間使用狀態報告df [options] [device]
-h: human-readable換算爲M顯示大小
-i: inode 查看元數據區信息
-P: POSIX格式輸出文本
du: 評估文件佔用磁盤空間的情況
-s 查看整個目錄佔用大小
-h 以k,M,G大小顯示
開機自動掛載:
/etc/rc.d/rc.sysinit:系統初始化腳本,開機被mount命令讀取!
其中一個功能:掛載/etc/fstab文件中定義的文件系統掛載表
從左至右分別爲:
要掛載的設備:設備文件、LABEL=, UUID=
掛載點:swap沒有掛載點,掛載點爲swap
文件系統類型
掛載選項:多個選項間使用逗號分隔;
轉儲頻率:(備份頻率)
0:從不備份
1:每日備份
2:
自檢次序:
0: 不自檢
1:首先自檢,通常只能被/使用;
2:
查看內存空間使用狀態也可以查看/proc/meminfo文件:
free
-m: 顯示結果以MB爲單位
-g: 顯示結果以GB爲單位
dd命令:創建本地迴環設備,在設備級別複製文件,把文件模擬成硬件.可以用作硬盤的填零操作.
dd if=input_file of=output_file 文件複製
dd if=input_file of=output_file bs=#[b|k|m|g] count=# bs一次複製多大, count複製多少次
dd if=/dev/cdrom of=/tmp/linux.iso 磁盤對拷,製作光盤鏡像
dd if=/dev/sda of=/tmp/myfile bs=512 count=1 複製MBR表,備份MBR表
dd if=/dev/zero of=/dev/sdb bs=500 count=1 複製一個不存在的文件,到一個新設備,清楚磁盤所有分區,
鏈接文件:爲源文件提供多條訪問途徑.
ln [-s] SRC LINKFILE
硬鏈接:將文本形式的鏈接存儲在用於存放文件信息的磁盤上的標準數據結構之中(inode)。指向同一個Inode的磁盤塊訪問路徑,刪除被硬連接文件,要同時刪除文件的所有硬連接文件
硬鏈接不能跨分區;
不能對目錄創建硬鏈接;
硬鏈接會改變文件被鏈接的次數;
硬鏈接與原文件指向同一個inode
符號鏈接:-s,路徑指向,記錄文件在文件系統中的訪問路徑,.特性相當於windows的快捷方式
符號鏈接可以跨分區;
符號鏈接文件跟原文件不同一個inode;
可以對目錄創建符號鏈接;
符號鏈接不會改變原文件被鏈接的次數;
文件數據處理工具:
壓縮工具:
gzip壓縮命令, gunzip = gzip -d解壓命令, zcat不解壓直接查看,生成文件的後綴:.gz
-c: 將壓縮結果送往標準輸出,可以使用重定向將其保存爲壓縮文件,從而保留原文件;
bzip2, bunzip2 = bzip2 -d, bzcat,後綴:.bz2
xz, unxz = xz -d, xzcat,後綴:.xz
通用選項: -#: 指定壓縮比,1-9
歸檔工具:
tar [options] -f file.tar File1 ...
-c: 創建歸檔
-x: 展開歸檔
-t: 不展開而直接查看被歸檔的文件
-v: 處理過程中輸出相關信息
在tar中調用壓縮命令
-z: gzip
-j: bzip2
-J: xz
組合選項:
-zcf
-zxf
-jcf
-jxf
-Jcf
-Jxf
cpio:可以從 cpio 或 tar 格式的歸檔包中存入和讀取文件, 歸檔包是一種包含其他文件和有關信息的文件。 有關信息包括:文件名, 屬主, 時標(timestamp), 和訪問權限。 歸檔包可以是磁盤上的 其他文件, 也可以是磁帶或管道.
RAID: 獨立硬盤冗餘陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗餘陣列(Redundant Array of Inexpensive Disks),簡稱硬盤陣列。其基本思想就是把多個相對便宜的硬盤組合起來,成爲一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。
Level: 僅用於標識RAID磁盤組合方式的不同
raid0: 至少需要兩塊磁盤,沒有容錯能力,讀寫性能都提升,100%
raid1: 至少需要兩塊磁盤,鏡像,硬件容錯能力,讀性能提升,寫性能下降,50%
raid4: 至少需要三塊磁盤,允許一塊盤出錯,讀寫性能提升,(n-1)/n 兩塊數據盤一塊,效驗盤 允許壞一塊
raid5: 至少需要三塊磁盤,允許一塊盤出錯,讀寫性能提升,(n-1)/n 三塊交叉分佈數據塊和效驗數據塊 允許壞一塊
raid6: 至少需要四塊磁盤,允許兩塊盤出錯,讀寫性能提升,(n-2)/n允許壞兩塊
raid10: 至少需要四塊磁盤,允許不同組內各壞一塊盤,讀寫性能提升,50% 先做0再做1
raid01 先做1再做0
jbod: 普通方式將多塊硬盤連接到一起
md: 可以組合任何塊設備,爲軟raid
mdadm, 模式化的工具,軟raid命令工具,/etc/mdadm.conf 配置文件 linux 軟raid模擬環境要將分區格式改爲linux raid auto代碼爲fd
mdadm [mode] <raiddevice> [options] <component-devices>
模式 raid設備名 參數選項 創建raid的硬件
[mode]
-A:裝配模式,加入一個以前定義的陣列.
-C:創建模式創建一個新的陣列,每個設備具有超級塊
-n #: 用於創建RAID設備的設備個數;
-x #: 熱備磁盤的個數;
-l 級別:
-a yes: 自動爲創建的raid設備創建設備文件;
-c Chunk_Size: 指定分塊大小,默認爲512,單位爲KB
# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
-F:監控模式 監控RAID的狀態
管理模式可以省略:-f,模擬損壞 -r,模擬拔掉 -a,替換壞掉的
-S: 移除RAID盤
1,創建一個10G的RAID0,
#前面已經創建了分區sdb1和sdb2不再演示
#因爲要做軟RAID分區必須爲FD格式,首先修改分區類型
#使用mdadm創建分區:
#指定創建的設備名md0;
#-l 指定級別(raid0);
#-n 選擇設備2個分別是sdb1、sdc1;
#格式化Raid設備md0
#掛載到/mydata目錄
2測試RAID可用性mdadm命令不能模擬raid0損壞
#這裏需要模擬raid損壞並查看其效果
#新建一個RAID1,
#查看RAID信息有一個熱備盤
#把指定設備模擬損壞-f
#此時熱備盤自動替換已損壞的硬盤
-r #把損壞的設備移除
-a #新增一個設備到陣列中
-D: 顯示陣列的詳細信息 --detail:
-S /path/to/raid_device: 停止指定的RAID設備
watch 跟蹤命令執行過程
-n #: 每隔#執行一次指定的命令;單位爲秒鐘
使用格式:watch -n # 'COMMAND'
練習:創建一個大小爲4G的RAID5;
給其添加一個空閒盤,模擬損壞等;
停止raid;
練習1:創建一個空間大小爲10G的RAID5設備,要求其chunk大小爲1024K,格式經爲ext4文件系統,開機可自動掛載至/backup目錄,並支持acl功能;
練習2: 創建一個可用空間大小爲10G的RAID1設備,chunk大小爲256K,要求其具有一個熱備磁盤,開機自動掛載至/users目錄;