环回设备的多个分区导致错误

环回设备的多个分区导致错误

我正在开发一个分区工具,出于测试目的,我必须在环回设备上重复运行分区和 LVM 配置

  • 分区/dev/loop0有3个分区/dev/loop0p1 /dev/loop0p2 /dev/loop0p3
  • 创建LVM
pvcreate /dev/loop0p2 /dev/loop0p3
vgcreate test_vg /dev/loop0p2 /dev/loop0p3
lvcreate -L 1GB test_vg -n vol1 --wipesignature y --zero y
lvcreate -L 1GB test_vg -n vol2 --wipesignature y --zero y
partprobe /dev/loop0

经过这样的运行后,我想在同一设备上再次返回所有内容,但是,在运行分区时我收到错误

Partition(s) 2, 3 on /dev/loop0 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.

现在我知道解决方案是重新启动,但在开发过程中持续这样做是不合理的。有没有办法解决这个问题而不必一直重新启动?

答案1

此错误似乎是在您尝试修改或创建分区 /dev/loopxp2 和 /dev/loopxp3 时引起的,尽管它们仍用作 LVM 的物理卷。

从这个意义上来说,LVM 与分区不同。即使没有安装文件系统,物理卷仍由 LVM 本身使用。

在你的问题中你没有提到创建。一个卷组。这里的原则是,您需要一起对整个卷组进行操作(全部可用或全部不可用)。

vgexport要分离它并拆除卷组所需的环回设备;这将停止 LVM 使用物理卷。然后您将能够毫无错误地操作分区表。

相关内容