0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用fsck和xfs_repair命令修復(fù)Linux磁盤錯(cuò)誤?

dyquk4xk2p3d ? 來源:Linux就該這么學(xué) ? 2023-03-15 09:24 ? 次閱讀

什么是FSCK?

fsck(文件系統(tǒng)一致性檢查)是用于檢查Linux操作系統(tǒng)文件系統(tǒng)一致性的工具。

列出 Linux 磁盤分區(qū)和類型:

首先,需要確定 Linux 系統(tǒng)的磁盤分區(qū)、它們各自的文件系統(tǒng)以及掛載點(diǎn)。 下面使用lsblk命令列出磁盤明、文件系統(tǒng)類型、掛載點(diǎn):

[root@localhost~]#lsblk-oNAME,FSTYPE,MOUNTPOINT
NAMEFSTYPEMOUNTPOINT
sda
sdb
sdc
sdd
sr0iso9660
nvme0n1
├─nvme0n1p1ext4/boot
└─nvme0n1p2LVM2_member
├─cl-rootxfs/
└─cl-swapswap[SWAP]

b8a64448-c28f-11ed-bfe3-dac502259ad0.png

獲取 Linux 磁盤的上次掃描時(shí)間

你可以使用下命令找到 Ext2,Ext3,Ext4 類型分區(qū)的最后一次掃描時(shí)間。

