Chroot 进入 Ubuntu 核心文件系统

Chroot 进入 Ubuntu 核心文件系统

我正在尝试弄清楚如何将用户添加到单独的文件系统,如下所述这里,特别是第 5 点: 为用户添加本地用户和密码,然后将用户添加到 adm 和 sudo 组。

我读过有关 chroot 的文章,但我认为这不会起作用,因为要运行的默认命令是/bin/bash,这需要目标文件系统具有二进制兼容性。在这种情况下,目标文件系统是阿梅尔所以不兼容。

答案1

我发现这个页面准确解释了我尝试 chroot 到目标文件系统的操作:

http://www.omappedia.com/wiki/OMAP_Ubuntu_Core#Chroot.27ing_into_the_Ubuntu_Core_Filesystem

这是一个简单的跑步adduser ubuntu或类似情况。

复制以防万一:

Chroot 进入 Ubuntu 核心文件系统

自定义 Ubuntu Core 文件系统的一个解决方案是从 Linux PC 进行。使用“chroot”有时非常方便,因为您可以像在 ARM 目标上一样运行命令。以下是一些快速运行步骤:

Linux PC 上的 Chroot 配置

验证您的 Linux PC 上是否安装了“qemu-user-static”Ubuntu 软件包。可以使用以下命令行(在您的 Linux PC 上)完成此操作:

dpkg -l qemu-user-static

将你的 SD 卡安装在你的 Linux PC 上并转到你的 rootfs Ubuntu Core 文件夹,通常:

cd /media/rootfs

复制 qemu for arm 文件:

cp /usr/bin/qemu-arm-static usr/bin/

如果尚未完成,请正确配置您的网络设置:

mv etc/resolv.conf etc/resolv.conf.saved
cp /etc/resolv.conf etc/resolv.conf

然后,挂载 sys、proc 和 dev:

for m in `echo 'sys dev proc'`; do sudo mount /$m ./$m -o bind; done

最后,chroot 到你的目标文件系统:

sudo LC_ALL=C chroot . /bin/bash

您现在处于“chroot”状态,这意味着您可以像在目标 ARM 设备上一样运行命令。

使用 'chroot'

第一步是验证网络连接是否正常。您可以运行:

apt-get update

您现在可以使用 APT 工具在 Ubuntu Core 文件系统中安装任何新软件包。

离开‘chroot’

卸载目标文件系统:确保您位于 /target FS 并运行以下命令:

for m in `echo 'sys dev proc'`; do sudo umount ./$m; done

返回原始网络设置:

mv etc/resolv.conf.saved etc/resolv.conf

答案2

也许,这会起作用(除了您的解决方法:在 ARMEL 系统中安装新的文件系统):

在执行 之前chroot,先将mount --bind主机系统中包含与体系结构相关的二进制文件的目录复制到新文件系统中的相应位置(/bin//sbin//lib/-- 也许这对于添加用户就足够了;或者/usr/*,如果不够的话),然后chroot和 运行命令。新文件系统中的 、 和 将被/etc/修改/home//var/

相关内容