
더 이상 소유하지 않는 이전 설치에서 사용되었던 bcache 위에 btrfs 파일 시스템이 있는 디스크가 있습니다(실수로 손상됨). 드라이브를 연결하면 /dev/bcache0이 표시되지 않고 강제 /dev/{dev}
로 에코하는 것도 허용되지 않습니다. /sys/fs/bcache/register
bcache 모듈이 로드되어 있고 이를 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 8192
bcache 데이터는 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]/
그 후에는 파티션 으로 이동하여 찾아볼 수 있습니다 .