Linux檔案系統

2021-10-16 22:48:55 字數 3724 閱讀 8839

ext檔案系統,它為linux提供了乙個基本的類unix檔案系統:使用虛擬目錄來操作硬體裝置,在物理裝置上按定長的塊(block)來儲存資料。採用名為索引節點(inode)的系統來存放虛擬目錄中所儲存檔案的資訊。索引節點系統在每個物理裝置中建立乙個單獨的表(稱為索引節點表inodetable)來儲存這些檔案的資訊。

linux通過唯一的數值(稱作索引節點號)來引用索引節點表中的每個索引節點,這個值是建立檔案時由檔案系統分配的。檔案系統通過索引節點號而不是檔案全名及路徑來標識檔案。

ext2檔案系統在ext基礎上,擴充套件了索引節點表的格式來儲存系統上每個檔案的更多資訊;。ext檔案系統常見的問題是在檔案寫入到物理裝置時,儲存資料用的塊很容易分散在整個裝置中(稱作碎片化),ext2通過按組分配磁碟塊,減輕了碎片化。

但ext2存在的問題是,當檔案寫入物理裝置後,若停電崩潰,索引表未更新,無法找到檔案,因此引入日誌檔案系統。

它不再使用之前先將資料直接寫入儲存裝置再更新索引節點表的做法,而是先將檔案的更改寫入到臨時檔案(稱作日誌)中。在資料成功寫到儲存裝置和索引節點表之後,再刪除對應的日誌條目。

linux中有3種廣泛使用的日誌方法,每種的保護等級都不相同。

採用了日誌式技術,你就必須在安全性和效能之間做出選擇。cow(copy-on-write)利用快照兼顧了安全性和效能。如果要修改資料,會使用轉殖或可寫快照。修改過的資料並不會直接覆蓋當前資料,而是被放入檔案系統中的另乙個位置上。即便是資料修改已經完成,之前的舊資料也不會被重寫。

當前常用的兩種cow檔案系統:zfs,btrf檔案系統。

要建立分割槽才能容納檔案系統,分割槽可以是整個硬碟,也可以是一部分,fdisk命令可以管理分割槽,這是乙個互動式的工具,啟動前要指定要分割槽的儲存裝置的裝置名,另外要有root許可權。

如何找到linux中的物理磁碟?

linux採用了一種標準格式來為硬碟分配裝置名稱,老式的ide驅動器,路徑為/dev/hdx,x表示乙個字母(第乙個驅動器為hda,第二個為hdb等等);另一種新式的路徑是/dev/sdx(x代表的含義同上)。

sudo可以暫時切換到超級使用者許可權:

sudo fdisk /dev/sdx

進入fdisk的互動式命令後,輸入字母執行操作,常見的操作如下:

輸入功能

p顯示儲存裝置的詳細資訊

n建立新分割槽

w將更改儲存到儲存裝置上

分割槽可以按主分割槽(primary partition)或擴充套件分割槽(extended partition)建立。主分割槽(c盤)可以被檔案系統直接格式化,而擴充套件分割槽(d,e…)則只能容納其他主分割槽①。擴充套件分割槽出現的原因是每個儲存裝置上只能有4個分割槽。可以通過建立多個擴充套件分割槽,然後在擴充套件分割槽內建立主分割槽進行擴充套件。

在將資料儲存到分割槽之前,你必須用某種檔案系統對其進行格式化,這樣linux才能使用它。

可以使用檔案系統工具,但不是所有工具都安裝了,要檢視是否安裝,可以用type命令。

為分割槽建立了檔案系統之後,下一步是將它掛載到虛擬目錄下的某個掛載點。

sudo mkdir /mnt/my_partition

sudo mount -t ext4 /dev/sdb1 /mnt/my_partition

mkdir命令在虛擬目錄中建立了掛載點,mount命令將新的硬碟分割槽新增到掛載點。mount命令的-t選項指明了要掛載的檔案系統型別(ext4)。

每個檔案系統都有各自可以和檔案系統互動的恢復命令,fsck命令能夠檢查和修復大部分型別的linux檔案系統。

