btrfs 디스크의 dd 클론을 마운트하는 방법은 무엇입니까?

btrfs 디스크의 dd 클론을 마운트하는 방법은 무엇입니까?

btrfs 및 dd를 사용하여 하드 드라이브를 복제했습니다. 이제 "원본" 드라이브를 마운트하는 동시에 복제된 드라이브를 마운트하고 싶습니다.

mount /dev/sdc /mnt/tmp
mount: /mnt/tmp: mount(2) system call failed: File exists.

A에는 btrfsck /dev/sdc오류가 표시되지 않습니다. 이 디스크를 어떻게 마운트할 수 있나요?

답변1

btrfs는 다중 장치(지원) 파일 시스템이므로 특정 파일 시스템에 속하는 장치를 추적할 수 있는 방법이 필요합니다. 실제로 여러 장치가 있는 경우 하나만 마운트하면 btrfs가 다른 장치를 자체적으로 찾습니다.

이는 파일 시스템의 UUID를 통해 수행되며, 이는 물론 이제 복사본에서도 동일합니다. btrfs는 해당 UUID를 여러 번 저장합니다. btrfstune -u /dev/sdc모두 변경해야 합니다(그러나 많은 메타데이터를 다시 작성해야 하기 때문에 시간이 걸릴 수 있습니다). 비교적 새로운 커널(2018년 12월 패치)은 btrfstune -m /dev/sdc모든 메타데이터를 다시 작성하지 않고도 작동해야 합니다. 일부 사람들은 이러한 옵션이 손상되었다고 보고했지만 귀하는 이미 복사본을 작업 중입니다.

중요한 경고!

읽어주세요btrfs 트랩,특히블록 수준 복사본에 대한 경고. 파일 시스템 블록 장치 중 하나의 복사본이 두 개 있으면 커널이 잘못된 복사본을 사용하게 됩니다(왜냐하면 파일 시스템 UUID가 동일하고 아는 한 동일한 장치이기 때문입니다).파괴하다 둘 다안에.원본을 포함합니다.(장치 A1과 B1이 포함된 이중 장치 파일 시스템이 있는 경우 어떻게 되는지 상상해 보십시오. A1을 A2에 복사합니다. 이제 커널이 파일 시스템을 마운트하면 예상대로 A1과 B1을 사용할 수 있습니다. 또는 A2와 B1을 사용하여 스위치를 켤 수도 있습니다. 마운트할 때마다 파일 시스템의 절반이 마지막 마운트 이후 모든 쓰기를 "잃을" 수 있음을 의미합니다.

다행히도 커널은 복제본을 마운트하려는 시도를 알아차리고 차단합니다.

무엇을 해야할지

어느:

  • 이미지를 파일에 복사합니다(그리고 루프백 장치를 설정하지 마세요). 다른 컴퓨터(루프백 장치 포함) 또는 가상 머신에서 복사본 작업을 수행합니다. 파일 시스템 UUID가 변경되었는지 확인하기 전에 하나의 커널에 두 개의 복사본이 표시되지 않도록 하십시오.
  • 등을 사용하여 tarbtrfs-send파일 시스템에 대한 복사본을 만들고 다른 파일 시스템 UUID를 사용합니다.

관련 정보