安全删除扩展分区而无需重新启动

安全删除扩展分区而无需重新启动

在 Linux 上,如果删除 (MSDOS) 扩展分区,并且有扩展分区正在使用如果分区号高于已删除的分区号,内核将无法使用 partprobe 重新扫描分区。我推测这种情况的发生是因为删除的分区后面的分区数量将减少 1

有什么办法可以解决这个问题(无需卸载其他分区)?

答案1

不幸的是,Linux 内核甚至没有那么智能。即使你删除最后一个分区,如果此设备上有任何分区正在使用,即使完全不受影响,Linux 也不会重新加载分区表。如果有任何分区正在使用,则无法重新加载分区表。这通常意味着如果它是保存根文件系统的磁盘,则需要重新启动。


这是一个丑陋的(和危险的!) 有时这些小窍门能帮到你……

我不确定它是否对您有帮助,但我最近发现了一种解决方法,即使 Linux 拒绝重新加载分区表,它也可以让我访问新创建/修改的分区:

# losetup --find --partscan --show /dev/sda
/dev/loop0
losetup: /dev/sda: warning: file smaller than 512 bytes, the loop device maybe be useless or invisible for system tools.

(警告可以忽略)

这将使当前定义的所有分区为/dev/sda/dev/loop0p1、、/dev/loop0p2等等。 当心! 这种方式很容易破坏您的数据,因为如果您尝试对正在使用的分区执行任何操作(挂载、创建文件系统等),Linux 甚至不会注意到。

相关内容