格式:fsck options filesystem

**只能在未掛載的檔案系統上執行fsck命令。對大多數檔案系統來說,你只需解除安裝檔案系統來進行檢查,檢查完成之後重新掛載。**但因為根檔案系統含有所有核心的linux

命令和日誌檔案,所以你無法在處於執行狀態的系統上解除安裝它。在儲存裝置分割槽上直接建立檔案系統的乙個限制因素是,如果硬碟空間用完了,無法輕易地改變檔案系統的大小。但linux支援邏輯卷管理。這是一種跨多個儲存裝置建立虛擬分割槽的方法。這種方法可以輕鬆地擴充套件乙個已有檔案系統,而不用完全重建。

硬碟稱作物理卷(pv)。每個物理卷都會對映到硬碟上特定的物理分割槽。多個物理卷集中在一起可以形成乙個捲組(vg)。邏輯卷管理系統將捲組視為乙個物理硬碟。

邏輯結構如下圖:

lvm可以在linux上用簡單的命令列命令管理乙個完整的邏輯卷管理環境。

除了標準的邏輯卷管理功能之外,還有一些特殊的功能。

1.快照

條帶化可跨多個物理硬碟建立邏輯卷,當linux lvm將檔案寫入邏輯卷時,檔案中的資料塊會被分散到多個硬碟上。每個後繼資料塊會被寫到下乙個硬碟上。可以提高讀取效率,但是,單個硬碟故障,檔案無法讀取,g。

3.映象

映象是乙個實時更新的邏輯卷的完整副本。當你創

建映象邏輯卷時,lvm會將原始邏輯卷同步到映象副本中,需要較長時間,之後的每次讀寫,都會寫入兩次。

1.定義物理卷

第一步就是利用fdisk將硬碟上的物理分割槽轉換成linux lvm使用的物理卷區段,需要t命令來改變分割槽型別為8e。與之前id83類似,8e指的是lvm系統的一部分,最後輸入m命令儲存設定。

下一步用分割槽來建立實際的物理卷

** sudo pvcreate /dev/sdb1**

pvcreate命令定義了用於物理卷的物理分割槽,它將分割槽標記成linux lvm系統中的分割槽。

pvdisplay命令來顯示已建立的物理卷列表,用來獲取進度。

2.建立捲組

使用vgcreate命令從命令列建立捲組。

**sudo vgcreate vol1 /dev/sdb1 **

這條命令使用了sdb1分割槽上的物理卷,建立了乙個名為vol1的捲組。

3.建立邏輯卷

linux系統會像處理物理分割槽一樣處理邏輯卷,允許你定義邏輯卷中的檔案系統,然後將檔案系統掛載到虛擬目錄上。

lvcreate命令用於建立邏輯卷。

sudo lvcreate -l 100%free -n lvtest vol1

l引數指定了邏輯卷的大小,n引數指定了邏輯卷的新名字。

常用的即為大小和名稱兩種引數。

lvdisplay可以檢視邏輯卷的詳細情況。

4.建立檔案系統

sudo mkfs.ext4 /dev/vol1/lvtest

建立檔案系統後,將其掛載到虛擬目錄中。

sudo mount /dev/vol1/lvtest /mnt/my_partition

5.控制lvm環境

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...

Linux檔案系統

linux目錄結構 根目錄 bin 可執行檔案目錄 boot 核心引導檔案 vmlinuz,initrd.img等 dev 裝置檔案儲存目錄,應用程式對這些檔案讀寫和控制可訪問實際裝置 etc 系統配置和一些伺服器配置檔案的位置,如帳號及密碼配置檔案。home 普通使用者目錄 lib 庫檔案目錄 l...

Linux檔案系統

之前對磁碟分割槽已經有了詳細的描述,這篇主要介紹檔案系統 linux的檔案系統是出了名的 下面就 大概介紹下 可以把檔案系統大概分成 superblock inodeblock datablock 三部分 superblock superblock記錄檔案系統的基本資訊比如每塊資料塊的大小,空閒磁碟...