面對一塊硬盤,我們該如何使用它呢?本文從機械硬盤結構,分區,格式化,和掛載四個層次進行介紹。
一、機械硬盤結構
現在服務器使用機械式硬盤是主流,因為其造價低,容量大,和固態硬盤相比讀寫性能要差很多。機械硬盤主要由以下幾個部件構成:轉軸Spindle,盤片Platter,機械臂Boom,磁頭Head。工作機制是馬達帶動盤片高速旋轉,磁頭對盤片進行擦寫數據或讀取其上存儲的數據。
基于這種工作機制有如下幾個存儲術語
1.磁道Track:盤片上狹窄的同心圓環,最外側為0磁道
2.扇區Sector:磁道上一小塊弧段稱為扇區,硬盤存儲單位,大小為512字節
對每個扇區進行編號,稱為邏輯塊地址LBA
3.柱面Clinder:編號相同的磁道構成柱面
二、分區
了解硬盤結構后,接著講一下分區。一塊新硬盤使用,首先要進行分區操作,分區起到隔離的效果,方便管理。分區有兩種方式:
-
MBR(Master Boot Record),傳統分區方式
-
GPT(GUID Partition Table),較新分區方式
(1)MBR分區
使用32位表示扇區數,最大支持2T空間。在0磁道0扇區記錄啟動代碼(前446字節)和分區表信息,如下圖所示
由分區表可以看出MBR分區方式只能劃分四個主分區,如果要劃分四個以上分區,需要劃分一個擴展分區,在擴展分區下繼續劃分邏輯分區。
分區工具fdisk
fdisk是一款交互式工具,可以用來創建和管理磁盤分區。
fdisk [-uc] device 進入分區工具界面
輸入m查看幫助,常用指令有
n:新建分區
t:改變分區類型編號
d:刪除分區
p:查看分區列表
q:不保存退出
w:保存并退出
注意:操作完成之后,要使用w退出,才會生效
如果退出報同步錯誤,則需要手動同步分區信息
增加分區同步
Centos6:partx -a device Centos7:partprobe
刪除分區同步
Centos6:partx -d device Centos7:partprobe
可使用如下命令查看內核識別的分區情況
cat /proc/partitions lsblk
fdisk -l [devices…] 查看分區情況
[root@centos6 ~]$ fdisk -l /dev/sda Disk /dev/sda: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0005aba0 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 2614 20480000 83 Linux /dev/sda3 2614 3889 10240000 83 Linux /dev/sda4 3889 13055 73624576 5 Extended /dev/sda5 3889 4411 4194304 82 Linux swap / Solaris /dev/sda6 4411 5716 10484362+ 83 Linux
(2)GPT分區
使用64位表示扇區數,最大支持容量18EB,GPT明顯優點在于可以劃分128個分區。
0扇區稱為MBR保護扇區,防止MBR磁盤管理軟件誤認為未分區硬盤,以防止分區表及硬盤數據遭到破壞。在尾部備份了分區表信息,保證分區信息不易丟失。
GPT方式分區工具:gdisk
用法與fdisk類似,也是交互式工具,不再詳述。
三、格式化
對硬盤進行分區后,接著對分區進行格式化。格式化操作是在分區上創建文件系統,所謂文件系統,即一種存儲和組織計算機數據的方法,文件系統使用文件和樹形目錄的抽象邏輯概念來替代硬盤物理設備使用數據塊的概念,負責文件的存儲并對存入的文件進行保護和檢索。
Linux常用文件系統:
ext2,ext3,ext4
xfs(SGI)
btrfs(Oracle)還未正式商用,處于測試階段
swap(交換分區)
vfat 對應windows的fat32文件系統
其中支持日志功能的文件系統有:
ext4,xfs,btrfs
命令部分:
注意,執行格式化操作會擦除分區上原有的數據
創建文件系統工具:mkfs.fs_type
mkfs.ext4 /dev/sda1 #簡單地在sda1分區上創建ext4文件系統
ext文件系統創建專用工具:
mke2fs [options] device
options選項
-t 指定文件系統類型
-L 設定一個卷標
-b {1024|2048|4096} 指定塊大小
-N 指定明創建inode數量
-i 指定多少字節創建一個inode,一般要大于block大小
-m 指定預留空間的百分比,默認是5%,此部分空間供管理員在分區存滿數據時維護使用
-O [^]FEATURES 以指定特性創建文件系統,特性前加^表示關閉該特性
默認參數配置文件:/etc/mke2fs.conf
mke2fs -t ext4 -L mydata -b 2048 -N 20000 -m 1 /dev/sda7 #創建了一個 ext4文件系統,指定卷標mydata,塊大小2048,20000個inode,預留空間1%
擴展內容
1.卷標查看與設定工具:
e2label device [newlabel]
2.修改ext文件系統某些屬性工具
tune2fs [options] device
[options]選項
-l 查看超級塊內容
-L 修改卷標
-m 修改預留空間百分比
-O 文件系統屬性啟用或禁用,^表示禁用
-o 調整文件系統默認掛載選項,^表示禁用
-c 調整最大掛載次數。當掛載次數超過此數值時,進行文件系統檢查
3.顯示超級塊信息和組信息工具
dumpe2fs [options] device
4.文件系統檢測與修復工具
常常用于非正常關機或死機之后
文件系統狀態標識為dirty時使用
fsck.fs_type #例如fsck.ext4 e2fsck #ext系列文件系統檢測工具 -y 自動回答yes -f 強制檢查,即使沒有問題也進行檢查
四、掛載
創建好一個文件系統之后,接著需要將該設備掛載到根下某一目錄。即將一個文件系統關聯到Linux上目錄樹結構上,該目錄為此文件系統的入口。
命令部分:
mount [options] device dir
options介紹
–a 掛載所有有自動掛載選項的設備
-r 只讀掛載
-n 禁止向/etc/mtab 同步mount操作
-L 指定卷標來掛載
-U 指定uuid的設備掛載
-o 掛載選項
掛載選項說明,有些選項在/etc/fstab 里指定才會生效
remount 重新掛載
loop 指定掛載回環類型設備
noatime 禁止atime更新
noexec 禁止程序執行
auto/noauto 是否可被-a選項自動掛載
user 可指定一個用戶可掛載此設備
default 默認選項代表rw, suid, dev, exec, auto, nouser, async, and relatime
擴展內容
1.如果設備需要開機自動掛載,則需要寫在/etc/fstab 文件中
文件格式:
-
要掛載的設備或偽文件系統
–建議使用uuid指定設備,設備名容易變更
-
掛載點
-
文件系統類型
-
選項
-
轉儲頻率
–0:不轉儲 1:每天轉儲 2:隔天轉儲
-
自檢次序
–0:不自檢 1:首先自檢,一般是根目錄 2:次序自檢
2.卸載設備
umount device|dir
如果卸載某設備,顯示掛載點正忙無法卸載,則采取如下辦法
1)查看掛載點被哪些程序占用,然后殺掉
lsof dir fuser -v dir
2)終止所有正在訪問掛載點的所有進程
fuser -km dir
五、交換分區swap創建
當內存空間不足時,內核會將內存中一些緩存數據存放到swap分區上。交換分區最好劃分在磁盤外道,達到最高存儲性能。
1、交換分區必須指定分區類型為swap
即在分區時,使用t改變分區類型編號
2、對指定的分區或者一個文件設定為交換空間
mkswap /dev/sda7
3、啟用交換分區
swapon -s #查看交換分區啟用情況
swapon /dev/sda7 #啟用交換分區或者 swapon -a 啟用所有交換分區
至此添加成功。
擴展內容
關閉交換分區
swapoff /dev/sda7
交換分區可指定優先級,創建不指定優先級則依次減少1,最開始為-1
命令指定優先級 swapon -p {0-32767} device|file
交換分區在/etc/fstab 文件中格式,優先級指定pri=
六、各種查看命令補充
lsblk [dev] #查看分區情況
blkid [dev] #打印塊設備屬性,可查看分區類型
findmnt #查看所有已掛載設備
原創文章,作者:cutemsyu,如若轉載,請注明出處:http://www.www58058.com/41405
文章內容很完整,圖文并貌,整篇博客能讓人看到很多專業性所在,也能看出很用心的地方,革命尚未成功,同志仍需努力啊,加油!