在我的笔记本电脑中,我有一个硬盘驱动器 ( /dev/sda
)。在此硬盘上,我有一个 EFI 分区 ( /dev/sda1
)、一个启动分区 ( /dev/sda2
) 和一个包含/
( /dev/sda3
) 的加密分区。加密分区内部是一个 LVM 卷组,其中包含几个逻辑卷(/
、交换分区等)。
所有这些都运行良好;我的 initrd 设置正确,系统启动没有任何问题。但是,启动后,我希望能够管理卷组。当我尝试这样做时,我得到以下输出:
# pvdisplay /dev/mapper/root
--- Physical volume ---
PV Name /dev/mapper/root
VG Name localdisk
PV Size 931.31 GiB / not usable 1.69 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 238416
Free PE 0
Allocated PE 238416
PV UUID I3wArE-g6yl-9ywx-Df8d-3w1N-wuuQ-FrQjoK
# vgdisplay localdisk
Volume group "localdisk" not found
Skipping volume group localdisk
怎么可能pvdisplay
报告物理设备是卷组的成员localdisk
,但却vgdisplay
坚持认为该卷组不存在?这里出了什么问题?
我可以根据需要/与问题相关的方式提供有关我的系统的更多信息。因为我不确定出了什么问题,所以我不知道此时要添加什么。
这些是我设置的设备映射器条目。请注意两个 LVM 逻辑卷,以及“root”(即/dev/mapper/root
),它是 LUKS 加密的父分区。
# dmsetup info
Name: localdisk-swap
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 2
Event number: 0
Major, minor: 251, 1
Number of targets: 1
UUID: LVM-75jhqCBBFayCVQECgTH8NOFfkrjYCqiHa0oIafGLgBOZbuhrYISOHQo97Gamy74E
Name: localdisk-root
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 1
Event number: 0
Major, minor: 251, 2
Number of targets: 1
UUID: LVM-75jhqCBBFayCVQECgTH8NOFfkrjYCqiHzpANUdFbPYfliL6gmKoBdhol2zj9Gl6z
Name: root
State: ACTIVE
Read Ahead: 256
Tables present: LIVE
Open count: 2
Event number: 0
Major, minor: 251, 0
Number of targets: 1
UUID: CRYPT-LUKS1-d5f7cc568cc74201be3fde108e37162e-root
这是我安装的文件系统(注意/dev/mapper/localdisk-root on /
):
# mount
rootfs on / type rootfs (rw)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=1006523,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
/dev/mapper/localdisk-root on / type ext4 (rw,noatime,commit=0)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=805564k,mode=755)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
openrc on /sys/fs/cgroup/openrc type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/lib64/rc/sh/cgroup-release-agent.sh,name=openrc)
cpu on /sys/fs/cgroup/cpu type cgroup (rw,nosuid,nodev,noexec,relatime,cpu)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nodev,noexec,nosuid)
答案1
如果你查看/etc/lvm/lvm.conf
,有一个devices { ... }
部分。您可能需要调整过滤器以接受/dev/mapper/root
作为有效位置。最简单的过滤器是接受所有设备:filter = [ "a/.*/" ]
。您也可以仅接受您感兴趣的设备:filter = [ "a|^/dev/mapper/root$|", "r/.*/" ]
。
您的 initramfs 可能有不同的 LVM 配置。
(顺便说一句:vgscan -vvv
是这里使用的故障排除工具。它应该显示它检查的每个块设备,以及是否在那里发现任何东西。)