Linux基礎命令---fsck

来源:https://www.cnblogs.com/wj78080458/archive/2018/11/02/9898224.html
-Advertisement-
Play Games

fsck 檢查或者修複指定的文件系統,可以是設備名、掛載點,還可以是一個ext2的label,或者是一個UUID。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、語法 fsck [選項] –t systype device fsc ...


fsck

      檢查或者修複指定的文件系統,可以是設備名、掛載點,還可以是一個ext2的label,或者是一個UUID。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、語法

      fsck [選項]  –t  systype device

      fsck [-sAVRTMNP]  [-C [fd]]  [-t fstype]  [filesys...] [--]  [fs-specific-options]

 

2、選項列表

選項

說明

-s

檢查的序列。如果有多個文件系統需要檢查,那麼按照順序來操作。註意:e2fsck(8)預設以交互模式運行。要使e2fsck(8)在非互動式模式下運行,必須指定-p或-a選項,如果希望自動更正錯誤,則必須指定-n選項。

-t fslist

指定要檢查的文件系統的類型。當指定-A標誌時,只檢查與fslist匹配的文件系統。fslist參數是以逗號分隔的文件系統和選項說明符列表。這個逗號分隔的列表中的所有文件系統都可能以否定操作符“no”或“!”作為首碼,該操作符要求只檢查fslist中未列出的文件系統。如果fslist中的所有文件系統都不以否定操作符作為首碼,那麼將只檢查fslist中列出的文件系統。

選項說明符可能包含在逗號分隔的fslist中。它們必須具有“opts=s-option”的格式。如果存在選項說明符,那麼只有在“/etc/fstat”的掛載選項欄位中包含s-option的文件系統才會被檢查。如果選項說明符以否定操作符為首碼,那麼只有那些沒有fs-option的文件系統才會被選中。在它們的掛載選項欄位“/etc/ffstab中”將被檢查。例如,如果“opts=ro”出現在fslist中,那麼只會檢查“/etc/fstab”中列出的帶有ro選項的文件系統。

為了相容Mandrake發行版,它的引導腳本依賴於對fsck程式的未經授權的ui更改,如果在fslist中找到了一個文件系統類型的迴圈,就會將它視為將opts=loop指定為-t選項的參數。

通常,文件系統類型是通過在“/etc/fstab”文件中搜索文件並使用相應的條目來推斷的。如果無法推斷該類型,並且只有一個文件系統作為-t選項的參數,fsck將使用指定的文件系統類型。如果該類型不可用,則使用預設的文件系統類型(當前Ext 2)。

-A

遍歷“/etc/fstab”文件,並嘗試在一次運行中檢查所有文件系統。此選項通常來自“/etc/rc”系統初始化文件,而不是用於檢查單個文件系統的多個命令。除非指定了-P選項(見下文),否則將首先檢查根文件系統。之後,將按照“/etc/fstab”文件中fs_passno(第六個)欄位指定的順序簽入文件系統。跳過fs_passno值為0的文件系統,將檢查fs_passno值大於零的文件系統。如果有多個文件系統具有相同的通行號,fsck將嘗試並行地檢查它們,儘管它將避免在同一個物理磁碟上運行多個文件系統檢查。

fsck不與任何其他設備並行檢查堆疊設備。因此,在“/etc/fstab“文件中非常常見的配置是將根文件系統設置為fs_passno值為1,並將所有其他文件系統設置為fs_passno值為2。如果由於某種原因需要避免多個文件系統檢查並行運行,則選擇不使用此配置。例如,如果有問題的機器記憶體不足,因此過多的分頁會引起關註。

fsck通常不會在調用文件系統的檢查器之前檢查設備是否實際存在。因此,如果文件系統特定的檢查器返回致命錯誤,則不存在的設備可能導致系統在引導期間進入文件系統修複模式。“/etc/fstab”掛載選項不會失敗,可以讓fsck跳過不存在的設備。fsck還跳過具有特殊文件系統類型AUTO的不存在設備。

-C [fs]

