有没有办法从lost+found自动恢复系统文件

有没有办法从lost+found自动恢复系统文件

我正在运行 Debian Buster,根分区的文件系统突然损坏了。我没有做任何不寻常的事情,只是基本上上网,在某些时候我发现根分区被重新安装为只读。

我尝试重新启动,但 grub 启动时进入的是极简 shell,而不是通常的菜单。因此,我从 Debian usb 启动到救援模式,并对根分区和 efi 分区进行 fsck,发现了很多错误,但似乎都已成功修复。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

答案1

在进行任何重大恢复工作之前,您应该检查磁盘设备的 SMART 运行状况,并备份所有关键数据。您的磁盘已被证明并不完全可靠,因此请首先确保您的数据安全。如果 SMART 数据表明磁盘状况不佳,最好换一个新磁盘,而不是试图延长旧磁盘的痛苦。

smartctl检查磁盘健康状况的一个好命令/dev/sda是:

smartctl -HA -f brief -l xerror,error /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 $(dpkg -S $(debsums -c) | cut -d : -f 1 | sort -u)

将自动重新安装任何具有更改的非配置文件的软件包。使用apt-get install --reinstall重新安装某些文件已损坏的任何软件包比尝试从lost+found.

相关内容