ext4magic 세그폴트

ext4magic 세그폴트

실수로 삭제한 많은 파일이 포함된 디렉터리를 복구하려고 합니다. 아이러니하게도 이것은 백업을 설정하려고 할 때의 큰 실수였습니다! 나는 지시를 따르고 있다여기:

ext4magic 명령이 히스토그램을 성공적으로 생성했습니다.

[root] /mnt/reos-storage-2 $ ext4magic /dev/sda2 -H -a $(date -d "-70minutes" +%s)
Filesystem in use: /dev/sda2

|-----------c_time  Histogram-----------------  after  --------------------  Wed Jun 23 10:42:35 2021
1624441775 :        0 |                                                  |   Wed Jun 23 10:49:35 2021
1624442195 :       43 |**************************************************|   Wed Jun 23 10:56:35 2021
1624442615 :        0 |                                                  |   Wed Jun 23 11:03:35 2021
1624443035 :        1 |**                                                |   Wed Jun 23 11:10:35 2021
1624443455 :        0 |                                                  |   Wed Jun 23 11:17:35 2021
1624443875 :        3 |****                                              |   Wed Jun 23 11:24:35 2021
1624444295 :        0 |                                                  |   Wed Jun 23 11:31:35 2021
1624444715 :        0 |                                                  |   Wed Jun 23 11:38:35 2021
1624445135 :        0 |                                                  |   Wed Jun 23 11:45:35 2021
1624445555 :        0 |                                                  |   Wed Jun 23 11:52:35 2021


|-----------d_time  Histogram-----------------  after  --------------------  Wed Jun 23 10:42:35 2021
1624441775 :        0 |                                                  |   Wed Jun 23 10:49:35 2021
1624442195 :        0 |                                                  |   Wed Jun 23 10:56:35 2021
1624442615 :        1 |*                                                 |   Wed Jun 23 11:03:35 2021
1624443035 :     9380 |**************************************************|   Wed Jun 23 11:10:35 2021
1624443455 :        0 |                                                  |   Wed Jun 23 11:17:35 2021
1624443875 :        0 |                                                  |   Wed Jun 23 11:24:35 2021
1624444295 :        1 |*                                                 |   Wed Jun 23 11:31:35 2021
1624444715 :        0 |                                                  |   Wed Jun 23 11:38:35 2021
1624445135 :        0 |                                                  |   Wed Jun 23 11:45:35 2021
1624445555 :        0 |                                                  |   Wed Jun 23 11:52:35 2021


|-----------cr_time Histogram-----------------  after  --------------------  Wed Jun 23 10:42:35 2021
1624441775 :        0 |                                                  |   Wed Jun 23 10:49:35 2021
1624442195 :       33 |**************************************************|   Wed Jun 23 10:56:35 2021
1624442615 :        1 |**                                                |   Wed Jun 23 11:03:35 2021
1624443035 :        0 |                                                  |   Wed Jun 23 11:10:35 2021
1624443455 :        0 |                                                  |   Wed Jun 23 11:17:35 2021
1624443875 :        0 |                                                  |   Wed Jun 23 11:24:35 2021
1624444295 :        0 |                                                  |   Wed Jun 23 11:31:35 2021
1624444715 :        0 |                                                  |   Wed Jun 23 11:38:35 2021
1624445135 :        0 |                                                  |   Wed Jun 23 11:45:35 2021
1624445555 :        0 |                                                  |   Wed Jun 23 11:52:35 2021
ext4magic : EXIT_SUCCESS

그러나 추가 명령은 기본적으로 segfault로 끝납니다.

[root] /mnt/reos-storage-2 $ ext4magic /dev/sda2 -a 1624442615 -f r sftp_data -l
Filesystem in use: /dev/sda2

Using  internal Journal at Inode 8
Activ Time after  : Wed Jun 23 11:03:35 2021
Activ Time before : Wed Jun 23 11:56:09 2021
Segmentation fault

내가 할 수 있는게 있습니까?


더 많은 배경

배경으로 대략 다음 단계를 통해 이를 달성했습니다.

열심히 인터넷 검색을 한 후 최대한 빨리 파일 시스템을 마운트 해제했습니다. 처음에 나는 이것을 사용하여 이것을했습니다

umount -l /mnt/reos-storage-1

-lumount는 아직 사용 중인 파티션을 마운트 해제할 수 없기 때문에 이 옵션을 사용합니다 . 다음으로 내가 그랬어

fuser -cuk /mnt/reos-storage-1/

다음으로 나는 달렸다

fsck /dev/sda2

실제로 ext4magic은 이를 권장하지 않습니다.

extundelete다음으로 실패한 파일을 복구해 보았습니다.

[root] /mnt/reos-storage-2 $ extundelete --restore-directory /mnt/reos-storage-1/sftp_data /dev/sda2
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 29027 groups loaded.
Loading journal descriptors ... 0 descriptors loaded.
extundelete: Extent block checksum does not match extent block while finding inode for mnt
extundelete: Extent block checksum does not match extent block while finding inode for mnt
Failed to restore file /mnt/reos-storage-1/sftp_data
Could not find correct inode number past inode 2.
Try altering the filename to one of the entries listed below.
File name                                       | Inode number | Deleted status
extundelete: Operation not permitted while restoring directory.
extundelete: Operation not permitted when trying to examine filesystem
[root] /mnt/reos-storage-2 $ man umount
[root] /mnt/reos-storage-2 $ extundelete --restore-all /dev/sda2
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 29027 groups loaded.
Loading journal descriptors ... 0 descriptors loaded.
Searching for recoverable inodes in directory / ... 
0 recoverable inodes found.
Looking through the directory structure for deleted files ... 
0 recoverable inodes still lost.
No files were undeleted.

그런 다음 apt를 사용하여 ext4magic을 설치하고 지침에 따라 다음 명령을 실행하여 로그를 백업했습니다.

debugfs -R "dump <8> /tmp/sda2.journal" /dev/sda2

관련 정보