顯示檢查的進度。顯示支持這些文件系統檢查程式的完成/進度條(目前只用於ext 2和ext 3)。Fsck將管理文件系統檢查器,以便它們中一次只顯示一個進度條。gui前端可以指定文件描述符fd,在這種情況下,進度條信息將發送到該文件描述符。

-M

不要檢查已安裝的文件系統,並返回安裝文件系統的退出代碼0。

-N

不執行檢查操作,只是演示一下

-P

設置-A標誌時,與其他文件系統並行檢查根文件系統。這不是世界上最安全的事情,因為如果根文件系統懷疑e2fsck(8)可執行文件可能被破壞了!這個選項主要是為那些不希望將根文件系統重新劃分為小型和緊湊(這是真正正確的解決方案)的系統管理員提供的。

-R

當使用-a標誌檢查所有文件系統時,跳過根文件系統

-T

啟動時不要顯示標題

-V

顯示執行過程

fs-specific-options

fsck不理解的選項被傳遞給特定於文件系統的檢查器。這些參數不能使用參數,因為fsck無法正確猜測哪些參數可以選擇選項,哪些參數不能。後面的選項和參數被視為要傳遞給文件系統特定檢查器的文件系統特定選項。

請註意,fsck的設計並不是為了將任意複雜的選項傳遞給特定於文件系統的檢查器。如果您正在做一些複雜的事情,請直接執行特定於文件系統的檢查程式。如果您傳遞fsck一些非常複雜的選項和參數,並且它沒有按照您的預期執行,那麼就不要將它報告為bug。你幾乎肯定在做一些不該用fsck做的事。

不同文件系統特定fsck的選項沒有標準化。如果有疑問,請查閱文件系統特定檢查器的手冊頁。雖然沒有保證,但大多數文件系統檢查程式都支持下列選項

-a

自動修複文件系統。請註意e2fsck(8)只支持向後相容。此選項映射到e2fsck的-p選項,與某些文件系統檢查器支持的-a選項不同,該選項是安全的。

-n

對於某些特定於文件系統的檢查程式,-n選項將導致fs特定的fsck避免試圖修複任何問題,但只需將此類問題報告給stdout。然而,並不是所有特定於文件系統的檢查程式都是如此。特別是,如果給定該選項,fsck.reiserfs(8)將不會報告任何損壞。fsck.minix(8)根本不支持-n選項。

-r

以交互方式修複文件系統(請求確認)。註意:如果多個fsck並行運行,使用此選項通常是個壞主意。還請註意,這是e2fsck的預設行為;它僅出於向後相容性的原因支持此選項。

-y

對於某些特定於文件系統的檢查程式,-y選項將導致fs特定的fsck總是試圖自動修複任何檢測到的文件系統損壞。有時專家可能能夠更好地手動驅動fsck。請註意,並非所有特定於文件系統的檢查程式都實現了此選項。特別是fsck.minix(8)和fsck.lamfs(8)不支持-y選項。

 

3、說明

      如果命令行上沒有指定任何文件系統,並且沒有指定-A選項,fsck將預設為串列地檢查/etc/fstat中的文件系統。fsck指令可以有以下的返回值:

      0,沒有錯誤。

     1,文件系統錯誤更正。

     2,系統應該重啟。

     4,系統錯誤沒有更正。

     8,操作錯誤。

     16,語法錯誤。

     32,用戶取消fsck。

     128,共用庫錯誤。

     檢查多個文件系統時返回的退出代碼是所檢查的每個文件系統的退出代碼的逐位OR。

     實際上,fsck只是linux下可用的各種文件系統檢查器(fsck.fstype)的前端。文件系統特定的檢查器首先在/sbin中搜索,然後在/etc/fs和/etc中搜索,最後在PATH環境變數中列出的目錄中搜索。

 

