有沒有辦法從 lost+found 中自動恢復系統文件
我正在執行 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
是: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
.