1. 程式人生 > 實用技巧 >linux的磁碟管理

linux的磁碟管理

此部落格總結與馬哥課堂筆記

時間:2015.09.09

linux磁碟管理

Linux磁碟管理
硬碟的分類有兩種
1、機械式硬碟

機械硬碟即是傳統普通硬碟,主要由:碟片,磁頭,碟片轉軸及控制電機,磁頭控制器,資料轉換器,介面,快取等幾個部分組成;有5400轉主用於筆記本; 7200轉主用於桌上型電腦;10000和15000(也稱為15K)主用於伺服器。

2、SSD硬碟

用固態電子儲存晶片陣列而製成的硬碟,由控制單元儲存單元FLASH晶片、DRAM晶片)組成;主要用於軍事、車載、工控、視訊監控網路監控網路終端、電力、醫療、航空、導航裝置等領域。

機械式:
track磁軌,每個磁軌的周長不同所以所存的扇區也有所不同
sector:表示每一條磁軌上有幾個

扇區,最大為63(用 6個二進位制位儲存)cylinder:相同磁碟的編號 分割槽的基本單位;

MBR:0磁軌,主引導記錄(Master Boot Record),存著系統的啟動程式

512bytes
446: bootloader作業系統載入程式就在此
64: filesystem allocation table用來標記磁碟分割槽的,其中每16個位元組為一個分割槽,所以硬碟只能有4個主分割槽。
2:55AA標示MBR是否有效的
磁碟介面型別:
IDE (ATA):速率133MB/s,/dev/hd 並行的介面
SCSI:速率640MB/s 工業級應用介面
SATA:速率6Gbps企業級應用介面
SAS:速率6Gbps 基於 序列方式的企業級應用介面

USB:速率480MB/s
識別硬碟裝置:/dev/sd
標記不同的硬碟裝置:/dev/sd[a-z]

例:/dev/sda就是linux系統的第一塊盤,而我們如果新增加一塊盤則會顯示為/dev/sdb,如下圖:

wKioL1X0B_Pj6QfbAAERPhR9YRY184.jpg

我們再增加一塊硬碟,具體是怎麼增加硬碟的我就不再演示了,因為我懶;看下圖:我新增加的一塊5G大小的硬碟,顯示為/dev/sdb;新增完硬碟需要重啟系統,物理機肯定是需要重啟的因為你要做RAID,虛擬機器我不知道還有其它辦法不重啟出來沒?

wKioL1X0CdLC4DgqAAKAPkQARbw801.jpg

標記同一裝置上的不同分割槽:/dev/sd[a-z][1-]

1-4: 主或擴充套件分割槽標識;此意思就是每一個磁碟最多可以分為4個主分割槽,而如果你要想分配更多的分割槽的話,那麼你就要劃分擴充套件分割槽了,而擴充套件分割槽也需要佔一個主分割槽的;那麼就像我上圖中增加了一個單獨的磁碟,就可以再多出4個主分割槽,那麼各個分割槽的命名就是 /dev/sda1 /dev/sda2或者是 /dev/sdb1 /dev/sdb2

5+:邏輯分割槽標識
裝置檔案:特殊檔案

裝置號:
major, minor
major: 裝置型別
minor: 同一型別下的不同裝置
“塊”:block,隨機裝置塊裝置標識為b
“字元”:character,線性裝置字元標示為c
GPT大於2T的磁碟空間使用GPT分割槽

分割槽:分割槽原因為分隔儲存空間為多個小的空間,每個空間可獨立使用檔案系統;

分割槽工具:
fdisk,parted, sfdisk
fdisk工具的使用:
最多支援在一塊硬碟上的15個分割槽;
分割槽管理子命令:
p: 顯示
n: 建立
d: 刪除
t: 修改分割槽ID
l: 列出所有支援ID型別
w: 儲存退出
q: 放棄修改並退出
m: 獲取幫助

具體操作如下圖:

wKioL1X0Fd3QeEKFAASC9H1d4DQ915.jpg

wKiom1X0E62yLGIwAAPCjxiGEhc693.jpg

wKioL1X0Fd7TjgEVAAXjrku5bPk041.jpg

wKiom1X0E62S8-D0AAKBsV_dLIQ257.jpg

wKioL1X0Fd6yCc35AAQ1CGKztck197.jpg

建立完成之後,檢視核心是否已經識別新的分割槽:
# cat /proc/partitions

如果沒有讀進核心我們使用

有三個命令可以讓核心重讀磁碟分割槽表:
CentOS 5:

partprobe [DEVICE]

例圖:

wKioL1X0GQCjK5gFAAG9qIWew3M701.jpg

CentOS 6,7:

