linux fack 文件系統修複命令

来源:http://www.cnblogs.com/qianyuliang/archive/2017/12/20/8072487.html
-Advertisement-
Play Games

【簡介】 fsck命令被用於檢查並且試圖修複文件系統中的錯誤。當文件系統發生錯誤四化,可用fsck指令嘗試加以修複。【選項】必要參數 -a 非互交模式,自動修複 -c 檢查是否存在有損壞的區塊。 -C<反敘述器> fsck.ext3命令會把全部的執行過程,都交由其逆向敘述,便於監控程式 -d 詳細顯 ...


簡介

fsck命令被用於檢查並且試圖修複文件系統中的錯誤。當文件系統發生錯誤四化,可用fsck指令嘗試加以修複。

選項
必要參數
 -a 非互交模式,自動修複
 -c 檢查是否存在有損壞的區塊。
 -C<反敘述器> fsck.ext3命令會把全部的執行過程,都交由其逆向敘述,便於監控程式
 -d 詳細顯示命令執行過程
 -f 強制進行檢查
 -F 檢查文件系統之前,先清理該保存設備塊區內的數據
 -l<損壞區塊文件> 把文件中所列出的損壞區塊,加入標記
 -L<損壞區塊文件> 清除所有損壞標誌,重新標記
 -n 非交互模式,把欲檢查的文件系統設成只讀
 -P<數字>  設置fsck.ext2命令所能處理的inode大小為多少
 -r 交互模式
 -R 忽略目錄
 -s 順序檢查
 -S 效果和指定“-s”參數類似
 -t  顯示fsck.ext2命令的時序信息。
 -v 顯示詳細的處理過程
 -y 關閉互動模式
選擇參數
 -b<分區第一個磁區地址>  指定分區的第一個磁區的起始地址/Super Block
 -B<區塊大小>  設置該分區每個區塊的大小
 -I設置欲檢查的文件系統,其inode緩衝區的區塊數目
 -V顯示版本信息

適用
1) 文件系統:ext2 ext3 reiserfs xfs等
2) 範圍:提示文件系統需要FSCK時,未執行或FSCK執行完成

癥狀
1) 無法MOUNT分區;
2) 大量文件、目錄丟失,根目錄下生成/LOST+FOUND文件夾,裡面有大量#XXXXXX類的文件和目錄;
3) fsck很快報錯完成;
4) fsck執行時,有大量提示,如修改節點、清0節點等操作

應急
1,如遇提示fsck時,要小心,如果可能,請儘快斷開系統,umount所有分區
2,必須執行fsck時,先做準備工作,方法一:可實現用dd命令所有涉及到的分區輸出到另外的存儲體上,命令大致所示:dd if=/dev/sda1 of=/dev/sdb1
3,如上面幾種方式均因條件等原因無法執行,但又必須執行時,可小心觀察fsck的執行提示(關掉 -a) 如果發現有提示節點錯誤需更正或清0,節點描述文件大小不正確等信息,應停止執行fsck
備註
1,如果可能,先對故障區做dd全鏡像備份後在執行,或者以只讀方式自行,並仔細看修複過程,如果提示大量inode錯誤,需要重建樹、或大小不對等就不可再繼續下去了
2,文件系統常見錯誤,並且問題通暢原因是電源失敗,硬體失敗,或者操作失誤,例如沒有正常關閉系統
3,fsck只能運行於為mount的文件系統,不要用於已mount的文件系統
4,修複完成後,會出現提示“FILE SYSTEM WAS MODIFIED”。這時重啟系統

參考範例

手動fsck修複

  fsck不僅可以對文件系統進行掃描,還能修正文件系統的一些問題。值得註意的是fsck 掃描文件系統時一定要在單用戶模式、修複模式或把設備umount後進行。
  警告:如果掃描運行中的系統,會造成系統文件損壞。
  文件系統掃描工具有 fsck,fsck.ext2,fsck.jfs,fsck.msdos,fsck.vfat,fsck.ext3,fsck.reiserfs(reiserfsck)。其中fsck 預設支持文件系統ext2,如果想支持ext3文件系統的掃描,應該加-j 參數。最好是根據不同的文件系統來調用不同的掃描工具,比如ext3的文件系統使用fsck.ext3,ext2文件系統使用fsck.etx2等。


/dev/sdb1是ext3的文件系統,只介紹fsck.ext3

