关于chroot的问题

猫人

设想

  • 我的硬盘驱动器上有2个工作的Ubuntu分区,我们称它们为A和B。它们使用一个交换分区。
  • 我已经启动到A并登录到桌面。现在,我要使分区A更大(有足够的空间),而无需重新启动。

问题

我可以使用chroot来

  • 将执行切换到B,然后卸载分区A。
  • 然后从B开始gparted并调整分区A的大小。
  • 然后(在B中)将A挂载到/ mnt / temp中,并使用chroot将执行切换回A?

如果您知道这是否可行,请发表评论或回答。即使您不知道确切的步骤。这已经对我有所帮助,并且比根本没有答案要好得多。

当然,更有用的方法是逐步执行命令行过程以转到B,卸载分区A以及如何启动图形化的gparted。

我做了什么

  • 我使用chroot从实时CD或其他分区切换来修复grub。它仅处于文本模式。我使用了许多文章中介绍的标准过程(挂载其他分区,挂载--bind虚拟文件夹,然后使用chroot移至已挂载的驱动器)。
  • 我创建了A克隆到新创建的分区B。从grub启动时,该克隆可以正常工作,因此完全可以正常工作。我确实从A使用chroot('#'提示符)访问命令行。
  • 我没有找到在B中启动桌面或完全切换到B中工作的方法,就像我将系统重新启动到B中一样。
  • 我没有看到其他包含该问题的帖子
拉韦西纳

据我所知:chroot意味着更改root。

类似于Unix的操作系统上的chroot是一项更改当前运行进程及其子进程的表观根目录的操作。[从这里]

您正在更改运行系统的根目录;因此,您的系统(A)仍在运行,您所看到的一切都是正在运行的系统的一部分,您不能简单地卸载其繁忙的资源(块设备)。

同样,您要将根更改为(B)的系统在没有A的帮助下也无法执行任何操作。举个例子,我猜您使用了一个命令mount --bind /xxx /mnt/xxx来绑定路径,这是过程的一部分/proc过程/dev的一部分chroot这些路径由正在运行的系统(A)进行管理,并且对于chroot环境(B)是必需的。

您根本无法做您想做的事情。

正如Wikipedia所说,的用法chroot是:

  • 测试与开发
  • 依赖控制
  • 兼容性
  • 恢复
  • 特权分离

要在您的受限环境中运行图形程序(A中的B);您应该允许访问正在运行的X。

在chroot环境之外运行(打开另一个终端):

xhost +local:
echo $DISPLAY

然后将您获得的输出作为输出导出到您的chroot环境中:

export DISPLAY=[output of above command]

现在,您应该能够运行图形应用程序了。

来源


我不知道您为什么要这样做,只是引导到活动磁盘中,应用您的更改,将chroot应用于您的其他计算机,以在需要时修复任何问题。然后重新启动并使用您的系统。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章