partx後面跟分割槽

kpartx

例:partx -s /dev/sda

如果分割槽還沒有載入到核心我們可以使用partx -a -n新增加分割槽1:新增加分割槽最後的編號

partx命令:
partx DEVICE裝置

partx -a DEVICE新增
artx -a -n M:N DEVICEM表示開始N表示結束
M只識別M
M:M開始的
:NN結束的
kpartx命令:

kpartx -af DEVICE
磁碟建立問了,下面我們來說一下檔案系統
Linux檔案系統管理
檔案系統:
VFS:Virtual File System
Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap
光碟:iso9660
Windows: fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
網路檔案系統:nfs, cifs
叢集檔案系統:ocfs2, gfs2
分散式檔案系統:ceph,
moosefs, mogilefs, hdfs, gfs, glusterfs
(1) 日誌型檔案系統
非日誌型檔案系統:ext2
日誌型檔案系統:ext3
(2) swap:交換分割槽

避免記憶體被耗盡,臨時充當記憶體使用的分割槽

建立檔案系統:
在分割槽上執行格式化(高階格式化)
要使用某種檔案系統,滿足兩個條件:
核心中:支援此種檔案系統
使用者空間:有檔案系統管理工具
建立工具:mkfs (make filesystem)
mkfs -t type DEVICE
mkfs.type DEVICE

以上兩個命令是一樣的,都是格式化檔案系統

例:如下圖

wKioL1X0KsvCDrEzAAK3Eb-aozM140.jpg

ext系列檔案系統的專用管理工具:
mke2fs -t {ext2|ext3|ext4} DEVICE
-b BLOCK: 1024, 2048, 4096指定塊大小
-L 'LABEL': 設定卷標
blkid命令:檢視檔案系統的命令
blkid DEVICE可以檢視檔案系統的LABEL, UUID, TYPE

Linux檔案系統管理:
mkfs, mkfs -t type = mkfs.type
ext:mke2fs

建立檔案系統:
mke2fs [OPTION]... DEVICE
-t {ext2|ext3|ext4}指明檔案系統
-b {1024|2048|4096}建立檔案系統並指明塊大小,塊的大小取決於系統中檔案的大檔案多還是小檔案多
-L 'LABEL'指明卷標
-j:相當於mke2fs -t ext3 ,也就是格式化為日誌檔案系統
-i #:建立inod的,指明資料之間每多少空間指一個inod的
-N #:為磁碟分割槽保留多少個inod
-m #: 預留磁碟空間佔據多大百分比的空間為後期管理使用;預設為5%
-o FEATURE[,...] 是否啟用磁碟特性的,預設為開啟的
-O ^FEATURE:大寫的O關閉此特性
has_journal

檔案系統屬性檢視及調整工具:
e2label
e2lable DEVICE [LABEL]
帶卷標就是設定不帶就是檢視
tune2fs
顯示ext系列檔案系統的屬性,或調整其屬性;
-l:顯示超級塊中的資訊;顯示整個檔案的屬性及佈局等相關資訊;

wKioL1X0N7eCuXQPAAHGD_VWnIY564.jpg

-L 'LABEL':修改卷標;

wKioL1X0OBvzDCEmAAF6yOykmlg867.jpg

-m #: 調整預留給管理員的管理空間百分比;

wKiom1X0NhfCT8WAAACywJeqgoA367.jpg

-j: ext2 --> ext3這個提升不會影響內部的資料;沒有環境就不演示了

-O:檔案系統屬性的啟動或關閉

-o:檔案系統預設掛載選項的啟用或關閉
dumpe2fs:

-h: 僅顯示超級塊資訊;

檔案系統檢測:
fsck: Filesystem check
fsck -t type
fsck.type例fsck.ext4 /dev/sda5

-a: 自動修復錯誤 例fsck.ext4 -a /dev/sda5
-r: 互動式修復錯誤

-f: 強制檢測,無論有沒有錯誤都檢測 例fsck.ext4 -f /dev/sda5

e2fsck:ext系列檔案系統專用的檢測修復工具;
-y: 自動回答為“yes”表示自動修復模式
-f:force強制執行檢測

檔案系統修復一般在系統非正常關閉的時候才用。

檔案系統的掛載和使用:
kernel --> rootfs(分割槽)
rootfs分割槽:
bin, sbin, etc, lib, lib64, dev, tmp, proc, sys
/sbin/init
將額外檔案系統與根檔案系統某現存的目錄建立起關聯關係,進而使得此目錄做為其它檔案系統訪問入口的行為,稱之為掛載;

解除此關聯關係的過程:解除安裝;

