왜 `/dev/dm-39` 대신 `/dev/dm-8`을 마운트합니까?

왜 `/dev/dm-39` 대신 `/dev/dm-8`을 마운트합니까?

Linux 커널 시스템을 사용하는 Debian 10 GNU에서 다음 줄은 예상대로 마운트되지 않지만 /dev/dm-8(IMHO 이것은 잘못된 것입니다) /dev/dm-37:

mount /dev/dm-8 /mnt

저는 지금 이 문제의 원인 및/또는 추가 조사 방법에 대해 정말 혼란스럽습니다. 이 문제는 Linux 커널의 블록 장치에 있는 파일 시스템과 관련된 UUID 내에 있다고 가정합니다.

배경 정보와자신의 연구:

  1. 기본 정보:

    root@ada:/# 마운트
    /usr/bin/마운트
    root@ada:/# 파일/usr/bin/mount
    /usr/bin/mount: setuid ELF 64비트 LSB 공유 객체, x86-64, 버전 1(SYSV), 동적 링크,interpreter/lib64/ld-linux-x86-64.so.2, GNd용
    루트@ada:/# uname -a
    Linux ada 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
  2. 논리 볼륨 관리자를 사용하십시오. 고유한 볼륨 그룹 이름은 입니다 vg.

  3. 블록 장치에 연결된 두 개의 볼륨에는 하나의 가 포함되어 btrfs있으며 스냅샷에서 생성되었으므로 동일한 fsid(UUID)를 공유합니다. 두 논리 볼륨 모두 활성 상태로 설정됩니다.

  4. 장치를 차단 /dev/dm-8하고 /dev/dm-37다음 논리 볼륨에 연결합니다.

    • /dev/dm-8->/dev/vg/vm_docu
    • /dev/dm-37->/dev/vg/vm_mail
root@ada:/# 실제 경로/dev/vg/vm_docu; file -s /dev/dm-8;
/dev/dm-8
/dev/dm-8: BTRFS 파일 시스템 섹터 크기 4096, 노드 크기 16384, 리프 크기 16384, UUID=d8709bb6-8278-431a-95dd-211ceaf35c3d, 951652352/214748364800 bys
root@ada:/# 실제 경로/dev/vg/vm_mail; file -s /dev/dm-37;
/dev/dm-37
/dev/dm-37: BTRFS 파일 시스템 섹터 크기 4096, 노드 크기 16384, 리프 크기 16384, UUID=d8709bb6-8278-431a-95dd-211ceaf35c3d, 1599131648/21474836480 bys
  1. 을 살펴보면 다음 /usr/bin/mountstrace같은 mount(8) 시스템 호출이 실행되는 것을 알 수 있습니다.
마운트("/dev/mapper/vg-vm_mail", "/mnt", "btrfs", 0, NULL) = 0

이는 /dev/dm-8문자 그대로 시스템 호출로 전달되지는 않지만 /usr/bin/mount잘못 해석되지는 않음을 보여줍니다.

 
root@ada:/# 실제 경로/dev/mapper/vg-vm_mail
/dev/dm-8

관련된 도구/소프트웨어의 의심되는 목록에는 다음 UUID이 포함됩니다.

  • 우데브
  • Linux 커널 - btrfs 코드
  • Linux 커널 - 장치 매퍼
  • linux 커널 - lvm(아직 내부에 장치 매퍼가 없는 경우)
  • 체계

답변1

BTRFS 파일 시스템에는 중복된 UUID가 있어서는 안 됩니다.

정말 간단합니다. Btrfs는 파일 시스템 UUID를 사용하여 동일한 파일 시스템에 속하는 장치를 식별합니다. 이 방법을 사용하면 설치하기 전에 "어레이를 조립"하는 특별한 명령 없이 , 및 /dev/sda로 구성된 FS를 가질 수 있습니다 . 실행하기만 하면 BTFRS는 동일한 UUID를 공유하는 장치를 자동으로 감지 하고 파일 시스템을 올바르게 조합합니다./dev/sdb/dev/sdcmount /dev/sda /somewhere/dev/sda

예를 들어, 이것이 btrfs 장치의 블록 수준 복사본이나 LVM 스냅샷을 사용해서는 안 되는 이유입니다. 동일한 장치(동일한 UUID 포함)의 여러 "복제본"을 생성하는 모든 것은 커널을 혼란스럽게 하고 심각한 해를 끼칠 수 있습니다.

따라서 어떤 상황에서든 중복된 파일 시스템 UUID가 발생하면 이를 복구하기가 매우 어렵습니다. 영향을 받은 파일 시스템을 처음부터 다시 만들고 백업에서 복원하는 것이 가장 쉬운 방법일 것입니다.

관련 정보