Linux 磁盤管理與系統管理


Linux文件系統管理


一、Linux磁盤磁盤類型node

機械式磁盤:緩存

track 磁道:磁道可劃分扇區,磁盤外則性能好些網絡

sector 扇區:用於存數據,通常一個扇區512byte數據結構

cylinder:柱面 相同編號的磁道是分區的基本單位,從最外至裏異步

劃分分區:每一個分區可劃分獨立的文件系統:分區是邏輯邊界async

MBR:主引導扇區 (0磁道,0扇區)master boot record 512byte全局,獨立OS分佈式

446byte:boot loader 引導某分區操做系統ide

64byte:filesystem allocation table (每16個字節標記一個分區)函數

2byte:Magic Number 55AA(MBR標記是否有效)其它標記無效工具

全部系統磁盤的劃分由 MBR決定(一個磁盤受4個主分區限制、2.2TB空間限制)

主分區+擴展小於=4個當中,取出部分爲指針,指向擴展分區 (另外更大的空間)

擴展分區只可以有一個,剩餘的空間都會分配到擴展分區中。

GPD:全局惟一標識分區表(GUID Partition Table,縮寫:GPT)代替MBR,支持大於2TB的空間


SSD式磁盤:

基於閃存的固態硬盤是固態硬盤的主要類別,其內部構造十分簡單,固態硬盤內主體其實就是一塊PCB板,而這塊PCB板上最基本的配件就是控制芯片、緩存芯片和用於存儲數據的閃存芯片。


二、VFS:(Virtual File System 虛擬文件系統)

VFS 是一種軟件機制,也許稱它爲 Linux 的文件系統管理者更確切點,與它相關的數據結構只存在於物理內存當中。因此在每次系統初始化期間,Linux 都首先要在內存當中構造一棵 VFS 的目錄樹,實際上即是在內存中創建相應的數據結構。VFS 目錄樹在 Linux 的文件系統模塊中是個很重要的概念,但願讀者不要將其與實際文件系統目錄樹混淆,在筆者看來,VFS 中的各目錄其主要用途是用來提供實際文件系統的掛載點,固然在 VFS 中也會涉及到文件級的操做,本文不闡述這種狀況。下文提到目錄樹或目錄,若是不特別說明,均指 VFS 的目錄樹或目錄。

VFS 目錄樹結構:


三、Linux文件系統支持的類型:

基本文件系統:Ext2, Ext3, Ext4, Reiserfs(支持小文件), xfs(支持大文件), btrfs(CentOS7.0之後), JFS, vfat(支持WindowsFAT32), NTFS

交換分區:swap

集羣文件系統:GFS2(全局文件系統), OCFS2

網絡文件系統:NFS, smbfs(CIFS) Common Internet File System

光盤:iso9660

分佈式文件系統:ceph,moosefs, mogilefs, hdfs, gfs, glusterfs

Unix: ffs, ufs, jfs, jfs2

(1)日誌型文件系統:

非日誌型文件系統:ext2

日誌型文件系統:ext3

(2)swap: 交換分區

建立文件系統:相似於Windows的虛擬內存,就是當內存不足的時候,把一部分硬盤空間虛擬成內存使用,從而解決內存容量不足的狀況。


四、文件系統管理工具:

在分區上執行格式化(高級格式化):

要使用某種文件系統需知足兩個條件:

內核中:支持此中文件系統。

用戶空間:有文件系統管理工具。


1.建立工具:

mkfs、mke2fs、e2label、blkid、dumpe2fs、tune2fs、fsck、e2fsck


mkfs命令(make filesystem)

功能:

建立文件系統

格式:

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

經常使用選項:

-t  fstype  指定要建立何種文件類型

-c  在製作檔案系統前,檢查該分區是否有壞道

-fs  指定創建文件系統時的參數

實例:

# mkfs -t ext4 /dev/sdb1


Ext4: mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4


mke2fs命令

功能:

建立ext系列文件系統,支持ext二、ext三、ext4

格式:

mke2fs [OPTION]... DEVICE

經常使用選項:

-t {ext2|ext3|ext4}

-j : 至關於-t ext3

-L Label:卷標

-b {1024|2048|4096}:指定塊大小

-i #: #個字節給預留一個inode

-N #: 直接指定預留多少個Inode

-I #:Inode大小

-m #:預留管理員的空間百分比,默認爲5

-O:指定分區特性

配置文件: /etc/mke2fs.conf


//實例:

新建的sda3分區,並將其格式化爲ext4格式

       


blkid命令

功能:

查看設備的屬性,UUID和TYPE

格式:

Blkid /dev/SOMEDEVICE:

實例:

//查看剛剛新建的sda1分區的文件系統類型、卷標、UUID


e2label命令

功能:

查看分區的卷標和爲分區設定卷標

格式