掛載點:mount point, 裝置掛載至目錄;
注意:掛載點在掛載在之後,其內部原有的檔案會被暫時隱藏;建立使用空目錄做為掛載點;
掛載方法:
mount:通過讀取/etc/mtab檔案來顯示當前系統所有已經掛載的裝置;
mount -a:掛載/etc/fstab檔案中的所有支援自動掛載的檔案系統;
mount [options] [-o options] DEVICE MOUNT_POINT;例如下圖:

wKioL1X21FKA72_bAAHSfcLyreY334.jpg

[options]:命令選項
[-o options]:掛載選項
DEVICE: 要掛載的裝置
(1) 裝置檔案:/dev/sda5
(2) 卷標:-L 'LABEL'
(3) UUID:-U 'UUID'
(4) 偽檔案系統名稱
MOUNT_POINT: 掛載點

mount的常用選項:

-t type:檔案系統型別
-r: 以“只讀”方式掛載此檔案系統

-w: 以“讀寫”方式掛載此檔案系統

如下圖

wKioL1X21gDRgCLFAALuBHCJxQ4928.jpg

-n:每個檔案系統在掛載時都會自動更新/etc/mtab檔案,-n用於禁止此功能;

此時,如果想檢視掛載的所有檔案系統:cat /proc/mounts
-a: 自動掛載所有支援自動掛載的裝置;這個必須在/etc/fstab檔案中設定開機自動掛載,如下圖:

wKiom1X21JWTONzPAAEuKsKK3b8735.jpg

wKiom1X21OeAiuiDAAJTYiq291g814.jpg

-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,如下圖:

wKioL1X21ASAXeQvAAH0CYq6UmY636.jpg

檢視正在訪問指定掛載點的程序:
# fuser -v MOUNT_POINT
終止所有正在訪問指定的掛載點的程序:
# fuser -km MOUNT_POINT
交換分割槽:
free命令:
檢視memory和swap的使用狀態
-m: 以MB為單位

-g: 以GB為單位

wKiom1X21wTSwEtcAAIREQ0W4eM857.jpg

mkswap:建立交換分割槽
mkswap [option] DEVICE
-L 'LABEL'
swapon:啟用交換分割槽
swapon [option] [DEVICE]
-a: 啟用所有交換分割槽
-p PRIORITY: 設定其優先順序;
swapoff:禁用交換分割槽
swapoff [option] [DEVICE]
檔案系統等空間佔用資訊的檢視工具:
df: disk free
-h: human-readable
-i: inode數量可以顯示總使用剩餘
-P: 以Posix相容的格式輸出
du: disk usage
-h: human-readable評估單個目錄下每個檔案的大小的
-s: summary
檔案系統相關掛載配置檔案:/etc/fstab
每行定義一個檔案系統;
要掛載的裝置或偽檔案系統 掛載點 檔案系統型別 掛載選項 轉儲頻率 自檢次序
要掛載的裝置:裝置檔案、LABEL=、UUID=、偽檔案系統名稱
掛載選項:defaults
轉儲頻率:0: 不轉儲 1: 每天轉儲 2:每隔一天轉儲; 其實也就是備份一般不需要因為我們自己有專門的備份工具
自檢次序:0:不自檢 1:首先自檢,通常只有/才為1

wKioL1X22fOgB4FvAAHHU3W5b6A975.jpg

檔案系統上的連結檔案:
硬連結:
兩個路徑指向同一個inode
不能對目錄進行;
不能跨分割槽進行
指向同一個inode的多個不同路徑; 建立檔案的硬連結會增加inode的引用計數;刪除硬連結僅是刪除其一個訪問路徑,只到最後一個路徑被刪除;
符號連結:
連結檔案的資料指向另一個檔案路徑;
可以對目錄進行;
可以跨分割槽;
指向的是另一個檔案路徑;而非inode;
對檔案建立符號連結不會增加其引用計數;刪除原檔案,符號連結檔案也將無法;

命令格式

ln [-s] SRC DEST
-s:symbolic link
-v:verbose
練習:建立一個10G檔案系統,型別為ext4,要求開機可自動掛載至/mydata目錄;不好意思呀測試環境只有Centos5.8的系統所以我就型別為ext3的了,不過方法都一樣了。

wKioL1X0QRmjiaPsAAN606-nQrs497.jpg

wKiom1X0Pujw2suUAAH1Ig7Hpew517.jpg

wKioL1X0QRnCfIh9AAPQQ5PCBmk722.jpg

wKiom1X0PuixVKlOAAFRnZvwuIc371.jpg

wKioL1X0QRmhfznJAAFL3ZYXlbA867.jpg


OK,這裡我們的磁碟管理就結束了

轉載於:https://blog.51cto.com/huichengu/1693565