我正在运行 Debian Buster,但根分区的文件系统不知从哪里损坏了。我没有做任何不寻常的事情,基本上只是上网,在某些时候我发现根分区被重新安装为只读。
我尝试重新启动,但 grub 启动到一个最小的 shell 而不是它通常的菜单。所以我从我的 Debian USB 记忆棒启动进入救援模式,然后 fsck 根和 efi 分区,发现了很多错误,但似乎都已成功修复。Badblocks 没有发现任何问题,而且硬盘驱动器看起来还不错(没有奇怪的噪音或类似的东西)。
Grub 又可以工作了,但是当我尝试以正常或恢复模式启动 Debian 时,它内核崩溃,说它找不到 libseccomp.so.2。然后我记得如果 fsck 无法确定文件的位置,它会将文件放入 lost+found 中。
那里有很多文件。有没有办法自动从那里恢复所有系统文件?还是我应该格式化并重新安装?
编辑:SMART检查的结果
# smartctl -HA -f brief -l xerror,error /dev/sda
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-4.19.34-1-lts] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
1 Raw_Read_Error_Rate PO-R-- 100 100 050 - 0
2 Throughput_Performance P-S--- 100 100 050 - 0
3 Spin_Up_Time POS--K 100 100 001 - 1712
4 Start_Stop_Count -O--CK 100 100 000 - 4003
5 Reallocated_Sector_Ct PO--CK 100 100 050 - 0
7 Seek_Error_Rate PO-R-- 100 100 050 - 0
8 Seek_Time_Performance P-S--- 100 100 050 - 0
9 Power_On_Hours -O--CK 042 042 000 - 23297
10 Spin_Retry_Count PO--CK 179 100 030 - 0
12 Power_Cycle_Count -O--CK 100 100 000 - 3471
191 G-Sense_Error_Rate -O--CK 100 100 000 - 3116
192 Power-Off_Retract_Count -O--CK 100 100 000 - 73
193 Load_Cycle_Count -O--CK 061 061 000 - 392741
194 Temperature_Celsius -O---K 100 100 000 - 36 (Min/Max 8/48)
196 Reallocated_Event_Count -O--CK 100 100 000 - 0
197 Current_Pending_Sector -O--CK 100 100 000 - 0
198 Offline_Uncorrectable ----CK 100 100 000 - 0
199 UDMA_CRC_Error_Count -O--CK 200 200 000 - 0
220 Disk_Shift -O---- 100 100 000 - 0
222 Loaded_Hours -O--CK 052 052 000 - 19435
223 Load_Retry_Count -O--CK 100 100 000 - 0
224 Load_Friction -O---K 100 100 000 - 0
226 Load-in_Time -OS--K 100 100 000 - 274
240 Head_Flying_Hours P----- 100 100 001 - 0
||||||_ K auto-keep
|||||__ C event count
||||___ R error rate
|||____ S speed/performance
||_____ O updated online
|______ P prefailure warning
SMART Extended Comprehensive Error Log Version: 1 (64 sectors)
No Errors Logged
在进行任何重大恢复工作之前,您应该检查磁盘设备的 SMART 健康状态,并备份所有关键数据。您的磁盘已被证明不完全可靠,因此请首先确保您的数据安全。如果 SMART 数据表明磁盘不太健康,最好换一个新的,而不是试图延长旧磁盘的痛苦。
smartctl
检查磁盘健康状况的一个好命令/dev/sda
是:libseccomp.so.2
应该在/usr/lib/x86_64-linux-gnu/
(或等效于不同的硬件架构)。如果该目录丢失了,那将是一个相当大的混乱,因为其中有很多库文件。幸运的是,它可能就像告诉包管理工具验证任何lib*
包然后重新安装任何缺少文件的包一样简单——至少在理论上是这样。由于您拥有 Debian,
dpkg -V | grep -v ' c '
因此应检查系统上从.dpkg
软件包安装的所有文件,并报告任何已更改或丢失的文件。该grep
部件不包括列表中的任何配置文件。这是我能想到的这种情况下最有用的工具;如果您碰巧已经debsums
安装或可以安装它,则debsums | grep -v 'OK$'
可以用于相同目的。如果您仍然碰巧有足够的未损坏库来允许此命令工作,
将自动重新安装任何更改了非配置文件的软件包。使用
apt-get install --reinstall
重新安装任何其某些文件已损坏的软件包比尝试将它们从lost+found
.