我正在尝试安装我的第一个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.mod
GRUB 模块。但问题主要是 Debian 安装程序还无法可靠地设置它 - 或者当时无法设置我猜想这可能主要是让安装程序“理解” /boot
LVM 内部的新可能性,并警告用户有关不起作用的配置。)
答案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
无论如何,请检查其他答案以了解该服务被禁用的原因。