Linux_《Linux命令行與shell腳本編程大全》第八章學習總結

時間:2017年08月14日星期一shell

說明:本文部份內容均摘取自書籍《Linux命令行與shell腳本編程大全》,版權歸原做者全部。《Linux命令行與shell腳本編程大全》(第三版)第八章學習總結編程

第八章:管理文件系統

本章內容centos

文件系統基礎
日誌文件系統與寫時複製文件系統
文件系統管理
邏輯卷佈局
使用Linux邏輯卷管理器

8.1 探索Linux文件系統

8.1.1 基本的Linux文件系統

Linux最初採用的是一種簡單的文件系統。安全

1.ext文件系統工具

Linux操做系統中引入的最先的文件系統叫做擴展文件系統(extended filesystem,簡記爲ext)。它爲Linux提供了一個基本的類Unix文件系統:使用虛擬目錄來操做硬件設備,在物理設備上按定長的塊來存儲數據。佈局

ext文件系統名稱中的extended部分來自其跟蹤的每一個文件的額外數據,包括性能

文件名
文件大小
文件的屬主
文件的屬組
文件的訪問權限
指向存有文件數據的每一個硬盤塊的指針

2.ext2文件系統學習

最先的ext文件系統有很多限制,好比文件大小不得超過2GB。在Linux出現後不久,ext文件就升級到了第二代擴展文件系統,叫做ext2。ext2文件系統是ext文件系統基本功能的一個擴展,但保持了統一樣的結構。ext2文件系統擴展了索引節點表的格式來保存系統上每一個文件的更多信息。centos7

8.1.2 日誌文件系統

日誌文件系統爲Linux系統增長了一層安全性。它再也不使用以前先將數據直接寫入存儲設備再更新索引節點表的作法,而是先將文件的更改寫入到臨時文件(稱做日誌,journal)中。在數據成功寫到存儲設備和索引節點表以後,再刪除對應的日誌條目。若是系統在數據被寫入存儲設備以前崩潰或斷電了,日誌文件系統下次會讀取日誌文件並處理上次留下的未寫入的數據。spa

Linux中有3中普遍使用的日誌方法,每種的保護等級都不相同,以下

方法
   描述
數據模式
    索引節點和文件都會被寫入日誌
    丟失數據風險低,但性能差
有序模式
    只有索引節點數據會被寫入日誌,但只有數據成功寫入後才刪除
    在性能和安全性之間取得了良好的折中
回寫模式
    只有索引節點數據會被寫入日誌,但不控制文件數據什麼時候寫入
    丟失數據風險高,但仍比不用日誌好

1.ext3文件系統

2001年,ext3文件系統被引入Linux內核中,直到最近都是幾乎全部Linux發行版默認的文件系統。它採用和ext2文件系統相同的索引節點表結構,但給每一個存儲設備增長了一個日誌文件,以將準備寫入存儲設備的數據先記入日誌。

2.ext4文件系統

擴展ext3文件系統功能的結果是ext4文件系統。ext4文件系統在2008年受到Linux內核官方支持,如今已經是大多數流行的Linux發行版採用的默認文件系統,好比Ubuntu。

3.Reiser文件系統

2001年,Hans Reiser爲Linux建立了第一個稱爲ReiserFS的日誌文件系統。ReiserFS文件系統只支持回寫日誌模式,只把索引節點表數據寫到日誌文件。ReiserFS文件系統也所以成爲Linux上最快的日誌文件系統之一。

4.JFS文件系統

做爲可能依然在用的最老的日誌文件系統之一,JFS(Journaled File System,日誌化文件系統)是IBM在1990年爲期Unix衍生版AIX開發的。然而直到第2版,它才被移植到Linux環境中。

說明:IBM官方稱JFS文件系統的第2版爲JFS2,但大多數Linux系統提到它時都只用JFS

5.XFS文件系統

XFS日誌文件系統是另外一種最初用於商業Unix系統而現在走進Linux世界的文件系統。美國硅圖公司(SGI)最初在1994年爲其商業化的IRIX Unix系統開發了XFS。2002年,它被髮布到了適用於Linux環境的版本。

