LVM의 dm-X(예: dm-0, dm-1, dm-2, dm-3 등) 노드의 내용을 검사하는 것이 가능합니까?
Linux 시스템에서 긴급하게 많은 데이터를 복구해야 하는데 이 노드에서 찾을 수 있을 것 같아서 이렇게 질문합니다.
(내 데이터가 나머지 표시 가능한 dm-X 노드에 없으면 법의학 IT 기술자를 고용하여 어떻게든 모든 하드 드라이브를 스캔해야 할 것 같습니다.)
답변1
/dev/dm-*
각 노드가 무엇에 해당하는지 알고 싶다면 dmsetup ls -o blkdevname
알려 드리겠습니다.
각 노드에 어떤 물리적 장치가 포함되어 있는지 알아야 할 경우 도움이 될 것입니다 dm-X
.dmsetup ls --tree -o blkdevname
이 옵션이 지원되지 않을 만큼 나이가 많은 경우 생략할 수 있으며 표에 장치 번호가 dmsetup
표시됩니다 . 실행하면 파일 크기 대신 장치 번호가 형식으로 표시됩니다 .-o blkdevname
(major:minor)
ls -l /dev/dm-*
major, minor
각 매핑의 유형을 식별하는 것이 dmsetup table
도움이 될 수 있습니다 .
각 장치 노드의 "콘텐츠"는 dm-X
단순히 매핑을 통해 표시되는 기본 장치의 콘텐츠입니다. file -s /dev/dm-X
해당 파일 시스템의 유형(LABEL 및 UUID도 가능)을 식별해 볼 수 있습니다 . 장치에 파일 시스템이 있는 경우 모든 것이 정상이라는 가정하에 간단히 마운트하고 정상적으로 액세스할 수 있습니다. 그런데 당신이 그 단어를 언급한 이후로다시 덮다, 디스크 오류와 같은 문제가 있어 상황이 복잡해지는 것 같습니다.
따라서 복구 상황에서 필요할 경우를 대비한 몇 가지 팁은 다음과 같습니다.
실패한 시스템이 여전히 실행 중인 경우 dmsetup table
가능하면 시스템을 다시 시작하기 전에 정보를 얻으십시오. 시스템이 재부팅된 경우 /etc/lvm/backup
현재 LVM 구성의 백업이 사람이 읽을 수 있는 형식으로 포함되며 /etc/lvm/archive
각 구성 변경 이전의 여러 이전 구성 백업이 포함됩니다.
linear
가장 간단한 매핑으로, 디스크 블록 세그먼트를 다른 디스크 장치에 있는 동일한 크기의 세그먼트에 매핑합니다. linear
LV를 생성할 때 더 고급 기능(예: 스트라이핑 또는 미러링)을 명시적으로 지정하지 않는 한 LVM은 매핑을 사용합니다 .
예를 들어, 실행하면 dmsetup table /dev/dm-3
다음과 같이 표시됩니다.
0 293601280 linear 8:1 2048
293601280 209715200 linear 8:1 817891328
이는 장치가 dm-3
두 개의 선형 맵으로 구성되어 있음을 의미합니다. 첫 번째(블록 #0에서 시작 dm-3
)는 293601280개 블록의 세그먼트로, /dev/sda1
블록 #2048(블록 장치, 주 번호 8, 부 장치 1 = )에서 시작하여 장치 8:1에 선형적으로 매핑됩니다. 두 번째 매핑은 블록 #293601280에서 dm-3
209715200 블록에 대해 계속되고 /dev/sda1
블록 #817891328에서 선형적으로 매핑됩니다. 이는 한 번 확장된 기본 LVM 논리 볼륨을 보면 다음과 같습니다 dmsetup table
.
그 안에 포함된 파일 시스템을 dm-3
이미지 파일이나 다른 장치에 복사하려면 다음 두 가지 dd
명령을 실행할 수 있습니다. (또는 ddrescue
디스크에 오류가 있는 경우)
dd if=/dev/sda1 bs=512 skip=2048 count=293601280 >/rescue/image
dd if=/dev/sda1 bs=512 skip=817891328 count=209715200 >>/rescue/image
일반적인 상황에서 이것은 단순히 다음을 수행하는 것과 정확히 동일해야 합니다.
dd if=/dev/dm-3 bs=512 >/rescue/image
첫 번째.