[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked
Lastchecked:WedSep115:42:112021

b8b1af9a-c28f-11ed-bfe3-dac502259ad0.png

掃描和修復(fù) Ext4 類型的磁盤分區(qū)

掃描 Linux 磁盤分區(qū),可以使用fsck(文件系統(tǒng)一致性檢查)命令。但是在檢查和修復(fù)它之前,需要卸載該分區(qū)。下面實(shí)例中,我們卸載的是/boot分區(qū)。

[root@localhost~]#umount/dev/nvme0n1p1
卸載成功后,使用fsck.ext4檢查/dev/nvme0n1p1分區(qū)
[root@localhost~]#fsck.ext4/dev/nvme0n1p1
e2fsck1.44.3(10-July-2018)
/dev/nvme0n1p1:clean,311/65536files,55546/262144blocks

b8bfdf8e-c28f-11ed-bfe3-dac502259ad0.png


檢查并修復(fù)您的 Linux 磁盤后,在其各自的掛載點(diǎn)再次掛載分區(qū)。執(zhí)行以下命令用來掛載 /etc/fstab 配置文件中列出的所有磁盤分區(qū)。

[root@localhost~]#mount-a

b8c983cc-c28f-11ed-bfe3-dac502259ad0.png

在 Linux 啟動(dòng)時(shí)啟用 Ext4 磁盤分區(qū)掃描

在系統(tǒng)啟動(dòng)時(shí)啟用磁盤檢查。你必須修改該磁盤分區(qū)的Mount Count參數(shù)。

[root@localhost~]#tune2fs-c1/dev/nvme0n1p1
tune2fs1.44.3(10-July-2018)
Settingmaximalmountcountto1

b8d9ab76-c28f-11ed-bfe3-dac502259ad0.png


重啟系統(tǒng)之后,fsck命令現(xiàn)在會(huì)在啟動(dòng)時(shí)檢查你的 Ext4 磁盤分區(qū)。

[root@localhost~]#reboot
重新啟動(dòng)后,獲取磁盤分區(qū)的Last Checked值,現(xiàn)在它會(huì)顯示 Linux 上次啟動(dòng)的時(shí)間。
[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked
Lastchecked:TueSep1411:08:112021

b8e3a3ec-c28f-11ed-bfe3-dac502259ad0.png


恢復(fù)Mount Count參數(shù)的默認(rèn)值,否則它會(huì)在每次系統(tǒng)啟動(dòng)時(shí)繼續(xù)執(zhí)行磁盤掃描。

[root@localhost~]#tune2fs-c-1/dev/nvme0n1p1
tune2fs1.44.3(10-July-2018)
Settingmaximalmountcountto-1

b8ece3c6-c28f-11ed-bfe3-dac502259ad0.png

什么是 XFS_REPAIR?

xfs_repair 實(shí)用程序具有高度可擴(kuò)展性,旨在有效修復(fù)具有許多 inode 且非常大的文件系統(tǒng)。與其他 Linux 文件系統(tǒng)不同,xfs_repair 不會(huì)在啟動(dòng)時(shí)運(yùn)行,即使 XFS 文件系統(tǒng)沒有完全卸載。如果發(fā)生不干凈的卸載,xfs_repair 只會(huì)在掛載時(shí)重放日志,確保文件系統(tǒng)一致。

掃描和修復(fù) XFS 類型的磁盤分區(qū)

XFS 類型的磁盤分區(qū)有自己的一組命令,與 Ext4 有點(diǎn)不同。在檢查其一致性之前,必須卸載 XFS 磁盤分區(qū)。

[root@localhost~]#umount/dev/sda1
我們有 xfs_repair 命令用于檢查和修復(fù)磁盤錯(cuò)誤。使用xfs_repair 命令的-n選項(xiàng)來檢查磁盤錯(cuò)誤。
[root@localhost~]#xfs_repair-n/dev/sda1
Phase1-findandverifysuperblock...
Phase2-usinginternallog
-zerolog...
-scanfilesystemfreespaceandinodemaps...
-foundrootinodechunk
Phase3-foreachAG...
-scan(butdon'tclear)agiunlinkedlists...
-processknowninodesandperforminodediscovery...
-agno=0
-agno=1
-agno=2
-agno=3
-processnewlydiscoveredinodes...
Phase4-checkforduplicateblocks...
-settingupduplicateextentlist...
-checkforinodesclaimingduplicateblocks...
-agno=0
-agno=1
-agno=2
-agno=3
Nomodifyflagset,skippingphase5
Phase6-checkinodeconnectivity...
-traversingfilesystem...
-traversalfinished...
-movingdisconnectedinodestolost+found...
Phase7-verifylinkcounts...
Nomodifyflagset,skippingfilesystemflushandexiting.

b9034760-c28f-11ed-bfe3-dac502259ad0.png


上述命令只執(zhí)行磁盤檢查,不嘗試修復(fù)任何錯(cuò)誤。現(xiàn)在,執(zhí)行不帶 -n 選項(xiàng)的 xfs_repair 命令,它將執(zhí)行 Linux 磁盤分區(qū)的掃描和修復(fù)。

[root@localhost~]#xfs_repair/dev/sda1
Phase1-findandverifysuperblock...
Phase2-usinginternallog
-zerolog...
-scanfilesystemfreespaceandinodemaps...
-foundrootinodechunk
Phase3-foreachAG...
-scanandclearagiunlinkedlists...
-processknowninodesandperforminodediscovery...
-agno=0
-agno=1
-agno=2
-agno=3
-processnewlydiscoveredinodes...
Phase4-checkforduplicateblocks...
-settingupduplicateextentlist...
-checkforinodesclaimingduplicateblocks...
-agno=0
-agno=1
-agno=2
-agno=3
Phase5-rebuildAGheadersandtrees...
-resetsuperblock...
Phase6-checkinodeconnectivity...
-resettingcontentsofrealtimebitmapandsummaryinodes
-traversingfilesystem...
-traversalfinished...
-movingdisconnectedinodestolost+found...
Phase7-verifyandcorrectlinkcounts...
done

b90ec2e8-c28f-11ed-bfe3-dac502259ad0.png


下面誠(chéng)信掛載分區(qū)

[root@localhost~]#mount/dev/sda1/data/

在 Linux 啟動(dòng)時(shí)啟用 XFS 磁盤分區(qū)掃描

在某些情況下,如果 Linux 操作系統(tǒng)正在使用磁盤分區(qū),則無法卸載磁盤分區(qū)。出于這個(gè)原因,您可能不得不將磁盤檢查推遲到下一次系統(tǒng)啟動(dòng)。

要使 xfs_repair 命令能夠在 Linux 啟動(dòng)時(shí)運(yùn)行,請(qǐng)?jiān)?GRUB 菜單內(nèi)核命令的末尾添加“fsck.mode=force fsck.repair=yes”。 查看系統(tǒng)日志以驗(yàn)證磁盤修復(fù)命令的執(zhí)行情況。

[root@localhost~]#journalctl|grepsystemd-fsck
要在啟動(dòng)時(shí)永久啟用磁盤檢查,您必須在 GRUB 配置文件中添加“fsck.mode=force fsck.repair=yes”。 下面編輯grub配置文件,找到GRUB_CMDLINE_LINUX參數(shù)并在行尾附加fsck.mode=force fsck.repair=yes。
[root@localhost~]#cat/etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed's,release.*$,,g'/etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=autoresume=/dev/mapper/cl-swaprd.lvm.lv=cl/rootrd.lvm.lv=cl/swapfsck.mode=forcefsck.repair=yes"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

b91cc9c4-c28f-11ed-bfe3-dac502259ad0.png


根據(jù)新參數(shù)重新生成 GRUB 菜單配置。

[root@localhost~]#grub2-mkconfig

b9240680-c28f-11ed-bfe3-dac502259ad0.png


然后重啟系統(tǒng):

#reboot

總 結(jié)

到目前為止已經(jīng)成功掃描和修復(fù)XFS、Ext4文件系統(tǒng)了。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • XfS
    XfS
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    8962
  • GRUB
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6957
  • Linux操作系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    10984

原文標(biāo)題:如何掃描和修復(fù) Linux 磁盤錯(cuò)誤

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    全志Linux磁盤操作基礎(chǔ)命令

    /sdc2 df命令 顯示Linux上文件系統(tǒng)磁盤使用的占用情況。 [ubuntu@book:~]$ df//顯示文件系統(tǒng)的磁盤使用情況。 [ubuntu@book:~]$ df
    發(fā)表于 09-02 10:47

    [轉(zhuǎn)帖]使用CHKDSK命令修復(fù)損壞磁盤的方法與技巧

    按Enter繼續(xù)。 4、接下來變會(huì)出現(xiàn)命令提示符。 鍵入以下命令 :chkdsk /p, 然后按ENTER鍵執(zhí)行。 5、現(xiàn)在您的系統(tǒng)將開始測(cè)試的磁盤上的錯(cuò)誤。 如果您收到一條消
    發(fā)表于 11-12 14:55

    因硬盤錯(cuò)誤導(dǎo)致CPU占用100%故障一則

    的參數(shù)“/r”,代表修復(fù)磁盤上的錯(cuò)誤和查找不正確的扇區(qū)并恢復(fù)可讀信息。在命令提示符狀態(tài)下,對(duì)于自己不太清楚的命令,可以在
    發(fā)表于 03-16 10:13

    DOS命令修復(fù)U盤文件錯(cuò)誤

    Chkdsk命令是在DOS下用于修復(fù)文件系統(tǒng)錯(cuò)誤的關(guān)鍵命令。U盤的文件系統(tǒng)錯(cuò)誤會(huì)對(duì)我們的數(shù)據(jù)安全造成危害。
    發(fā)表于 01-17 15:08 ?9084次閱讀

    Linux如何使用XFS?

    XFS文件系統(tǒng)采用優(yōu)化算法,日志記錄對(duì)整體文件操作影響非常小。XFS查詢與分配存儲(chǔ)空間非??臁?b class='flag-5'>xfs文件系統(tǒng)能連續(xù)提供快速的反應(yīng)時(shí)間。筆者曾經(jīng)對(duì)XFS、JFS、Ext3、ReiserF
    的頭像 發(fā)表于 07-26 16:41 ?6.2w次閱讀

    Linux系統(tǒng)管理命令整理及使用方法介紹

    linux命令是對(duì)Linux系統(tǒng)進(jìn)行管理的命令。對(duì)于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤
    的頭像 發(fā)表于 09-23 14:55 ?6741次閱讀

    電瓶修復(fù)電路圖,Battery repair device circuit diagram

    電瓶修復(fù)電路圖,Battery repair device circuit diagram 關(guān)鍵字:電瓶修復(fù)電路,NE555,
    的頭像 發(fā)表于 09-20 20:13 ?1710次閱讀

    Linux環(huán)境下如何使用XFS文件系統(tǒng)

    XfS文件系統(tǒng)是SGI開發(fā)的高級(jí)日志文件系統(tǒng),XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Linux系統(tǒng)中。在linux環(huán)境下。目前版本可用的最新
    發(fā)表于 04-27 19:18 ?1062次閱讀

    如何修復(fù)Eclipse Fit Clip上的磁盤錯(cuò)誤彈出窗口

     單擊“擦除”??赡苄枰欢螘r(shí)間,具體取決于播放器上的文件數(shù)量。等待直到完成。然后轉(zhuǎn)到桌面并彈出磁盤。
    的頭像 發(fā)表于 10-24 14:38 ?1817次閱讀

    Linux操作必備150個(gè)命令

    Linux 命令是對(duì) Linux 系統(tǒng)進(jìn)行管理的命令。對(duì)于 Linux 系統(tǒng)來說,無論是中央處理器、內(nèi)存、
    發(fā)表于 11-12 09:19 ?407次閱讀

    fsck命令用于處理可能損壞的文件系統(tǒng)

    雖然 fsck 命令接受設(shè)備名稱(比如 /dev/sda)作為參數(shù),但是你可以選擇輸入 UUID,以免將已安裝的和卸載的設(shè)備混淆。UUID是分配給設(shè)備的固定值,不會(huì)受這些系統(tǒng)更改的影響。
    的頭像 發(fā)表于 11-15 17:44 ?4644次閱讀

    linux系統(tǒng)磁盤管理及分析必備命令

    今天浩道跟大家分享linux磁盤管理及分析相關(guān)的硬核干貨,通過這些指令,可以讓你高效運(yùn)維!
    的頭像 發(fā)表于 02-09 09:54 ?633次閱讀

    常用Linux命令介紹

    linux命令是對(duì)Linux系統(tǒng)進(jìn)行管理的命令。對(duì)于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤
    的頭像 發(fā)表于 02-09 14:31 ?982次閱讀

    常用Linux命令要記牢!

    linux命令是對(duì)Linux系統(tǒng)進(jìn)行管理的命令。對(duì)于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤
    的頭像 發(fā)表于 08-07 15:31 ?563次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—xfs文件系統(tǒng)服務(wù)器數(shù)據(jù)恢復(fù)案例

    某公司一臺(tái)服務(wù)器,連接了一臺(tái)存儲(chǔ)。該服務(wù)器安裝linux操作系統(tǒng),文件系統(tǒng)為xfs。 在運(yùn)行過程中該服務(wù)器出現(xiàn)故障,管理員使用xfs_repair工具試圖對(duì)xfs文件系統(tǒng)進(jìn)行
    的頭像 發(fā)表于 08-19 10:49 ?143次閱讀