當前位置:首頁 » 操作系統 » linuxext4文件系統

linuxext4文件系統

發布時間: 2023-06-06 08:46:09

linux裡面文件系統有哪些

Linux系統是現在非常受歡迎的操作系統,在Linux之中,一切都是文件,因為有很多操作都是依靠文件系統才可以完成的,而且文件系統可以滿足用戶正常的使用,那麼Linux中常見的文件系統有哪些?為大家介紹一下。
總體來說,在Linux之中,系統能夠支持的文件系統要比Windows系統多很多,達到數十種,所以說Linux系統也是非常出色的操作系統。Linux中常見的文件系統介紹:
1、Ext3:是一款日誌文件系統,能夠在系統異常的情況下避免文件系統資料丟失,並且能夠修復數據的不一致以及錯誤,同時,當硬碟容量較大的時候,所需要的修復時間也會增長,無法保證百分之百資料不會丟失,將整體磁碟的每個寫入動作細節預先記錄,避免發生異常的時候可追蹤到被中斷的部分,嘗試修補。
2、Ext4:是上一個的改進版本,是RHEL
6系統中的默認文件管理系統,支持存儲容量達到了1EB,同時還能夠無限多的子目錄,另外文件系統能夠批量分配block塊,從而極大地提高了讀寫效率。
3、XFS:是一個高性能的日誌文件系統,而且是RHEL
7中默認的文件管理系統,優勢就是在於發生意外可以快速回復可能被破壞的文件,強大的日誌功能只需要花費較低的計算和存儲性能,最大支持存儲容量18EB,幾乎滿足多種需求。

⑵ Linux文件系統的演變

說起文件系統的演變與發展,不得不從最早期的 Minix 操作系統開始說起。

Minix(MINI-UNIX) 是早期的一個迷你版本的 「類UNIX操作系統」 ,由荷蘭阿姆斯特丹自由大學計算機科學系的塔能鮑姆教授自行開發的可以與UNIX操作系統兼容的一個操作系統,因其小型,該操作系統被命名為 MINIX 。

MINIX 系統在設計之初,採用程序模塊化的思想,將一眾程序放在用戶空間運行,而不是在操作系統的內核中運行。如 「文件系統」 「存儲器管理」 等程序均是如此。

受 MINIX 操作系統的影響,早期的Linux操作系統也曾採用由塔能鮑姆教授開發的MINIX的文件系統。

然而,不只因為早期的 MINIX 操作系統並為真正意義上的開源軟體(在保護著作的前提下進行收費),而且基於 MINIX 的內部使用16位的偏移量,使文件系統能夠支持的最大空間只有64MB,支持的最大文件名為14字元,導致後來 Linux 操作系統轉而開發出了 ext(Extended File System) 第一代可擴展文件系統。

ext(Extended File System) 為Linux系統最早的擴展文件系統,採用 「UNIX文件系統」 的元數據結構,克服了 「MINIX」 操作系統性能不佳的問題。

ext 文件系統採用 虛擬文件系統(VFS) ,最大可支持2GB的文件系統。與 MINIX 文件系統不同的是, ext 可以使用最高2GB的存儲空間並同時處理255個字元的文件名。

但,在 ext 文件系統中,文件創建時生成的 inode 信息是不變的,這導致文件發生修改後 inode 中儲存的文件時間戳並不會發生變化;而且 ext 並不會為文件妥善分配空間,磁碟上的多個文件四散分布,嚴重製約了文件系統的性能。

ext 文件系統推出後不久,其開發者便意識到 ext 文件系統中存在很大缺陷( inode不變性 和 文件空間碎片化 ),並在一年後推出了 ext2 (Second Extened File System) 第二代擴展文件系統,用來代替 ext 文件系統。

ext2 吸取了 「UNIX文件系統」 的眾多優點,並且因其良好的可擴展性( 為系統在磁碟上存儲的數據結構預留了很多空間提供給開發者使用 ),在20世紀90年代眾多文件系統中脫穎而出。

眾多新的特性, POSIX(可移植操作系統介面) 、 訪問控製表 等都是在這一代擴展文件系統上實現的。直至今天, POSIX 仍被眾多操作系統所沿用。

不僅如此, ext2 還在 ext 的基礎上進行了完善,能夠最大支持的單個文件達到 2TB。

ext2 文件系統與20世紀90年代的眾多文件系統一樣,將數據寫入到磁碟的過程中如果發生系統奔潰或斷電,極容易導致文件損壞或丟失。

正是因為類似 ext2 等同時期的一眾文件系統,在遭遇系統奔潰或斷電時會出現文件損壞或丟失。盡管 ext2 文件系統擁有開機後對文件系統中文件的一致性校驗,但校驗的過程極為耗時,且校驗的過程中,操作系統上的任何卷組都是不可訪問的。

