什么是FSCK?
fsck(文件系統一致性檢查)是用于檢查Linux操作系統文件系統一致性的工具。
列出 Linux 磁盤分區和類型:
首先,需要確定 Linux 系統的磁盤分區、它們各自的文件系統以及掛載點。 下面使用lsblk命令列出磁盤明、文件系統類型、掛載點:
[root@localhost~]#lsblk-oNAME,FSTYPE,MOUNTPOINT NAMEFSTYPEMOUNTPOINT sda sdb sdc sdd sr0iso9660 nvme0n1 ├─nvme0n1p1ext4/boot └─nvme0n1p2LVM2_member ├─cl-rootxfs/ └─cl-swapswap[SWAP]
獲取 Linux 磁盤的上次掃描時間
你可以使用下命令找到 Ext2,Ext3,Ext4 類型分區的最后一次掃描時間。
[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked Lastchecked:WedSep115:42:112021
掃描和修復 Ext4 類型的磁盤分區
掃描 Linux 磁盤分區,可以使用fsck(文件系統一致性檢查)命令。但是在檢查和修復它之前,需要卸載該分區。下面實例中,我們卸載的是/boot分區。
[root@localhost~]#umount/dev/nvme0n1p1卸載成功后,使用fsck.ext4檢查/dev/nvme0n1p1分區
[root@localhost~]#fsck.ext4/dev/nvme0n1p1 e2fsck1.44.3(10-July-2018) /dev/nvme0n1p1:clean,311/65536files,55546/262144blocks
檢查并修復您的 Linux 磁盤后,在其各自的掛載點再次掛載分區。執行以下命令用來掛載 /etc/fstab 配置文件中列出的所有磁盤分區。
[root@localhost~]#mount-a
在 Linux 啟動時啟用 Ext4 磁盤分區掃描
在系統啟動時啟用磁盤檢查。你必須修改該磁盤分區的Mount Count參數。
[root@localhost~]#tune2fs-c1/dev/nvme0n1p1 tune2fs1.44.3(10-July-2018) Settingmaximalmountcountto1
重啟系統之后,fsck命令現在會在啟動時檢查你的 Ext4 磁盤分區。
[root@localhost~]#reboot重新啟動后,獲取磁盤分區的Last Checked值,現在它會顯示 Linux 上次啟動的時間。
[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked Lastchecked:TueSep1411:08:112021
恢復Mount Count參數的默認值,否則它會在每次系統啟動時繼續執行磁盤掃描。
[root@localhost~]#tune2fs-c-1/dev/nvme0n1p1 tune2fs1.44.3(10-July-2018) Settingmaximalmountcountto-1
什么是 XFS_REPAIR?
xfs_repair 實用程序具有高度可擴展性,旨在有效修復具有許多 inode 且非常大的文件系統。與其他 Linux 文件系統不同,xfs_repair 不會在啟動時運行,即使 XFS 文件系統沒有完全卸載。如果發生不干凈的卸載,xfs_repair 只會在掛載時重放日志,確保文件系統一致。
掃描和修復 XFS 類型的磁盤分區
XFS 類型的磁盤分區有自己的一組命令,與 Ext4 有點不同。在檢查其一致性之前,必須卸載 XFS 磁盤分區。
[root@localhost~]#umount/dev/sda1我們有 xfs_repair 命令用于檢查和修復磁盤錯誤。使用xfs_repair 命令的-n選項來檢查磁盤錯誤。
[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.
上述命令只執行磁盤檢查,不嘗試修復任何錯誤?,F在,執行不帶 -n 選項的 xfs_repair 命令,它將執行 Linux 磁盤分區的掃描和修復。
[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
下面誠信掛載分區
[root@localhost~]#mount/dev/sda1/data/
在 Linux 啟動時啟用 XFS 磁盤分區掃描
在某些情況下,如果 Linux 操作系統正在使用磁盤分區,則無法卸載磁盤分區。出于這個原因,您可能不得不將磁盤檢查推遲到下一次系統啟動。
要使 xfs_repair 命令能夠在 Linux 啟動時運行,請在 GRUB 菜單內核命令的末尾添加“fsck.mode=force fsck.repair=yes”。 查看系統日志以驗證磁盤修復命令的執行情況。
[root@localhost~]#journalctl|grepsystemd-fsck要在啟動時永久啟用磁盤檢查,您必須在 GRUB 配置文件中添加“fsck.mode=force fsck.repair=yes”。 下面編輯grub配置文件,找到GRUB_CMDLINE_LINUX參數并在行尾附加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
根據新參數重新生成 GRUB 菜單配置。
[root@localhost~]#grub2-mkconfig
然后重啟系統:
#reboot
總 結
到目前為止已經成功掃描和修復XFS、Ext4文件系統了。
審核編輯:劉清
-
XfS
+關注
關注
0文章
9瀏覽量
8998 -
GRUB
+關注
關注
0文章
6瀏覽量
6986 -
Linux操作系統
+關注
關注
0文章
54瀏覽量
11095
原文標題:如何掃描和修復 Linux 磁盤錯誤
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論