我正在尝试为最小的源代码 linux 发行版编写引导程序。
我想在一个类似 chroot 的环境中构建。这应该简化包装。在这一点上,我不关心安全性。引导程序不应需要任何非标准的第三方命令。如果不需要 root 那就太好了。
这就是为什么 fakechroot(1) fakeroot(1) chroot(1) 不是我正在寻找的。
是否可以伪造 / 使用 unshare(1) 和 /bin/sh?
对于用户进程,我想在其他位置挂载一个目录,但在没有 root 权限的用户空间中挂载。类似 mount --bind /origin /dest 的东西,但带有 vfs 包装器。就像一个用户模式微调的 chroot。
该程序会将系统调用包装到文件中以“替换”所需的路径。可以使用如下命令行调用它:
bindvfs /fake-home:/home ls /home
我相信这已经存在了!:)
目标是在主机 Linux 系统内的置换(重新定位)发行版(其 / 不得与全局 / 重合)中安装和运行程序。这些程序不适用于使用不同的 / 。
fakechroot 不是一个完整的解决方案,因为它使用库替换而不是在系统调用级别上进行操作(因此不适用于静态链接的二进制文件)。
我正在编写一些引导脚本,我无法在没有重新启动的情况下让用户模式 LXC 容器在 vanilla Ubuntu 14.04 上工作。
这就是我所做的。
首先,我下载并安装Ubuntu 服务器 14.04.1 amd64,在新的(VirtualBox 下的虚拟来宾)机器上默认所有内容。
然后我登录,并更新和升级它,如果内核升级,则重新启动。
然后我登录,并发出以下命令:
$ sudo apt-get --yes install lxc
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
bridge-utils cgmanager cloud-image-utils debootstrap distro-info
distro-info-data dnsmasq-base euca2ools genisoimage libaio1
libboost-system1.54.0 libboost-thread1.54.0 liblxc1 libmnl0
libnetfilter-conntrack3 librados2 librbd1 libseccomp2 libxslt1.1
lxc-templates python-distro-info python-lxml python-requestbuilder
python-setuptools python3-lxc qemu-utils sharutils uidmap
Suggested packages:
cgmanager-utils shunit2 wodim cdrkit-doc lxctl qemu-user-static
python-lxml-dbg bsd-mailx mailx
The following …
Run Code Online (Sandbox Code Playgroud)