때때로 vgchange -a n [vgname]
볼륨 그룹이 제대로 닫히지 않는 것 같습니다. 이런 일은 실제로 새로운 시스템을 준비할 때 무엇이 발생하는지 알 수 없을 때 가장 자주 발생합니다. 다음 디스크 구조를 고려하십시오(의 출력 lsblk -o name,fstype
).
NAME FSTYPE
/dev/sdx
+- /dev/sdx1 crypto_LUKS
| +- test_luks LVM2_member
| | +- test_lvm-test ext4
cryptsetup open ...
이 모든 항목을 일반적인 방법( , vgchange -a y ...
등)으로 열 때 몇 가지 작업을 수행한 test_lvm-test
다음 다음을 사용하여 모든 항목을 닫습니다.
umount [mountpoint of test_lvm-test]
vgchange -a n test_lvm
cryptsetup close test_luks
test_lvm
vgs
예상대로 출력에서 사라집니다 . 그러나 방금 이 구조를 생성하고(재현하려면 아래 참조) 처음으로 마운트한 다음 같은 방식으로 닫으면 test_lvm
의 출력에서 사라지지 않습니다 vgs
. 대신, vgs
물리적 볼륨에 대한 장치가 "필터에 의해 발견되지 않았거나 거부되었습니다"라고 불평합니다. 오류를 제거하려면 다시 vgs
열고 다시 비활성화 test_luks
하고 다시 닫아야 합니다.test_lvm
test_lvm
test_luks
왜 이런 일이 발생합니까? LVM이 처음 마운트되었을 때 test_lvm
after 핸들을 유지하지만 이후에는 유지하지 않는 이유는 무엇입니까 ?vgchange -a n test_lvm; cryptsetup close test_luks
이렇게 VirtualBox에 있는 Arch Linux Live CD "Arch Linux 5.2.5-arch1-1-ARCH"를 사용하면 이 동작을 가장 일관되게 재현할 수 있었습니다.
# Let /dev/sdx1 be the partition to test this on
#
# Create LVM on LUKS with one ext4 volume
#
cryptsetup luksFormat --cipher aes-xts-plain64 --hash sha256 --label "Test (Encrypted)" /dev/sdx1
cryptsetup open /dev/sdx1 test_luks
pvcreate /dev/mapper/test_luks
vgcreate test_lvm /dev/mapper/test_luks
lvcreate --extents 100%FREE test_lvm --name test
mkfs.ext4 -L Test /dev/test_lvm/test
#
# Mount volume and write to it
#
mount /dev/test_lvm/test /mnt
echo "Hello World" > /mnt/test.txt
#
# Unmount everything
#
umount /mnt
vgchange -a n test_lvm
# -> 0 logical volume(s) in volume group "test_lvm" now active
cryptsetup close test_luks
#
# Check vgs
#
vgs
# -> Warning: Device for PV [uuid] not found or rejected by a filter.
# -> Warning: Device for PV [same uuid] not found or rejected by a filter.
# -> Couldn't find device with uuid [same uuid again].
# -> VG #PV #LV #SM Attr VSize VFree
# -> test_lvm 1 1 0 wz-pn- 492.00m 0
#
# Mount and unmount again
#
cryptsetup open /dev/sdx1 test_luks
vgs
# No error this time
vgchange -a n test_lvm
cryptsetup close test_luks
# test_lvm no longer listed in vgs and no errors.
답변1
LUKS 컨테이너를 닫은 후 PV를 찾을 수 없다는 오류 메시지는 간단히 pvscan --cache
after를 실행하여 비활성화/제거할 수 있습니다 cryptsetup close <device>
. 그러나 이 상황에서 LUKS 컨테이너를 닫으면 내부에 저장된 데이터에 부정적인 부작용이 발생할 수 있는지 여부는 아직 알 수 없습니다. 이에 대해 더 자세히 아는 사람이 있으면 알려주시기 바랍니다.