8.1.3 寫時複製文件系統

採用了日誌式技術,你就必須在安全性和性能之間作出選擇。就文件系統而言,日誌式的另外一種選擇是一種叫做寫時複製(copy-on-write,COW)的技術。COW利用快照兼顧了安全性和性能。COW文件系統已日漸流行,其中最流行的兩種是ZFS和Btrf。

1.ZFS文件系統

ZFS由Sun公司於2005年研發,是一個穩定的文件系統,與Resier四、Btrfs和ext4平分秋色。但還沒有得到GPL許可,在未得到GPL許可以前,ZFS有可能沒法成爲Linux默認的文件系統。

2.Btrf文件系統

Btrf文件系統是COW的新人,也被稱爲B樹文件系統。由Oracle公司於2007年研發。

8.2 操做文件系統

8.2.1 建立分區

命令:fdisk
命令說明:用來幫助管理安裝在系統上的任何存儲設備上的分區。
命令演示:fdisk /dev/vdb
命令說明:進入fsisk工具的操做界面。(系統爲centos7-64bit)

經常使用fdisk命令

命令:描述
p:顯示當前分區
n:添加一個新分區
w:將分區表寫入磁盤

8.2.2 建立文件系統

在將數據存儲到分區以前,必須用某種文件系統對其進行格式化

建立文件系統的命令行程序

工具:用途
mkefs:建立一個ext文件系統
mke2fs:建立一個ext2文件系統
mkfs.ext3:建立一個ext3文件系統
mkfs.ext4:建立一個ext4文件系統
mkreiserfs:建立一個ReiserFS文件系統
jfs_mkfs:建立一個JFS文件系統
mkfs.xfs:建立一個XFS文件系統
mkfs.zfs:建立一個ZFS文件系統
mkfs.btrfs:建立一個Btrfs文件系統

並不是全部文件系統工具都已經默認安裝

命令演示:type mkfs.ext4
命令說明:查看建立ext4文件系統工具是否可用

命令演示:mkfs.ext4 /dev/sdb1
命令說明:對sdb1分區建立一個ext4文件系統

接下來將它掛載到虛擬目錄下的某個掛載點

命令演示:mkdir /mnt/my_partition
命令說明:建立文件目錄/mnt/my_partition
命令演示:mount -t ext4 /dev/sdb1 /mnt/my_partition
命令說明:將sdb1分區掛載到/mnt/my_partition目錄

說明:這種掛載文件系統的方法只能臨時掛載文件系統。當重啓Linux系統時,文件系統並不會自動掛載。要強制Linux啓動時自動掛載新的文件系統,能夠將其添加到/etc/fstab文件。

8.2.3 文件系統的檢查與修復

命令:fsck
命令說明:檢查和修復大部分類型的Linux文件系統。
    (ext、ext二、ext三、ext四、ReiserFS、JFS、XFS)

fsck命令行選項

選項:描述
-a:若是檢測到錯誤,自動修復文件系統
-A:檢查/etc/fstab文件中列出的全部文件系統
-C:給支持進度條功能的文件系統顯示一個進度條(只有ext2和ext3)
-N:不進行檢查,只顯示哪些檢查會執行
-r:出現錯誤時提示
-R:使用-A選項時跳過根文件系統
-s:檢查多個文件系統時,依次進行檢查
-t:指定要檢查的文件系統類型
-T:啓動時不顯示頭部信息
-V:在檢查時產生詳細輸出
-y:檢測到錯誤時自動修復文件系統

8.3 邏輯卷管理

8.3.1 邏輯卷管理佈局

邏輯卷管理的核心在於如何處理安裝在系統上的硬盤分區。在邏輯卷管理的世界裏,硬盤稱做物理卷(physical volume,PV)。每一個物理卷都會映射到硬盤上特定的物理分區。

邏輯卷管理環境

clipboard.png

8.3.2 Linux中的LVM

Linux LVM是由Heinz Mauelshagen開發的,於1998年發佈到了Linux社區。它容許你在Linux上用簡單的命名行管理一個完整的邏輯卷管理環境。

