没有任何内容使用 /dev/sda,但使用设备映射器给出 ioctl 错误

没有任何内容使用 /dev/sda,但使用设备映射器给出 ioctl 错误

在 Archlinux 上,我只需将设备映射器设置到主硬盘驱动器 /dev/sda 即可。在 Fedora 上,它不会让我这么做,并说“设备映射器:重新加载 ioctl ...失败,设备或资源繁忙”。 Journalctl 给出了这个 -device-mapper: table: xx:xx: linear: Device lookup failed (-EBUSY)然后device-mapper: ioctl: error adding target to table 我看了看,发现没有任何东西正在使用 /dev/sda。我尝试了lsof和fuser。我如何找到导致此错误的原因?

目标状态很简单:让 /dev/sda 父硬盘驱动器可用于临时临时设备映射(甚至可能与现有分区布局重叠并存在于顶部)。当整个 /dev/sda 根本没有分区并且只是直接设备映射到某些加密分区(带有分离的 /boot 的普通 dm-crypt root fs)时,此方法有效。

答案1

根据您的评论:

分区sda1是磁盘的一部分sda,因此如果您的 LUKS 加密根文件系统处于打开状态sda1,您将无法映射整个分区,sda因为 LUKS 已经声明对其特定部分(即分区sda1)的独占访问权限。不过,您可以映射其他未安装的分区。

您似乎正在尝试添加linear映射。这可能意味着您可能尝试使用sda其他磁盘构建 JBOD。为了不使 上的分区失效sda,它必须是线性映射中的第一个设备,并且您必须在激活根文件系统的 LUKS 加密层之前在 initramfs 中建立映射。您可能必须使用kpartx或类似的方法在 JBOD 之上为其上现有的分区创建单独的映射,以便 LUKS 有机会找到包含加密根文件系统的分区。这就是你想做的吗?

(您应该在被询问时使用注释来提供更多信息,而不是编辑你的问题评论最终会过期,如果了解情况的重要信息仅在评论中,那么该问题及其收到的任何答案将来对其他人将变得毫无用处。)

您可能想要描述您想要的目标状态:完成后您希望如何布置设备映射(包括根文件系统)?然后我们可以提供如何在 Fedora 中最好地实现这一点的答案。

由于 Arch 的安装过程本质上包括 chroot 内的手动操作,因此它很可能更灵活地接受对于 Fedora 来说不寻常的配置。

相关内容