紛失+発見からシステムファイルを自動的に回復する方法はありますか?

紛失+発見からシステムファイルを自動的に回復する方法はありますか?

Debian Busterを実行していましたが、ルートパーティションのファイルシステムが突然破損しています。私は普通のことをせずに基本的にインターネットサーフィンをしていたが、ある時点でルートパーティションが読み取り専用で再マウントされたことを発見しました。

再起動してみましたが、grubは通常のメニューの代わりにミニマリストシェルで起動しました。だからDebian USBでリカバリモードで起動し、rootとefiパーティションをfsckedして多くのエラーを見つけましたが、すべて正常に修正されたようです。 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

関連情報