反转分区的所有字节或块以轻松调整分区大小

反转分区的所有字节或块以轻松调整分区大小

我目前的问题是,我想要一种方法来双启动 Linux 系统和 Windows 或 macOS 系统,并且仍然能够调整两个系统的大小,但无需移动它们。例如,如果我的第一个分区上有 Windows 系统,第二个分区上有 Linux 系统,如果我想向 Linux 分区添加空间,我必须缩小 Windows 分区,移动 Linux 分区,然后扩大 Linux 分区。我宁愿不使用 LVM,因为它与 Windows 或 macOS 不兼容。

为了解决这个问题,我想到了一个(有点疯狂的)想法,反转分区中的所有字节或块(取决于实际实现),这样数据就会从结尾分区。我可以编写一个内核模块来实现 Linux 系统的这一功能,然后如果我想扩大 Linux 系统,我只需缩小 Windows 分区并扩大 Linux 分区即可。

  1. 有没有更好的方法?我觉得这种方法有点……值得怀疑。
  2. 在内核中实现这一点的最佳方法是什么?我希望有块设备(这样我就可以反转块),我可以将 mount 命令指向它或将 mkfs 命令指向它,就像使用 /dev/sda1 一样。我宁愿不只是修改 ext4 的代码。

答案1

我认为这是不可能的,因为其他具有低级 I/O 访问权限的进程(如内核本身)可能会忽略您的内核模块并造成严重破坏。除此之外,它可能会导致一些严重的性能问题,因为每个打开 I/O 磁盘流的程序都需要通过您的模块。这听起来确实很酷,但我认为如果没有经验丰富的内核开发人员的帮助,就不值得追求它。

相关内容