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

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

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

  • 在一个大的分区上安装Linux真的有多糟糕?
  • 交换分区应该有多大?
  • 为使用Windows XP和两个独立的Linux安装进行双启动分区build议
  • Windows Server 2008上推荐的hyper-v磁盘设置是什么?
  • 使用LVM和RAID预置Ubuntu partman配方
  • 为什么我的lvm2卷组只能使用多path设备映射器而不使用powerpath?
  • 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服务器.