然而 ext2 遺留的問題在 ext3(Third Extended File System) 中得到了解決。

ext3 文件系統採用日誌記錄的方式,記錄下了操作系統運行中的所有事件,這意味著即便遇到操作系統非正常關機後也無須對文件系統進行校驗,從而防止了文件系統中數據丟失的可能。

盡管 ext3 使用日誌系統進行記錄文件系統的變化,但這並沒有影響 ext3 文件系統處理數據的速度。基於日誌系統在磁碟上的優化,在 ext3 中數據的傳輸效率是高於 ext2 的,並且可以通過重新設置日誌的級別來提升文件系統的性能。

其次, ext3 在設計之初就吸收了 ext2 的很多思想,這使得 ext2 文件系統遷移到 ext3 變得極為便利。事實上, ext3 可以在從 ext2 遷移 ext3 的過程中,無須進行文件系統資料的備份,且無須擔心升級後的數據恢復問題。

也正是因為 ext3 設計之初沿用了眾多 ext2 的功能,這使得 ext3 缺乏變通。例如, 「inode的動態分配」 「可變塊大小」 等問題並沒有得到解決。不僅如此, ext3 文件系統在被掛載為寫入時,無法對文件系統進行完整性校驗。

第四代擴展文件系統( Fourth Extended File System, ext4 ) 是繼 ext3 文件系統的後續版本,不僅支持 ext3 的日誌文件體系 ,同樣支持 大文件系統 ,不僅提高了文件系統對於存儲碎片化的抵抗,而且改進了 inode固一化 的問題。