8.3.3 使用Linux LVM

1.定義物理卷

建立過程的第一步就是將硬盤上的物理分區轉換成Linux LVM使用的物理卷區段。使用fdisk命令的t命令改變分區類型。

命令:pvcreate
命令說明:定義用戶物理卷的物理分區
命令演示:pvcreate /dev/sdb1
命令說明:定義用戶物理卷的/dev/sdb1物理分區

命令:pvdisplay
命令說明:顯示已建立的物理卷列表
命令演示:pvdisplay /dev/sdb1
命令說明:查看/dev/sdb1物理分區是否爲物理卷

2.建立卷組

下一步是從物理卷中建立一個或多個卷組。

命令:vgcreate
命令說明:建立卷組
命令演示:vgcreate Voll /dev/sdb1
命令說明:使用/dev/sdb1分區上建立的物理卷,建立了一個名爲Voll的卷組

命令:vgdisplay
命令說明:查看卷組的細節
命令演示:vgcreate Voll
命令說明:查看名爲Voll的卷組的細節

3.建立邏輯卷

Linux系統使用邏輯捲來模擬物理分區,並在其中保存文件系統。

命令:lvcreate
命令說明:建立邏輯卷
命令演示:lvcreate -l 100%FREE -n lvtest Voll
命令說明:在名爲Voll的卷組上建立一個名爲lvtest的卷組,並指定邏輯區段數

命令:lvdisplay
命令說明:查看邏輯卷的詳細狀況
命令演示:lvdisplay Voll
命令說明:查看卷組Voll下的邏輯卷信息

4.建立文件系統

運行完lvcreate命令以後,邏輯卷就已經產生了,但它尚未文件系統。

命令演示:mkfs.ext4 /dev/Voll/lvtest
命令說明:在Voll卷組下的lvtest邏輯卷中建立一個ext4文件系統

建立好了新的文件系統以後,能夠用標準的Linux mount 命令來將這個卷掛載到虛擬目錄中。

命令:mount /dev/Voll/lvtest /mnt/my_partition
命令說明:將/dev/Voll/lvtest卷掛載到/mnt/my_partition目錄

5.修改LVM

Linux LVM的好處在於可以動態修改文件系統,所以最好有工具可以讓你實現這些操做。

Linux LVM命令

命令:功能
vgchange:激活和禁用卷組
vgremove:刪除卷組
vgextend:將物理卷加到卷組中
vgreduce:從卷組中刪除物理卷
lvextend:增長邏輯卷的大小
lvreduce:減少邏輯卷的大小

竅門:在手動增長或減少邏輯卷的大小時,要特別當心。邏輯卷中的文件系統須要手動修整來處理大小上的變化。大多數文件系統都包含了可以從新格式化文件系統的命令行程序,好比用於ext二、ext3和ext4文件系統的resize2fs程序。

Tip:8.3這一章節太過於底層,樓主學完也是懵逼狀態。目前還未接觸到這麼底層,有使用的時候,須要重複學習噢。

8.4 小結

在Linux上使用存儲設備須要懂一點文件系統的知識。當工做在Linux系統下時,懂得如何在命令行下建立和處理文件系統能幫上你的忙。本章介紹了fdisk、fsck、pvcreate、pvdisplay、vgcreate、vgdisplay、lvcreate、lvdisplay、vgremove、vgextend、vgreduce、lvextend、lvreduce命令。

本章學習命令我的總結以下

vgchange:激活和禁用卷組
fdisk:建立分區、查看分區信息等
fsck:檢查和修復大部分類型的Linux文件系統
pvcreate:定義物理卷
pvdisplay:查看物理卷
vgcreate:建立卷組
vgdisplay:查看卷組
lvcreate:建立邏輯卷
lvdisplay:查看邏輯卷
vgchange:激活和禁用卷組
vgremove:刪除卷組
vgextend:將物理卷加到卷組中
vgreduce:從卷組中刪除物理卷
lvextend:增長邏輯卷的大小
lvreduce:減少邏輯卷的大小
相關文章
相關標籤/搜索