다른 컴퓨터에서 bcache 디스크에 있는 파일 가져오기

다른 컴퓨터에서 bcache 디스크에 있는 파일 가져오기

더 이상 소유하지 않는 이전 설치에서 사용되었던 bcache 위에 btrfs 파일 시스템이 있는 디스크가 있습니다(실수로 손상됨). 드라이브를 연결하면 /dev/bcache0이 표시되지 않고 강제 /dev/{dev}로 에코하는 것도 허용되지 않습니다. /sys/fs/bcache/registerbcache 모듈이 로드되어 있고 이를 rmmod하려고 하면 "모듈 사용 중"이라는 메시지가 나타납니다. lsblk -f드라이브에 bcache가 있다고 하는데 아래의 btrfs 파일 시스템에 매핑하여 데이터를 복구할 수 없습니다.

중요하지 않다고 생각하지만 이것은 모두 키 파일이 있고 문제 없이 볼륨에 액세스할 수 있는 dmcrypt 암호화 볼륨 위에 있습니다.

System information Distro: Arch Kernel: 4.12.5-1-ARCH x86_64 bcache Version: 1.0.8-1

답변1

루프 장치에 bcache 파티션을 마운트합니다. sudo losetup -f /dev/[DEVICE] -o 8192bcache 데이터는 1KiB 이하일 수 있지만 오프셋은 디스크의 섹터 크기(이 경우 8KiB)에 맞춰 정렬되어야 합니다. 이것은 훌륭하게 작동하며 밤새 파일을 안정적인 저장소 풀로 전송했습니다.

다른 사람이 이 문제에 직면한 경우 (smartmontools 패키지 필요)를 사용하여 디스크의 섹터 크기를 가져오고 런타임 루프 장치가 나타날 sudo smartctl -a /dev/[DEVICE]때까지 이전에 언급한 losstup 명령에 대한 오프셋으로 해당 크기의 증가분을 사용하십시오. lsblk -f시스템이 존재합니다.

답변2

PSpacer의 답변 확장여기

D) BCache 없이 데이터를 복원합니다.

커널에서 bcache를 사용할 수 없는 경우 백업 장치의 파일 시스템은 8KiB 오프셋에서 계속 사용할 수 있습니다. 따라서 --offset 8K로 생성된 장치를 지원하는 loopdev 또는 처음 사용할 때 --data-offset에 대해 정의된 값에 의해 수행됩니다 make-bcache.

예를 들어: losetup -o 8192 /dev/loop0 /dev/your_bcache_backing_dev

~에서https://www.kernel.org/doc/Documentation/bcache.txt.

루프백 장치 만들기

루프백 장치를 생성하여sudo losetup -o 8192 /dev/loop0 /dev/[DEVICE]

장비를 설치하다

그런 다음 다음을 통해 설치할 수 있습니다.sudo mount /dev/loop0 -o loop /mnt/[LOCATION]

/mnt/[LOCATION]/그 후에는 파티션 으로 이동하여 찾아볼 수 있습니다 .

관련 정보