FSCK报告文件系统仍有错误 – 我现在该怎么办?

总新手。 在飞行中学习一点关于fsck的知识,但到目前为止我发现的东西在应用它时似乎没有做太多。 这个提示的下一步是什么来修复启动时我遇到的错误?

fsck报告文件系统仍有错误 - 需要手动fsck

HDD和SSD的SMART信息

检查SMART信息。 根据此链接,使用磁盘别名gnome-disks很容易,

恶意软件损坏引导扇区后重新格式化硬盘驱动器 – 向下滚动到“可能磁盘硬件已损坏”

通过(1)处的按钮选择SMART,并在(2)处检查总体评估。

在此处输入图像描述

ext4文件系统上运行fsck

当我在ext4文件系统上使用fsck ,我从另一个驱动器启动并卸载文件系统。

 sudo e2fsck -f /dev/sdxn 

其中x是设备字母,n是分区号,在你的情况下是/dev/sda1根据截图。

有时,运行此命令两次会有所帮助。 有时文件系统损坏无法修复。

有时存在坏扇区(驱动器上的硬件缺陷)。 然后,您可以使用以下命令标记坏扇区(并使系统避免它们)

 sudo e2fsck -cfk /dev/sdxn 

请参阅手册

 man e2fsck 

有关更多详细信息,请参阅以下链接以获取有关修复文件系统的更多提示,

修复pendrive的分区表和文件系统

我担心你的硬盘有坏块或者它已经不存在了。 你看到这个消息: blk_update_request: I/O error, dev sda, sector 2048 ? 这意味着无法从物理设备读取该扇区。

您需要从LiveCD启动并检查您的驾驶:

 $ sudo smartctl -HA /dev/sda 

并检查SMART overall-health self-assessment test result: PASSEDRAW_VALUE字段中的Reallocated_Sector_Ct行应包含0

如果SMART自检已PASSED您可以尝试使用badblocks工具“重新映射”坏块:

 $ sudo badblocks -svo ~/msg.log /dev/sda 

然后运行fsck:

 $ sudo fsck -a /dev/sda1 

如果SMART自检FAILED ,则需要更换硬盘。

PS:您应该从LiveCD会话中执行所有这些步骤。 你必须将/dev/sda替换为你的驱动器。

更新[11.11.2017]:所以我检查了一个带有badblocksbadblocks ,我在我的syslog收到了这些消息:

 Nov 10 13:46:55 router kernel: [ 121.339691] ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 Nov 10 13:46:55 router kernel: [ 121.339702] ata2.01: BMDMA stat 0x64 Nov 10 13:46:55 router kernel: [ 121.339711] ata2.01: failed command: READ DMA Nov 10 13:46:55 router kernel: [ 121.339726] ata2.01: cmd c8/00:08:58:64:00/00:00:00:00:00/f0 tag 0 dma 4096 in Nov 10 13:46:55 router kernel: [ 121.339726] res 51/40:00:5b:64:00/00:00:00:00:00/f0 Emask 0x9 (media error) Nov 10 13:46:55 router kernel: [ 121.339733] ata2.01: status: { DRDY ERR } Nov 10 13:46:55 router kernel: [ 121.339738] ata2.01: error: { UNC } Nov 10 13:46:55 router kernel: [ 121.364282] ata2.00: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380287] ata2.01: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380327] sd 1:0:1:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE Nov 10 13:46:55 router kernel: [ 121.380337] sd 1:0:1:0: [sdb] tag#0 Sense Key : Medium Error [current] [descriptor] Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed Nov 10 13:46:55 router kernel: [ 121.380355] sd 1:0:1:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 64 58 00 00 08 00 Nov 10 13:46:55 router kernel: [ 121.380361] blk_update_request: I/O error, dev sdb, sector 25691 Nov 10 13:46:55 router kernel: [ 121.380369] Buffer I/O error on dev sdb, logical block 3211, async page read Nov 10 13:46:55 router kernel: [ 121.380410] ata2: EH complete 

因此,有关I / O错误的所有消息都来自内核。 我找到的最有趣的事情是这一行:

 Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed 

据我所知,它是来自磁盘固件的解码消息。 似乎固件发现读取错误并试图重新分配扇区并失败。 因此,在我们的例子中, badblocks除了读取所有扇区之外什么都不做,我们可以用dd if=/dev/sdX of=/dev/null替换它。

而现在我对Sudodus完全sudodus 。 最合适的解决方案是:

 sudo e2fsck -cfk /dev/sdxn