4、環境變數

     fsck的執行收到以下環境變數的影響:

     1)FSCK_FORCE_ALL_PARALLEL,如果設置了此環境變數,fsck將嘗試並行運行所有指定的文件系統,而不管文件系統是否位於同一設備上。(這對於RAID系統或高端存儲系統(如IBM或EMC等公司銷售的存儲系統)非常有用。)請註意,fs_passno值仍被使用。

     2)FSCK_MAX_INST,這個環境變數將限制一次運行的文件系統檢查器的最大數量。這允許具有大量磁碟的配置避免fsck一次啟動過多的文件系統檢查器,這可能會使系統上可用的CPU和記憶體資源超載。為零,則可以生成無限數量的進程。這是當前的預設情況,但未來版本的fsck可能會嘗試根據從操作系統收集會計數據自動確定可以運行多少個文件系統檢查。

     3)PATH,PATH環境變數用於查找文件系統檢查器,首先搜索一組系統目錄:/sbin、/sbin/fs.d、/sbin/fs、/etc/fs和/etc/fs,然後搜索路徑環境中的一組目錄。

     4)FSTAB_FILE,這個環境變數允許系統管理員覆蓋/etc/fstab文件的標準位置,對於正在測試fsck的開發人員也很有用。

 

5、實例

     檢查sdb4

 [root@localhost ~]# [root@localhost ~]# fsck -t swap /dev/sdb4

fsck from util-linux-ng 2.17.2

e2fsck 1.41.12 (17-May-2010)

/dev/sdb4 was not cleanly unmounted, 強制檢查.

Resize inode not valid.  重建<y>?

 

第一步檢查inode,,和大小

第二步檢查目錄結構

3檢查目錄連接性

Pass 4: Checking reference counts

5檢查簇概要信息

Free s count wrong for  #0 (7854, counted=7855).

處理<y>? 

 

Free s count wrong (15722, counted=15723).

處理<y>? 

 

/dev/sdb4: ***** 文件系統已修改*****

/dev/sdb4: 11/4096 files (0.0% non-contiguous), 661/16384 blocks

[root@localhost ~]# 

     


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

-Advertisement-
Play Games
更多相關文章
  • 一、列表推導式 寫點:[結果 for 變數 in 可迭代對象 if 判斷] 二、字典推導式 寫法:[結果 for 變數 in 可迭代對象 if 判斷] 三、集合推導式 寫法:[結果 for 變數 in 可迭代對象 if 判斷] 結論: 推導式比較耗記憶體。一次載入。而生成器表達式幾乎不占用記憶體。使用的 ...
  • 一.概述 當你在嘗試一門新的語言時,可能不會過於關註程式出錯的問題, 但當真的去創造可用的代碼時,就不能再忽視代碼中的可能產生的錯誤和異常了。 鑒於各種各樣的原因,人們往往低估了語言對錯誤處理支持程度的重要性。 事實會表明,Scala 能夠很優雅的處理此類問題, 這一部分,我會介紹 Scala 基於 ...
  • 證明: ...
  • url映射的作用 根據Django的MTV模式,url的映射是根據用戶輸入或傳送而來的url路徑,來進行區分去執行相應的view函數來響應用戶的操作。 url映射的方式 Django項目的創建後,會自動創建和你項目名稱相同的全局文件包,urls.py就在其中。 urlpatterns = [ pat ...
  • javaServlet的構建,servlet,java前端和後端的通信 ...
  • "State of the Lambda" 這篇主要講 Labmbda 的背景和用法 譯文: "深入理解Java 8 Lambda(語言篇——lambda,方法引用,目標類型和預設方法)" "State of the Lambda: Libraries Edition" 這篇主要講 Stream 操 ...
  • 本節主要內容: 1. 函數參數--動態傳參 2. 名稱空間, 局部名稱空間, 全局名稱空間, 作⽤域, 載入順序. 3. 函數的嵌套 4. gloabal, nonlocal關鍵字 ⼀. 函數參數--動態傳參 之前我們說過了傳參, 如果我們需要給⼀個函數傳參, ⽽參數⼜是不確定的. 或者我給⼀個 函 ...
  • Hadoop大數據部署 一. 系統環境配置: 1. 關閉防火牆,selinux 關閉防火牆: 設置selinux為disable 2. 配置ntp時間伺服器 將IP地址換成可用的時間伺服器IP 3. 修改系統限制 4. 創建hadoop用戶 5. 配置hosts 6. 分發公鑰 保證某一個節點上都有 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...