논리 볼륨 마운트 시 파티션 오프셋

논리 볼륨 마운트 시 파티션 오프셋

저는 무엇보다도 가상 Windows 10 시스템을 실행하는 Linux 서버(여전히 Ubuntu 18.04)를 유지 관리하고 있습니다. Windows 시스템은 논리 볼륨을 하드 드라이브로 사용합니다.

내 목표는 호스트 시스템 디렉터리 트리에 LV의 스냅샷을 마운트한 다음 rsync를 사용하여 파일을 백업함으로써 Windows 시스템의 일부 파일을 백업하는 것입니다(Linux 호스트 시스템의 파일에 대해 했던 것처럼).

내가 하고 있는 일은 다음과 같습니다.

# create snapshot
lvcreate --snapshot --size 20G --name windows-backup /dev/vg0/vmachine

# mount snapshot
mkdir /mnt/windows-backup
mount --read-only /dev/vg0/windows-backup /mnt/windows-backup

그러나 다음 오류 메시지와 함께 설치가 실패합니다.

mount: /mnt/windows-backup: wrong fs type, bad option, bad superblock on /dev/mapper/vg0-windows--backup, missing codepage or helper program, or other error.

LV가 여러 파티션으로 구성되어 있고 다음 출력을 따르기 때문이라고 생각됩니다.fdisk -l /dev/vg0/windows-backup

Disk /dev/vg0/windows-backup: 250 GiB, 268435456000 bytes, 524288000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x6be134ed

Device                   Boot     Start       End   Sectors  Size Id Type
/dev/vg0/windows-backup1 *         2048   1126399   1124352  549M  7 HPFS/NTFS/exFAT
/dev/vg0/windows-backup2        1126400 523192612 522066213  249G  7 HPFS/NTFS/exFAT
/dev/vg0/windows-backup3      523194368 524283903   1089536  532M 27 Hidden NTFS WinRE

그런 다음 시도했습니다.

mount --read-only --types ntfs -o offset=$((512*1126400)) /dev/vg0/windows-backup /mnt/windows-backup

이로써 예상했던 결과가 나왔습니다.

내 질문: 설치하기 전에 파티션 오프셋을 수동으로 찾아야 하는 단계, 즉 제 경우에는 백업 스크립트의 값을 하드코딩하는 단계를 어떻게든 없앨 수 있습니까? 결국, 이 오프셋이 변경될 수 있다는 것이 이론적으로 가능합니까? ! 가장 큰 NTFS 파티션의 오프셋을 동적으로 결정하는 방법이 있습니까?

나를 약간 혼란스럽게 하는 또 다른 점은 mountLV의 파티션 레이아웃을 동시에 변경하지 않고도 첫 번째 명령(오프셋 없음, 지정된 파일 시스템 유형 없음)이 얼마 전에 작동했다는 것입니다. 왜 그런 겁니까?

답변1

장치 자체를 마운트하려고 시도해서는 안 되며 장치에 있는 파티션을 마운트해야 합니다. 여기서 문제는 시스템이 기본적으로 LV에서 파티션을 감지하려고 시도하지 않는다는 것입니다(대개 LV에서 파티션을 생성하는 것은 의미가 없기 때문입니다). 따라서 먼저 다음을 사용하여 파티션 테이블을 읽도록 커널에 지시해야 합니다. 명령을 내린 partprobe /dev/vg0/windows-backup다음 마운트하세요 /dev/vg0/windows-backup2.

일부 가상화 도구를 사용하는 것이 더 나은 아이디어일 수도 있습니다.libguestfs데이터에 접근하려면 LV에 직접 접근하는 것보다 데이터에 직접 접근하는 것이 안전한지는 잘 모르겠습니다. (하지만 저는 가상화 전문가도 아니고 스냅샷도 있으니 괜찮을 것 같습니다.)

관련 정보