範例1: 檢測磁碟
[root@linux test]# fsck.ext3 /dev/fd0
範例2: 檢測磁碟並顯示時序信息
[root@linux test]# fsck.ext3 -ft /dev/fd0

查看fsck報錯的日誌
[root@server ~]# ls -l /var/log/fsck/
total 8
-rw-r----- 1 root adm 190 2011-06-09 10:03 checkfs
-rw-r----- 1 root adm 192 2011-06-09 10:03 checkroot
這兩個文件中會出現fsck的報錯信息。
[root@server ~]# more /var/log/fsck/checkfs
[root@server ~]# more /var/log/fsck/checkroot

查看當前的運行級別:
fsck.ext3掃描文件系統時一定要在單用戶模式、修複模式或把設備umount後進行。如果掃描運行中的系統,會造成系統文件損壞。
選擇在單用戶模式下運行
# runlevel  ---查看運行級別
[root@server ~]# runlevel
N 2
#init 1  --單用戶模式(1 S),在轉換成單用戶模式時可能會需要輸入root密碼。
[root@server ~]# init 1

使用fsck.ext3對文件系統進行掃描、修複
[root@server ~]# fsck.ext3  -y /dev/sdb1  ---開始進入掃描、修正文件系統, sdb1必須umount
註意紅色方框,該位置需要輸入yes

 

fsck.ext3開始進入掃描、修正文件系統,這個過程時間比較長,中間有數次停頓的過程,只需等待即可,千萬不要以為死機而重啟伺服器。
fsck.ext3掃描、修正完文件系統後,根據提示可能需要重啟系統。如果沒有提示重啟系統,也需要reboot來重啟系統。
[root@server ~]# reboot  ---重啟系統
在重啟系統的過程中,fsck會對文件系統進行掃描,如下:

fsck掃描完以後,會啟動到系統的登錄界面,不需要進行任何干涉。
 
再次重新啟動系統,系統可以正常啟動。
 

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錯誤、需要重建樹、或大小不對等就不可再繼續下去了。





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 推輓輸出,可以輸出高電平,連接數字器件: 輸出0時,N-MOS導通,P-MOS高阻,輸出0。 輸出1時,N-MOS高阻,P-MOS高阻,輸出1;(不需要外部上拉電阻) 開漏輸出: 輸出端相當於三極體的集電極,要得到高電平狀態需要上拉電阻才行,適合做電流型驅動; 輸出0時,N-MOS導通,P-MOS不 ...
  • 1.什麼操作出現:當我在項目中添加產品或者修改時,瀏覽器出現HTTP Status 500 Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not e ...
  • #!/usr/bin/expect -f set pwffd [lindex $argv 0] spawn ssh cmesvr2i expect "*password:" send "$pwffd\r" expect "*#" interact ...
  • 二周第三次課(12月20日)2.14 更改文件和目錄許可權chmod 2.15 更改所有者和所屬組chown2.16 umask2.17 隱藏許可權lsattr/chattr 更改文件和目錄許可權:命令:#chmod >> change mode (-R=文件所有者·文件所屬組·其他用戶一起更改) # r ...
  • Linux下一次刪除百萬文件 Linux下一次刪除百萬文件 線上環境遇到的一個問題,文件數量過多,執行rm命令報錯 # rm -f ./* -bash: /bin/rm: Argument list too long # rm -f ./* -bash: /bin/rm: Argument list ...
  • 一、heartbeat介紹 heartbeat是HA高可用集群的一個重要組件,heartbeat實現了資源轉移和心跳信息傳遞。它的常用組合方式為heartbeat v1,heartbeat v2+crm,heartbeat v3 + pacemaker,目前版本為v3版本。 二、編譯前準備 hear ...
  • 一、LVS基本情況 lvs:Linux Virtual Server,是一種負載均衡集群,其主要是由工作在內核的ipvs與用戶空間的命令行工具ipvsadm組成。支持TCP,UDP,AH,EST,AH_EST,SCTP等諸多協議。 lvs-type: lvs-nat ​ lvs-dr(direct ...
  • 一、systemd的由來與特性 1、歷史由來 從CentOS 7系列開始,redhat正式將systemd用於系統管理,來取代CentOS 5的sysV init和CentOS 6的upstart體系;較之之前,systemd為linux系統提供了啟動與管理的一整套解決方案;下圖為systemd框架 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...