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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...