fsck命令詳解


 

基礎命令學習目錄首頁

 

本文出自 “airfish2000” 博客,更多命令查看博客:

http://airfish2000.blog.51cto.com/10829608/1880801

 

fsck命令

使用fsck命令可以檢查文件系統並嘗試修復系統的錯誤。

命令語法:

fsck [選項] [文件系統]

命令中各選項的含義如表所示。

表                                fsck命令選項含義

選項

含義

-a

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

-A

按照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統

-N

不執行命令,僅列出實際執行會進行的動作

-P

當搭配-A選項使用時,則會同時檢查/目錄的文件系統

-r

采用交互模式,在執行修復時詢問,讓用戶確認並決定處理方式

-R

當使用-A選項檢查所有文件系統的時候,跳過/目錄的文件系統

-t <文件系統類型>

指定要檢查的文件系統類型

-C

顯示完整的檢查進度

-y

關閉互動模式

-c

檢查壞塊,並將它們添加到壞塊列表

-p

自動修復文件系統錯誤

-f

強制檢查,即使文件系統被標記干凈

 

例:檢查磁盤分區/dev/sda5的文件系統。

[root@rhel ~]# fsck /dev/sda5

例:強制檢查磁盤分區/dev/sda5的文件系統

[root@rhel~]# fsck -f /dev/sda5

fsckfrom util-linux-ng 2.17.2

e2fsck1.41.12 (17-May-2010)

第一步:檢查inode,塊,和大小

第二步:檢查目錄結構

第3步:檢查目錄連接性

Pass4: Checking reference counts

第5步:檢查簇概要信息

/dev/sda5:12/6561792 files (0.0% non-contiguous), 459863/26215641 blocks

例:檢查和修復磁盤分區/dev/sda5的文件系統,在執行修復時進行詢問,讓用戶決定處理方式,顯示詳細修復過程。

    [root@rhel ~]# fsck -rV -t ext4 /dev/sda5

例:檢查磁盤分區/dev/sda5的文件系統,並顯示完整的檢查進度。

[root@rhel ~]# fsck -C -t ext4/dev/sda5

例:檢查磁盤分區/dev/sda6的msdos文件系統的是否正常,如果有異常便自動修復。

[root@rhel ~]# fsck -t msdos -a/dev/sda6

 

功能說明:檢查文件系統並嘗試修復錯誤。
語  法:fsck [-aANPrRsTV][-t <文件系統類型>][文件系統...]
補充說明:當文件系統發生錯誤四化,可用fsck指令嘗試加以修復。
注意:千萬不能在運行的系統上面直接執行fsck,特別是RHEL6.0以下ext3的文件系統,否則100%損壞根文件系統,使用fsck -y /dev/sdb1 修復磁盤時,必須將sdb1分區umount掉
參  數:
-a 自動修復文件系統,不詢問任何問題。
-A 依照/etc/fstab配置文件的內容,檢查文件內所列的全部文件系統。
-N 不執行指令,僅列出實際執行會進行的動作。
-P 當搭配"-A"參數使用時,則會同時檢查所有的文件系統。
-r 采用互動模式,在執行修復時詢問問題,讓用戶得以確認並決定處理方式。
-R 當搭配"-A"參數使用時,則會略過/目錄的文件系統不予檢查。
-s 依序執行檢查作業,而非同時執行。
-t<文件系統類型> 指定要檢查的文件系統類型。
-T 執行fsck指令時,不顯示標題信息。
-V 顯示指令執行過程。
fdisk -l 查看設備號
運行 fsck -y /dev/sdb1 修復磁盤  -y參數為自動確認修復
這條命令也是用fsck修復磁盤是,常使用的命令

特別說明:在EXT3(實際上其他文件系統也類似)無法mount,或者提示fsck時,如果有重要數據,應該慎重對待,千萬不可貿然執行"fsck -f -y "這樣的自動修復功能。如果可能,先對故障區域做dd全鏡像后再執行,或者以只讀方式執行,並仔細看修復過程,如果提示大量inode錯誤、需要重建樹、或大小不對等就不可再繼續下去了。

Linux ext3 fsck一定要慎用

不管是哪種文件系統,其根本目的都是相同的:如何把文件存在系統給定的區域里,如何有效地管理文件的讀與寫。為實現這樣的目的,驅動層需要完善、周密地應付附加在文件系統上的各種操作。這些操作通常不會是一條指令完成的,如果一個過程需要多條指令完成,在執行這些操作時,全部指令未完成的情況下產生中斷,那這個文件系統便會出現一致性錯誤(或者叫連續性錯誤)。

為了保證盡可以少的出現一致性錯誤,現在主流的文件系統都會設計成日志型的。日志型文件系統的主要特點就是把一個操作的所有指令執行過程都另外緩沖下來,如果全部執行完成再清除日志標志,如果操作沒有執行完成,可以在重新激活后通過日志回溯或繼續完成。

EXT3的日志功能通過在EXT2的設計基礎上增加一個特殊的文件(通常是8號節點文件),在這個文件中記錄文件系統的操作過程。但EXT系統文件系統本身在節點、間接索引塊、目錄節點方面沒有冗余保護,所以當文件系統除日志外的其他結構並不一致,卻又要通過fsck來進行修復,這種一致性有可能將原本正確的結構也錯誤化。(就像原來是1+2=3,現在錯成了1+3=3,也許改完后變成了1+3=4,就完全沒辦法還原成最早的1+2=3)。

數據恢復領域經常會遇到這類情況:一次RAID出故障后,下次啟動系統提示做fsck,但做完后,也無法mount分區或者mount 分區后數據全是錯的。需要對這類情況進行數據修復的難度是很大的,從一個完整的結構(fsck后實際上從系統角度看已經是完整的了)再構建另一個完全不同的結構要比修正一個錯誤的結構更難以下手。其實這類情況,很多是因為RAID5有早離線的盤加入了兩個邏輯磁盤組,導致所有的數據流是以新+舊的方式交錯組成的,自然會有太多錯誤。這時候如果做fsck后,有可能數據都無法恢復了。

所以,在EXT3(實際上其他文件系統也類似)無法mount,或者提示fsck時,如果有重要數據,應該慎重對待,千萬不可貿然執行"fsck -f -y "這樣的自動修復功能。如果可能,先對故障區域做dd全鏡像后再執行,或者以只讀方式執行,並仔細看修復過程,如果提示大量inode錯誤、需要重建樹、或大小不對等就不可再繼續下去了。

原文鏈接:https://blog.csdn.net/ggxiaobai/article/details/53505118

 

補充說明:當文件系統發生錯誤四化,可用fsck指令嘗試加以修復。
注意:千萬不能在運行的系統上面直接執行fsck,特別是RHEL6.0以下ext3的文件系統,
      否則100%損壞根文件系統,使用fsck -y /dev/sdb1 修復磁盤時,必須將sdb1分區umount掉

fdisk -l 查看設備號
運行 fsck -y /dev/sdb1 修復磁盤  -y參數為自動確認修復
這條命令也是用fsck修復磁盤是,常使用的命令
特別說明:在EXT3(實際上其他文件系統也類似)無法mount,或者提示fsck時,如果有重要數據,應該慎重對待,千萬不可貿然執行"fsck -f -y "這樣的自動修復功能。如果可能,先對故障區域做dd全鏡像后再執行,或者以只讀方式執行,並仔細看修復過程,如果提示大量inode錯誤、需要重建樹、或大小不對等就不可再繼續下去了。

---------------------
作者:selina361
來源:CSDN
原文:https://blog.csdn.net/selina361/article/details/79784698
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM