ボリューム グループが適切に閉じられないことがあるようです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
なぜですか?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 コンテナを閉じると、内部に保存されているデータに悪影響が出るかどうかはまだわかりません。これについて詳しい方がいらっしゃいましたら、お知らせください。