文章目錄
- Linux運維——檔案系統管理
-
- 一、硬碟結構
-
- 1、硬碟的邏輯結構
- 2、硬碟接口
- 二、檔案系統
-
- 1、Linux檔案系統的特性
- 2、Linux常見檔案系統
- 三、常用的硬碟管理指令
-
- 1、df指令
- 2、du指令
- 3、fsck檔案系統修複指令
- 4、顯示磁盤狀态dump2fs
- 5、檢視檔案的詳細時間
- 6、判斷檔案類型
- 四、fdisk指令手工分區
-
- 1、檢視系統所有硬碟及分區
- 2、開始磁盤分區
- 3、格式化建立檔案系統
- 4、挂載分區
- 5、自動挂載
- 五、parted指令分區
-
- 1、parted互動模式
- 2、切換分區表
- 3、建立分區
- 4、格式化挂載分區
- 六、配置設定swap分區
-
- 1、分區,修改為swap分區ID
- 2、格式化分區
- 3、使用swap分區
Linux運維——檔案系統管理
一、硬碟結構
1、硬碟的邏輯結構

每個扇區的大小是固定的,為
512Byte
。扇區也是磁盤的最小存儲機關
硬碟的大小是使用“磁頭數*柱面*扇區數*每個扇區的大小”計算的,其中磁頭數(Heads)表示硬碟總共有幾個磁頭,也可以了解成為硬碟有幾個盤面,然後乘以二;柱面數(Cylinders)表示硬碟每一面盤片有幾條磁道;扇區數(Sectors)表示每條磁道上有幾個扇區;每個扇區的大小一般是
512Byte
2、硬碟接口
-
硬碟接口(Integrated Drive Electronics,并口,即電子內建驅動器)也稱作“IDE
硬碟”或“ATA
硬碟”,是早期機械硬碟的主要接口,PATA
硬碟的理論速度可以達到ATA133
(此速度為理論平均值),133MB/s
硬碟接口IDE
-
接口(SATA
,序列槽)是速度更高的硬碟标準,具備了更高的傳輸速度,并具備了更強的糾錯能力。目前已經是Serial ATA
三代,理論傳輸速度達到了SATA
(此速度為理論平均值)600MB/s
- SCSI接口(Small Computer System Interface,小型計算機系統接口)廣泛應用在伺服器中,具有應用範圍廣、多任務、帶寬大、CPU占用率低及支援熱插拔等優點,理論傳輸速度達到了
320MB/s
二、檔案系統
1、Linux檔案系統的特性
- super block(超級塊):記錄整個檔案的資訊,包括block與inode的總量,已經使用的inode和block的數量,未使用的inode和block的數量,block與inode的大小,檔案系統的挂載時間,最近一次寫入的時間,最近一次的磁盤檢驗時間等。
- data block(資料塊,也稱作block):用來實際儲存資料,block的大小(1KB、2KB或4KB)和數量在格式化後就已經決定,不能改變,除非重新格式化。每個block隻能儲存一個檔案的資料,要是檔案資料大于一個block塊,則占用多個block塊。Windows中磁盤碎片整理工具的原理就是把一個檔案占用的多個block塊盡量整理到一起,這樣可以加快讀寫速度。
- inode(i節點):用來記錄檔案的權限(r、w、x),檔案的所有者和所屬組,檔案的大小,檔案的狀态改變時間(ctime),檔案的最近一次讀取時間(atime),檔案的最近一次修改時間(mtime),檔案的資料真正儲存的block編号每個檔案需要占用一個inode。
2、Linux常見檔案系統
-
:linux中最早的檔案系統,由于在性能和相容性上具有很多缺陷,現在已經很少使用ext
-
:是ext檔案系統的更新版本,Red Hat Linux 7.2版本以前的系統預設都是ext2檔案系統。于1993年釋出,支援最大16TB的分區和最大2TB的檔案ext2
-
:是ext2檔案系統的更新版本,最大的差別就是帶日志功能,以便在系統突然停止時提高檔案系統的可靠性。支援最大16TB的分區和最大2TB的檔案ext3
-
:是ext3檔案系統的更新版。ext4在性能、伸縮性和可靠性方面進行了大量改進。ext4新增的向下相容ext3、最大1EB檔案系統和16TB檔案、無限數量子目錄、Extents連續資料塊概念、多塊配置設定、延遲配置設定、持久預配置設定、快速FSCK、日志校驗、無日志模式、線上碎片整理、inode增強、預設啟用barrier等。ext4
-
:XFS最早針對IRIX作業系統開發,是一個高性能的日志型檔案系統,能夠在斷電以及作業系統奔潰的情況下保證檔案系統資料的一緻性。它是一個64位的檔案系統,背景進行開源并且移植到了linux系統中,目前xfs
将XFS+LVM作為預設的檔案系統。CentOS7.x
三、常用的硬碟管理指令
1、df指令
df -ahT
-a 顯示特殊檔案系統,這些檔案系統幾乎都是儲存在記憶體中。
-h 機關不再隻用KB,而是換算成習慣機關
-T 多出了檔案系統類型一列
2、du指令
du [選項] [目錄或檔案名]
-a 顯示每個子檔案的磁盤占用量。預設隻統計子目錄的磁盤占用量
-h 使用習慣機關顯示磁盤占用量,如KB,MB或GB
-s 統計總占用量,而不列出子目錄和子檔案的占用量
-
與du
的差別:df
是用于統計檔案大小的,統計的檔案大小是準确的;df是用于統計空間大小的,統計的剩餘空間是準确的。du
-
:檢視被删除的檔案,然後手動kill也是可以的lsof|grep deleted
3、fsck檔案系統修複指令
fsck -y /dev/sdb1
# 自動修複
4、顯示磁盤狀态dump2fs
[[email protected] ~]# dumpe2fs -h /dev/vda1
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: b98386f1-e6a8-44e3-9ce1-a50e59d9a170
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 1310720
Block count: 5242624
Reserved block count: 262131
Free blocks: 4033665
Free inodes: 1182776
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1022
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Nov 29 11:34:09 2018
Last mount time: Wed Feb 12 16:54:34 2020
Last write time: Thu Feb 13 00:54:31 2020
Mount count: 22
Maximum mount count: -1
Last checked: Thu Nov 29 11:34:09 2018
Check interval: 0 (<none>)
Lifetime writes: 78 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 1192671
Default directory hash: half_md4
Directory Hash Seed: 64c050c5-05fb-4ed0-9f92-f5abefc12cc4
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x001e0fae
Journal start: 1
5、檢視檔案的詳細時間
stat 檔案名
6、判斷檔案類型
file 檔案名 # 判斷檔案類型
type 指令名 # 判斷指令類型
四、fdisk指令手工分區
1、檢視系統所有硬碟及分區
fdisk -l
2、開始磁盤分區
fdisk /dev/sdb 進行磁盤分區(分區還沒有分區号)
- 指令幫助
指令 | 描述 |
---|---|
a | 設定可引導标記 |
b | 編輯bsd磁盤标簽 |
c | 設定dos作業系統相容标記 |
d | 删除一個分區 |
l | 顯示已知的檔案系統類型。82為Linux swap分區,83為Linux分區 |
m | 顯示幫助菜單 |
n | 建立分區 |
o | 建立空白dos分區表 |
p | 顯示分區清單 |
q | 不儲存退出 |
s | 建立空白sun磁盤标簽 |
t | 改變一個分區的系統id |
u | 改變顯示記錄機關 |
v | 驗證分區表 |
w | 儲存退出 |
x | 附加功能 |
- 有時會因為系統的分區表正忙,則會報錯需要重新啟動系統之後才能使新的分區表生效
3、格式化建立檔案系統
mkfs -t ext4 /dev/sdb1
- mkfs指令非常簡單易用,但是不可以調整分區的預設參數的。
mke3fs [選項] [分區裝置檔案名]
-t 指定格式化的檔案系統
-b 指定block塊的大小
-i 指定“位元組/inode”的比例,也就是多少個位元組配置設定一個inode
-j 建立帶有ext3日志功能的檔案系統
-L 給檔案系統設定卷标名
4、挂載分區
mkdir 檔案夾 # 建立檔案夾
mount [目标分區檔案] [需要挂載到的檔案夾] # 挂載分區
mount # 檢視所有已經挂載的分區和CD光牒
5、自動挂載
- 打開
/etc/fstab
- 第一列:裝置檔案名(建議使用UUID)
- 第二列:挂載點
- 第三列:檔案系統
- 第四列:挂載選項
- 是否可以被備份:0不備份、1每天備份、2不定期備份
- 是否檢測磁盤fsck :0不檢測、1啟動時檢測、2啟動後檢測
- 檢視分區的uuid
dumpe2fs [分區檔案路徑] | grep UUID
ls -l /dev/disk/by-uuid/
- 挂載錯誤修複
- 報錯後輸入root使用者密碼進入系統
- 使用
指令重新挂載根目錄mount -o remount,rw /
- 打開
修改錯誤位置/etc/fstab
- 重新啟動
五、parted指令分區
Linux系統中有兩種常見的分區表MBR分區表(主引導記錄分區表)和GPT分區表(GUID分區表),其中:
- MBR分區表:支援的最大分區為2TB;最多支援4個主分區,或3個主分區1個擴充分區
- GPT分區表:支援最大
的分區(18EB
)1EB=1024PB=1024*1024TB
1、parted互動模式
parted [需要分區的磁盤檔案路徑]
互動指令 | 描述 |
---|---|
| 顯示所有的指令幫助 |
| 建立新的磁盤卷标(分區表) |
| 建立一個分區 |
| 給分區命名 |
| 顯示分區表,活動裝置,空閑空間,所有分區 |
| 退出 |
| 修複丢失的分區 |
| 删除分區 |
| 選擇需要編輯的裝置 |
| 改變分區标記 |
| 切換分區表的狀态 |
| 設定預設的機關 |
| 顯示版本 |
2、切換分區表
mklabel gpt
3、建立分區
mkpart
4、格式化挂載分區
- 使用bash中的mkfs指令将分區格式化為ext4檔案系統
mkfs -t ext4 /dev/sdb1
- 挂載分區
mount /dev/sdb1 /disk1
六、配置設定swap分區
1、分區,修改為swap分區ID
- 檢視swap分區資訊
free -h
- 分區
fdisk /dev/sdb # 建立分區并使用t指令修改分區格式為swap分區
2、格式化分區
mkswap /dev/sdb1
3、使用swap分區
swapon 分區裝置檔案名
- swap分區開機自動挂載
/dev/sdb1 swap swap defaults 0 0