!['dmsetup'을 사용하여 영구 스냅샷 장치를 생성할 수 없습니다.](https://linux55.com/image/119274/'dmsetup'%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%98%81%EA%B5%AC%20%EC%8A%A4%EB%83%85%EC%83%B7%20%EC%9E%A5%EC%B9%98%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
dmsetup
다음을 수행할 수 있는 스냅샷 장치를 만들려고 합니다 .fsck에 의한 변경 사항 롤백.
제가 전화를 잘못 건 것 같아요 dmsetup
. 예는 다음과 같습니다.
$ truncate -s 4096 real snapshot
$ losetup --show -f real
/dev/loop0
$ losetup --show -f snapshot
/dev/loop1
$ sudo dmsetup -v create snapdev --table '0 8 snapshot /dev/loop0 /dev/loop1 P 1'
device-mapper: reload ioctl on snapdev failed: Input/output error
Command failed
오류 메시지의 마지막 두 공백이 snapdev
약간 이상합니다.
그러나 P
지속성을 N
비지속성으로 변경하면 모든 것이 잘 작동합니다.
$ sudo dmsetup -v create snapdev --table '0 8 snapshot /dev/loop0 /dev/loop1 N 1'
Name: snapdev
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 254, 4
Number of targets: 1
내가 뭘 잘못했나요?
답변1
영구 스냅샷에 사용하려면 장치의 처음 몇 블록이 \0
.이 예
처음 32개 블록을 0으로 만듭니다.
이 바이트는 SnAp\001
영구 스냅샷 장치의 시작 부분에 기록됩니다..
기본 장치의 첫 번째 블록은 영구 스냅샷 장치의 블록 16에 매핑됩니다. (데이터는 바이트 오프셋 8192 또는 0x2000에서 시작됩니다).
스냅샷 장치(지정되지 않은) 최소 크기가 필요합니다.. 4MB이면 충분합니다.
자원: