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

在Linux上,如果删除一个(MSDOS)扩展分区,并且使用的扩展分区数大于删除的分区数,则内核无法使用partprobe重新扫描分区。 发生这种情况,我认为,因为删除后的分区将减less1

有没有办法解决这个问题(没有卸载其他分区)?

  • CentOS 5.5下的16TB档案系统?
  • 为什么fdisk在圆柱体和扇体之间的翻译单位有差异?
  • build议使用两个147G硬盘的生产服务器的分区scheme?
  • 使用VMWare的虚拟文件系统有多糟糕?
  • 将一个分区挂载到两个挂载点
  • LVM:移动物理卷
  • One Solution collect form web for “安全删除扩展分区,无需重新启动”

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


    这是一个丑陋的(和危险的 !)黑客,有时可以帮助…

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

    # 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等。 小心 ! 以这种方式破坏数据是非常容易的,因为如果您尝试使用正在使用的分区执行任何操作(挂载,创build文件系统等),Linux甚至不会注意到这一点。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.