e2label /dev/SOMEDEVICE: 查看卷標

e2label /dev/SOMEDEVICE 新卷標名

實例:

//使用e2label命令查看sda1的卷標,並把卷標修改成database


dumpe2fs命令

功能:

用於查看ext文件系統的超級塊和快組信息

格式:

dumpe2fs[ OPTIONS ]... device

經常使用選項:

-h: 僅查看超級塊中保存的信息


tune2fs命令

功能:

用於調整"ext2/ext3"文件系統中的可改參數

格式:

tune2fs [ OPTIONS ]... device

經常使用選項:

-l:  查看超級塊中的信息

-L 卷標名:  設定卷標

-m: 預留管理員的空間百分比,默認爲5

-r:  設定文件系統保留塊的大小

-j:  若是原來的文件系統爲ext2, -j可以將其提高爲ext3

-O [^] feature[,...]:  調整分區特性

-o [^] mount-options[,...]:  設定其默認掛載選項

async: 異步I/O

sync: 同步I/O

noatime/atime: 是否更新訪問時間戳,建議noatime

auto/noauto: 是否可以被mount -a選項自動掛載;

diratime/nodiratime: 是否更新目錄的訪問時間戳;

exec/noexec:是否容許執行其中的二進制程序;

_netdev: 在網絡設備啓用以前禁止嘗試掛載網絡設備

remount: 從新掛載

acl: 啓用facl  文件訪問控制列表

ro:掛載爲只讀

rw:掛載爲可讀寫

user/nouser: 是否容許普通掛載此設備


fsck命令

功能:

用於檢查而且試圖修復文件系統中的錯誤,當文件系統發生錯誤時,可用fsck指令嘗試加以修復

經常使用選項:

-t fstype

-a:自動修復文件系統,不詢問任何問題

-r: 交互式修復錯誤

-A:依照/etc/fstab配置文件的內容,檢查文件內所列的所有文件系統

-P:當搭配"-A"參數使用時,則會同時檢查全部的文件系統

-v:執行時顯示詳細的信息

 

e2fsck命令

功能:

用於檢查文件系統的完整性,經過適當的選項能夠嘗試修復出現的錯誤

經常使用選項:

-f: 強制檢測

-y: 對問題自動回答爲yes

-b<superblock>指定superblock,而不使用預設的superblock

-B<區塊大小>:指定區塊的大小,單位爲字節

-v:執行時顯示詳細的信息

e2fsck執行後的傳回值及表明意義以下:

0 沒有任何錯誤發生。

1 文件系統發生錯誤,而且已經修正。

2 文件系統發生錯誤,而且已經修正。

4 文件系統發生錯誤,但沒有修正。

8 運做時發生錯誤。

16 使用的語法發生錯誤。

128 共享的函數庫發生錯誤。

 

交換分區:

