LVM2 服务在 Debian 中被“屏蔽”

LVM2 服务在 Debian 中被“屏蔽”

我正在尝试安装我的第一个Linux系统,但我在设置硬盘时遇到了困难。鉴于我缺乏经验,我决定使用硬盘驱动器设置屏幕上的引导设置,认为我会在完成 Debian 安装后返回并根据需要简单地调整驱动器大小。

但是当尝试运行时

sudo 服务 lvm2 启动
我收到一条消息“unit lvm2.service is masked”。

关于为什么会发生这种情况有什么想法吗?我能找到的只是一个注释,LVM 与 grub 不兼容/boot,应该位于 LVM 管理的存储磁盘之外。

如果是这样,它真的是指/boot加载的整个磁盘还是可以只是该磁盘上的一个单独的逻辑分区?

答案1

简短的回答:没关系。

/lib/systemd/system/lvm2.service/dev/null由Debian 软件包创建为符号链接lvm2,导致该服务被永久屏蔽,因为 SysVinit 风格的/etc/init.d/lvm2启动脚本的工作实际上分为多种的本机systemd单位。

lvm2.service不过,它需要存在,因为否则 SysVinit 兼容性逻辑会自动创建一个systemd只运行该脚本的单元。由于systemd-native/lib/systemd/system/lvm2.service存在,所以这种情况不会发生 - 但因为所有实际工作都是由[email protected]和的实例完成的lvm2-monitor.service,所以 unit 的唯一工作lvm2.service就是屏蔽多余的 SysVinit 式启动脚本。

另外,您说的对,LVM 可以在 Debian 系统磁盘上使用,只要/boot将其放置到系统固件可以理解的传统非 LVM 分区中即可 - 因为 GRUB 使用系统固件的服务来访问其中的文件那个文件系统。

(是的,现代版本的 GRUB 确实包含读取 LVM 上的文件系统的功能。Debian 9 版本的 GRUB 甚至包含lvm.modGRUB 模块。但问题主要是 Debian 安装程序还无法可靠地设置它 - 或者当时无法设置我猜想这可能主要是让安装程序“理解” /bootLVM 内部的新可能性,并警告用户有关不起作用的配置。)

答案2

如果您有一个没有 Systemd 的发行版(例如:旧的 Debian 或最近的 Devuan),请尝试以下操作:

/etc/init.d/lvm2 start

对于所有其他标准情况(例如:最近的 Debian),请检查其他答案以了解为什么您不应该尝试启动此服务。

答案3

如果你被困住了unit lvm2.service is masked并且你想要不惜一切代价要启动旧服务,您可以尝试检查您的服务是否是以下符号链接/dev/null

ls -l /lib/systemd/system/lvm2.service

(您应该看到 lvm2.service -> /dev/null)

在这种情况下,只需删除该虚拟服务即可:

rm /lib/systemd/system/lvm2.service

您将能够再次启动您的服务:

systemctl start lvm2

无论如何,请检查其他答案以了解该服务被禁用的原因。

相关内容