분실+발견에서 시스템 파일을 자동으로 복구하는 방법이 있나요?

분실+발견에서 시스템 파일을 자동으로 복구하는 방법이 있나요?

Debian Buster를 실행하고 있었는데 루트 파티션의 파일 시스템이 갑자기 손상되었습니다. 나는 평범한 일을 하지 않고 단지 기본적으로 인터넷 서핑을 하다가 어느 시점에서 루트 파티션이 읽기 전용으로 다시 마운트되었음을 ​​발견했습니다.

다시 시작해 보았지만 grub은 일반적인 메뉴 대신 미니멀리스트 셸로 부팅되었습니다. 그래서 Debian USB에서 복구 모드로 부팅하고 루트 및 efi 파티션을 fscked하여 많은 오류를 발견했지만 모두 성공적으로 수정된 것 같았습니다. Badblocks는 어떤 문제도 발견하지 못했고 드라이브는 물리적으로 괜찮아 보였습니다(이상한 소음이나 그와 유사한 것은 없습니다).

Grub이 다시 작동하지만 일반 또는 복구 모드에서 데비안을 부팅하려고 하면 커널 패닉이 발생하고 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 '에서 설치된 모든 파일을 확인하고 변경되거나 누락된 파일을 보고해야 합니다. .dpkggrep섹션에서는 목록에서 모든 구성 파일을 제외합니다. 이것은 이 상황에 대해 제가 생각할 수 있는 가장 간단하고 유용한 도구입니다. 혹시 이 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.

관련 정보