同時, ext4 文件系統在開發之初就考慮到很多問題,對眾多問題的優化和改進也使得 ext4 擁有了眾多新的特性。例如, 大文件系統 、 使用Extent文件存儲的方式 、 預分配空間 、 延遲文件獲取空間的時間 、 突破原有子目錄限制 、 增加日誌校驗和 、 在線整理磁碟 、 文件系統快速檢查 、 向下兼容其他ext文件系統`。

時至今天, ext4 文件系統已經成為Linux發行版默認使用的文件系統。

與 ext2 文件系統同一時期出現的,還有 xfs 文件系統。 xfs 文件系統是高性能的文件系統,最早在 IRIX 操作系統上開發,後期被移植到 Linux 操作系統上。現在所有的 Linux發行版 都支持 xfs 的使用。

相比 32位 Linux 的操作系統來說,64位 xfs 的文件系統能夠支持的單個文件系統要遠遠超出 32位 操作系統。

xfs 對文件系統元數據提供了日誌支持,當文件系統發生變化後,總是會保證源數據在數據塊寫入磁碟之前被寫入日誌中,磁碟中有一處緩沖區專門用來存放日誌,從而不會影響正常的文件系統。

xfs 同樣支持 「條帶化分配」 。在條帶化RAID陣列上創建 xfs 文件系統時,可以指定 條帶化數據單元。通過配置條帶化單元,使 數據分配、inode分配、日誌等與RAID條帶單元對齊,來提高文件系統的性能。

與 ext4 文件系統不同的是, xfs 文件系統還支持在線恢復。 xfs 文件系統提供了 xfsmp 和 xfsrestore 工具協助備份 xfs 文件系統中的數據。

以下為各文件系統的出現時間及特性:

參考自: https://zh.wikipedia.org/wiki/Ext4

⑶ linux操作系統故障處理-ext4文件系統超級塊「can't read superblock」損壞修復

前幾天在廣州參加植物病毒學會議,一邊聽會一邊開著TeamViewer遠程連接實驗室裝有linux系統的工作站跑程序幹活。有一天下午發現TeamViewer顯示伺服器離線,原來是因為施工導致停電。Anyway, 不重要,發微信讓小青兒給我重啟伺服器,結果發現重啟不了,大概就是這個界面。

怎麼著都進不去圖形界面,簡而言之,工作站重啟不了了。索性不管了,好好聽報告,心想回到福州再收拾工作站。回到福州第一件事就是坐下來重啟工作站,發現無論怎麼折騰都進不去系統。

雖然圖形界面進不去,好在還能夠在命令行下進行操作。當看到 /bioinfor ,這個存放目錄的路徑下啥都沒有的時候,這可是我所有的數據啊!如果這個盤里的數據沒了,各個合作者還不得把我手撕了。想到這里,冷汗差點下來了。

於是開始尋找解決方法。

首先得想辦法進入系統,在反復地 sudo reboot 都無法進入系統之後,通過 df -h 也看不到/dev/sda(也就是掛載到/bioinfor路徑的磁碟)信息。然後猜測是不是因為磁碟以及分區表之類出現了錯誤導致不能進入系統。通過 sudo vi /etc/fstab 將除了系統安裝盤之外的所有硬碟的掛載信息全部注釋掉,再 reboot , 這時候果然可以進入圖形界面系統了。但依然看不到 /bioinfor 盤下的數據。能夠開機就讓我放心了很多。通過 gparted 工具,能夠看到/dev/sda硬碟里used space大概是1.7T,還剩下1.9T左右,這就表示我的數據還在。試圖通過 sudo umount /dev/sda 先取消掛載,再重新 sudo mount /dev/sda /bioinfor 掛載到/bioinfor路徑,結果報錯。

報錯信息顯示:

搜索網頁發現,有一個哥們經歷了跟我一樣的遭遇, 意外斷電造成mount掛載硬碟報錯 。所以,這次事故是因為意外斷電,基本實錘了。

但到底什麼是superblock呢?

繼續搜索,直到讀到一篇技術文章 linux操作系統故障處理,ext4文件系統超級快損壞修復 。本文可以忽略,但這篇技術文章得認真讀讀。裡面講解了磁頭,磁軌,柱面,扇區,以及硬碟容量等等概念,以及最重要的inode和block,Superblock(超級塊)概念。

既然報錯提示Superblock出了問題,那我們就應該從這里入手。linux系統提供了一個磁碟命令 fsck 來嘗試對設備進行修復。但可惜,用這個命令的時候,都會提醒你,應該安裝最新的 fsck 工具包。

提示如下:

根據這篇文章 E2FSCK: how to handle the 「metadata_csum」 error by advancing the e2fsck version beyond default installed version 的提示,需要安裝1.43X的 e2fsck , 安裝方法小結如下。

檢驗一下是否更新成功:

能夠看到已經更新到1.43.5版本。

安裝完之後,開始對磁碟進行修復,命令如下:

一般都能修復完畢,然後可以再進行取消掛載或者重新掛載的操作。看到數據都還完好無缺地在電腦上,還處於後怕的我趕緊掏出移動硬碟進行原始數據的備份。

本次debug結束

這篇技術日誌對讀者可參考性並不高,是因為應用場合實在是少,(試想誰會天天斷電呢),但還是有一些體會和感悟:

⑷ linux系統ext4文件系統rm刪除的文件怎麼恢復

系統:Oracle Linux OEL6.5 x64
分區格式:ext4
起因:今天手賤在自己伺服器上誤操作將/home/ORACLE目錄給刪除了,結果導致服務全面崩潰
遂谷歌了一把發現了神器 extundelete(如果是ext3文件系統請使用ext3grep,本人未做測試),這玩意可比瘟得死下面的各種恢復工具強大多了(至少本人是這么認為的)。

關於extundelete這個工具的說明使用,官方網站extundelete.sourceforge.net是這樣說的,extundelete是一種實用的工具,可以從ext3或ext4分區恢復被刪除的文件,不能保證恢復所有的文件,所以最好能做好備份.它的最新版本是0.2.4
為什麼要用extundelete?
官方這樣描述,如果您已經在ext4的文件系統中刪除了文件,選extundelete是一個不錯的選擇,它能夠恢復已刪除文件的文件名及內容.如果是在ext3的文件系統中刪除了文件,extundelete和ext3grep比較仍然有一些優點,extundelete分析日誌文件後,能夠立即恢復一個文件,ext3grep分析整個硬碟才開始恢復硬碟中的文件,ext3grep方法是是有效的從一個小分區恢復多個文件,所以相比而言,如果需要從一個大的分區中恢復文件,extundelete要快些.
注意:在安裝extundelete之前,要確定已經安裝了e2fsprogs和e2fslibs(確定e2fsprogs的版本在1.41或者更高版本,可通過運行命令mpe2fs來查看版本).
一、下載及安裝軟體
extundelete 主頁:http://extundelete.sourceforge.net/
下載地址:http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 (需 跨牆)
ubuntu用戶可直接安裝: apt-get install extundelete

# wget http://nchc.dl.sourceforge.NET/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
# tar -jxvf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# ./configure --prefix=/usr/local/extundelete
# make && make install

extundelete --help 查看有哪些選項 --restore-file 指定恢復文件, --restore-all 恢復全部等等,恢復完成後,恢復的文件就在當前目錄下生成的RECOVERED_FILES的目錄里.

實測:rm -rf /home/oracle
[plain] view plain
[root@rac1 extundelete-0.2.4]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 19G 29G 40% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 44M 26G 1% /home
二、數據恢復
1.卸載需要恢復文件的分區
[root@rac1 extundelete-0.2.4]# fuser -k ?home <-- 結束使用某分區的進程樹
[root@rac1 extundelete-0.2.4]# umount /home <-- 卸載分區

2.使用extundelete查看分區上存在的文件

[plain] view plain
[root@rac1 extundelete-0.2.4]# extundelete --inode 2 /dev/mapper/VolGroup-lv_home <div class="crayon-pre" style="box-sizing: border-box; padding: 0px; margin: 0px; white-space: pre; overflow: visible; font-family: monospace !important; background-image: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 15px !important; line-height: 20px !important;"><div class="crayon-line" id="crayon-53febd9362e4c249413479-1" style="box-sizing: border-box; font-family: inherit; border: 0px; padding: 0px 5px; margin: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; background-position: 0px 50%;"><span class="crayon-c" style="box-sizing: border-box; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; color: rgb(255, 140, 0) !important;"> # --inode 為查找某i節點中的內容,使用2則說明為搜索,如果需要進入目錄搜索,只須要指定目錄I節點即可</span></div></div>NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 221 groups loaded.
Group: 0
Contents of inode 2:
0000 | ed 41 00 00 00 10 00 00 74 85 fe 53 72 85 fe 53 | .A......t..Sr..S
0010 | 72 85 fe 53 00 00 00 00 00 00 03 00 08 00 00 00 | r..S............
0020 | 00 00 08 00 02 00 00 00 0a f3 01 00 04 00 00 00 | ................
0030 | 00 00 00 00 00 00 00 00 01 00 00 00 11 24 00 00 | .............$..
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0080 | 1c 00 00 00 cc 8f 32 d4 cc 8f 32 d4 1c 8c d6 9d | ......2...2.....
0090 | d1 21 ea 53 00 00 00 00 00 00 00 00 00 00 02 ea | .!.S............
00a0 | 07 06 3c 00 00 00 00 00 21 00 00 00 00 00 00 00 | ..<.....!.......
00b0 | 73 65 6c 69 6e 75 78 00 00 00 00 00 00 00 00 00 | selinux.........
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 73 79 73 74 | ............syst
00e0 | 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f 72 3a 68 6f | em_u:object_r:ho
00f0 | 6d 65 5f 72 6f 6f 74 5f 74 3a 73 30 00 00 00 00 | me_root_t:s0....

Inode is Allocated
File mode: 16877
Low 16 bits of Owner Uid: 0
Size in bytes: 4096
Access time: 1409189236
Creation time: 1409189234
Modification time: 1409189234
Deletion Time: 0
Low 16 bits of Group Id: 0
Links count: 3
Blocks count: 8
File flags: 524288
File version (for NFS): 0
File ACL: 0
Directory ACL: 0
Fragment address: 0
Direct blocks: 127754, 4, 0, 0, 1, 9233, 0, 0, 0, 0, 0, 0
Indirect block: 0
Double indirect block: 0
Triple indirect block: 0

File name | Inode number | Deleted status
. 2
.. 2
lost+found 11
oracle 523265 Deleted

被刪除的oracle文件夾已經被找到,狀態為已經刪除,接下來就將它們恢復出來。

[root@rac1
Desktop]# extundelete --restore-all /dev/mapper/VolGroup-lv_home # --restore-all是全部恢復 ,默認全將恢復出來的文件放在當前路徑 RECOVERED_FILES/ 目錄下,文件名為 file.I節點號
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 221 groups loaded.
Loading journal descriptors ... 3108 descriptors loaded.
Searching for recoverable inodes in directory / ...
3576 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.

[root@rac1 Desktop]# ls RECOVERED_FILES/
lost+found oracle
[root@rac1 Desktop]# mount /home
[root@rac1 Desktop]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 21G 26G 45% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 44M 26G 1% /home
[root@rac1 Desktop]# mv RECOVERED_FILES/oracle /home

[root@rac1
Desktop]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4 50G 19G 29G 40% /
tmpfs tmpfs 998M 80K 998M 1% /dev/shm
/dev/sda1 ext4 477M 55M 397M 13% /boot
/dev/mapper/VolGroup-lv_home ext4 28G 2.6G 24G 10% /home

至此2.6G的數據恢復完畢。
恢復之後,許可權不一致的,別忘了授權。
[root@rac1
~]# chmod -R 777 /home/oracle

驗證數據是否可用:
[root@rac1
home]# su oracle
[oracle@rac1 home]$ db11g

SQL*Plus:
Release 11.2.0.3.0 Proction on Thu Aug 28 14:09:49 2014

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> 搞定!

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:626
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:356
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:71
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:296
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:787
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:337
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:202
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:798
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:355
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:582