免责声明:我不是Linux系统方面的专家,我的主要经验是Windows。
不久前,我发现我的工作电脑上的分区不是按照我想要的方式分开的。我有超小的根分区(20G)、交换分区以及其余空间。我只是想用最简单的(正如我所想的)方法来改进它 - 从“localdisk”添加一些空间到根分区。在 Windows 下,这是一个非常简单的任务,几乎每个分区管理器都可以完成:
- 从 Windows 运行您最喜欢的分区管理器工具;
- 从本地磁盘的“顶部”删除一些卷;
- 将交换区移动到底部,以便拥有与根相邻的新创建的可用空间; (实际上,我想将交换区移动到磁盘的最末端,以避免将来移动交换区时出现问题:使根目录和本地磁盘相邻)
- 扩展 root 以包含可用空间;
- 提交操作,它们将在重新启动期间执行。
- 就是这样。它将移动所有内容并将所有数据保留在适当的位置,之后不会损坏任何内容。
在 Windows 上没有什么特别的事情要做。
但在 Linux 上,即使重新启动,我也无法修改当前正在使用(已安装)的分区,并且来自网络的大多数建议都建议使用 LiveCD 作为最佳选择。但在 Windows 上,所有工具都知道如何在重新启动期间执行此操作。所以,我的问题是:
- 是否有一个工具可以让您做任何事情并在重新启动后执行所有操作,而不需要额外的 LiveCD?
- 如果没有——为什么?我的意思是,这是非常常规的行为,为什么它如此有害?
答案1
我想某个地方有一个工具可以完成您所追求的任务(显然不为人所知)。
然而,在 Linux 和现代 Unix 风格的系统上,存储是使用卷管理器进行管理的,左心室容量通常在 Linux 上。一旦设置完毕,并且大多数 Linux 安装程序都知道如何执行此操作,您就可以在运行时调整卷大小,而无需重新启动。由于使用 LVM 进行卷管理非常简单,因此在其他方法上花费时间和精力没有太多意义......
答案2
即使在 Windows 中也无法缩小活动分区。然而在 Windows 中,有一个HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SetupExecute
由会话管理器执行的密钥(类似于 unix init)。工具可以在那里安装一些命令,并且它将在使用poqexec
(原始操作队列执行器)之前启动。
这是在 Windows 中调整活动分区大小的方法。
Linux 上没有这样的 API。从技术上讲,您可以添加此命令,initramfs
但最好启动到 initramfs 或单一模式并执行您喜欢的操作。