虛擬內存並非真正的內存,它是在硬盤上劃分出一塊區域,將其格式化成物理內存相同的格式。一旦發生了物理內存不足的狀況,就能夠將物理內存頁框中的數據移動到虛擬內存上。而物理內存空間被從新釋放後,又能夠將虛擬內存頁框中的數據移動回去,這個過程就好像是在交換數據同樣,故這一區域被稱爲交換分區(swap

 

mkswap命令

功能:

用於在一個文件或者設備上創建交換分區。在創建完以後要使用sawpon命令開始使用這個交換區。

經常使用選項:

-c:創建交換區前,先檢查是否有損壞的區塊

-L label

另外兩個相關命令:

swapon

-a #標記全部的交換分區都爲啓用狀態

-p #: 在啓用的時候指定其優先級

swapoff

-a #禁用全部

實例:

//建立一個空間爲6G的分區/dev/sdb2,而後把該分區建立爲交換分區

 wKioL1X27KviFbSyAAO8jnaKmi4495.jpg

2.文件系統的掛載和使用

將額外文件系統與根文件系統某現存的目錄創建關聯關係,進而使得此目錄做爲其餘文件系統訪問入口的行爲,稱之爲掛載,解除此關係關係的過程稱爲卸載。

掛載點:mountpoint設備掛載至目錄:

注意:掛載點在掛載後,其內部原有的文件會被暫時隱藏,建議使用空目錄做爲掛載點

相關命令:mountumountfuserfreedfdu

 

mount命令

功能:

用於掛載文件系統到指定的掛載點

mount:不跟任何參數,可顯示當前系統全部已掛載的設備

格式:

mount[options] [-t fstype] [-o option] 設備 掛載點

經常使用選項:

-tfstype 掛載的文件系統格式

-a:加載文件「/etc/fstab」中描述的全部文件系統

-o [^]:文件系統默認掛載選項的啓用或關閉

async:異步模式

sync: 同步模式

atime/noatime:是否更新訪問時間戳;

diratime/nodiratime:是否更新目錄的訪問時間戳;

auto/noauto: 是否容許此設備被自動掛載;

exec/noexec:是否容許執行此文件系統上應用程序;

dev/nodev:是否支持在此設備上使用設備文件;

suid/nosuid

remount:從新掛載

ro:掛載爲只讀

rw:掛載爲可讀寫

user/nouser: 是否容許普通掛載此設備;

acl:是否支持此設備上使用facl

defaultsrw,suid, dev, exec, auto, nouser, and async

 

如掛載時沒有設定特性,可以使用tune2fs修改:

# tune2fs -o mount-option   設備默認掛載屬性

# tune2fs -o ^mount-option  取消默認掛載屬性

幾個關鍵的配置文件:

/etc/rc.d/rc.sysinit:系統初始化腳本

/etc/mtab:記載的是如今系統已經裝載的文件系統,包括操做系統創建的虛擬文件等;

/etc/fstab:是開機後系統自動掛載的文件系統。

此文件中定義的文件系統掛載表:

每行定義一個文件系統:(每行包含的內容)

    

要掛載的設備或僞文件系統 

掛載點

文件系統類型

掛載選項

轉儲頻率

自檢次序

 

1、要掛載的設備或僞文件系統

設備文件、LABEL=UUID=、僞文件系統名稱

2、掛載點

3、文件系統類型

4、掛載選項,多個選項間使用逗號分隔;

defaults

5、轉儲頻率

0: 從不備份

1: 每日備份

2: 每隔一天轉儲

6、自檢次序

0: 不自檢

1: 首先自檢,一般只有/纔有1

 

umount命令

功能:

卸載已掛載的分區,(當設備空閒時才能夠被卸載)

格式:

umount DEVICE

umount MOUNT_POINT

 

fuser命令

功能:

查看佔用掛載的設備的進程:

經常使用選項:

fuser-v 掛載點:  查看當前正在訪問該掛載點的進程

fuser-km 掛載點:  終止全部正在訪問該掛載點的進程:

 

free命令

功能:

查看內存空間使用狀態:

經常使用選項:

-m: 顯示結果以MB爲單位

 wKiom1X26pjiSbDOAAC4hQ2p6sg701.jpg

-g: 顯示結果以GB爲單位

wKiom1X26qHBbvJRAACXTaubtrU986.jpg

內核映射文件中內存的相關信息:

# cat/proc/meminfo

 

df命令

功能:

查看當前系統上已掛載的分區,及其空間使用信息、inode信息等

經常使用選項:

-a--all:包含所有的文件系統

-h--human-readable:以可讀性較高的方式來顯示信息

-i--inodes:顯示inode的信息

-T--print-type:顯示文件系統的類型

實例:

 wKiom1X26z7yk3giAAHOWTGwMRA815.jpg

 

du命令

功能:

統計文件或目錄的實際大小

經常使用選項:

-a-all  顯示目錄中個別文件的大小

-h--human-readable  KMG爲顯示單位

-L<符號連接>--dereference<符號連接>  顯示指定符號連接的源文件大小

-S--separate-dirs  顯示個別目錄的大小時,並不含其子目錄的大小

-c--total  除了顯示個別目錄或文件的大小外,同時也顯示全部目錄或文件的總和

-s--summarize  僅顯示總計,只列出最後加總的值

-k--kilobytes  KB(1024bytes)爲單位輸出

-m--megabytes  MB爲單位輸出

-l--count-links重複計算硬件連接的文件

-L<符號連接>--dereference<符號連接>  顯示選項中所指定符號連接的源文件大小

-D--dereference-args  顯示指定符號連接的源文件大小

實例:

                 wKioL1X27N_j0bVqAAB6HzqTcuw004.jpg

 

 

練習:

建立一個10G的文件系統,類型爲ext4,要求開機可自動掛載至/mydata目錄

1、使用fdisk命令,建立一個10G的分區

              wKiom1X262ixbAUUAAOhvwex1vc134.jpg

 

2、使用partx命令更新分區表讓內核可以識別到新建立的分區

 wKioL1X27bqAWxcFAAEjamSikJo914.jpg

3、使用e2fs命令爲此分區建立文件系統,類型爲ext4

 wKiom1X265SQpKzwAANpVlmYnoM360.jpg

4、在根目錄下建立mydata目錄,並使用mount命令掛載分區

  wKioL1X27dbC947dAAGlw1c4-qk396.jpg

5、使用blkid命令查看該分去的UUD,把該值複製下來,編輯/etc/fstab配置文件,添加一行該分區的信息,下次開機後系統將會自動掛載該分區

wKiom1X267LwV3frAACBtKEaj14813.jpg

wKioL1X27fKD87KkAALTH1bW9yc257.jpg

相關文章
相關標籤/搜索