실수로 모든 사용자 디렉터리 파일을 삭제했습니다. GitHub에 업로드하지 않은 중요한 파일과 스크립트가 많이 있습니다. 나는 교훈을 얻었고, 백업해야 합니다. 저는 Linux 생태계에 비교적 새로운 사람입니다. 어떤 도움이라도 대단히 감사하겠습니다. 나는 붙어있다. 16시간 – 뭔가 다른 것을 시도해 보세요.
image.dd
데이터 복구 패키지를 통해 파일을 생성했습니다 .testdisk
문제: 이 image.dd
btrfs 파일을 마운트할 수 없습니다.
모든 단계:
$ sudo file /home/image.dd
image.dd: BTRFS Filesystem sectorsize 4096, nodesize 16384, leafsize 16384, UUID=f3c3509c-fbe0-41d7-9af6-df1b3de1139c, 5435559936/103767080960 bytes used, 1 devices
image.dd
파일 크기:
$ du -h /home/image.dd
90G /home/image.dd
참고: 남은 공간이 부족합니다. 예를 들어 1GB 정도 남았습니다.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 232.9G 0 disk
|-sda1 8:1 0 1G 0 part /boot
|-sda2 8:2 0 96.7G 0 part
| `-cryptlvm 254:0 0 96.6G 0 crypt /
|-sda3 8:3 0 68.4G 0 part /mnt/3
`-sda4 8:4 0 66.9G 0 part /mnt/4
sr0 11:0 1 1024M 0 rom
블록 루프 장치를 설정하려면 Lostup을 사용하십시오.
$ sudo losetup -f /home/image.dd
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 89G 0 loop
sda 8:0 0 232.9G 0 disk
|-sda1 8:1 0 1G 0 part /boot
|-sda2 8:2 0 96.7G 0 part
| `-cryptlvm 254:0 0 96.6G 0 crypt /
|-sda3 8:3 0 68.4G 0 part /mnt/3
`-sda4 8:4 0 66.9G 0 part /mnt/4
sr0 11:0 1 1024M 0 rom
콘텐츠를 평가하고 수정하기 위해 블록 장치를 설치했지만 오류가 발생했습니다.
$ sudo mount /dev/loop0 /mnt/backup
mount: /mnt/backup: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
dmesg(1) may have more information after failed mount system call.
참고: 블록 장치를 만들기 위해 kpartx도 시도했지만 동일한 마사지를 받았습니다.
여기서 오류가 발생합니다.
$ sudo btrfs check /dev/loop0
[1/7] checking root items
[2/7] checking extents
ERROR: block device size is smaller than total_bytes in device item, has 95611650048 expect >= 103767080960
ERROR: errors found in extent allocation tree or chunk allocation
[3/7] checking free space tree
[4/7] checking fs roots
[5/7] checking only csums items (without verifying data)
[6/7] checking root refs
[7/7] checking quota groups skipped (not enabled on this FS)
Opening filesystem to check...
Checking filesystem on /dev/loop0
UUID: f3c3509c-fbe0-41d7-9af6-df1b3de1139c
found 5435559936 bytes used, error(s) found
total csum bytes: 5179888
total tree bytes: 127172608
total fs tree bytes: 113983488
total extent tree bytes: 6193152
btree space waste bytes: 21944841
file data blocks allocated: 5312581632
referenced 5307400192
나는 이것을 시도한다:
$ sudo mount -t btrfs -r -o /dev/loop0 /mnt/backup
mount: /mnt/backup: can't find in /etc/fstab.
$ cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/creepy
UUID=4ecde757-fcb5-479c-bdea-a5d2cfa3d072 / btrfs rw,relatime,space_cache=v2,subvolid=5,subvol=/ 0 0
# /dev/sda1
UUID=4C90-DE53 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2
이 명령을 실행하면:
$ sudo testdisk /log /dev/loop0
다음은 몇 가지 추가 세부정보와 함께 testdisk에 의해 생성된 로그 파일입니다.
$ cat testdisk.log
Failed to set locale, using default 'C'.
Mon Jul 31 04:42:45 2023
Command line: TestDisk /log /dev/loop0
TestDisk 7.1, Data Recovery Utility, July 2019
Christophe GRENIER <[email protected]>
https://www.cgsecurity.org
OS: Linux, kernel 6.4.3-artix1-2 (#1 SMP PREEMPT_DYNAMIC Mon, 17 Jul 2023 15:17:04 +0000) x86_64
Compiler: GCC 12.2
ext2fs lib: 1.47.0, ntfs lib: libntfs-3g, reiserfs lib: none, ewf lib: none, curses lib: ncurses 6.4
Hard disk list
Disk /dev/loop0 - 95 GB / 89 GiB - 186741504 sectors, sector size=512
Partition table type (auto): None
Disk /dev/loop0 - 95 GB / 89 GiB
Partition table type: None
Interface Advanced
P btrfs 0 186741503 186741504
btrfs blocksize=4096, 95 GB / 89 GiB
Change partition type:
P btrfs 0 186741503 186741504
btrfs blocksize=4096, 95 GB / 89 GiB
Interface Advanced
P btrfs 0 186741503 186741504
btrfs blocksize=4096, 95 GB / 89 GiB
New options :
Dump : No
Align partition: Yes
Expert mode : No
TestDisk exited normally.
```