小编vvi*_*ilp的帖子

如何使用/测试pivot_root?

我想测试将pivot_root当前进程的根文件系统移动到目录put_old并创建new_root新的根文件系统的命令。

但我总是收到以下错误:

pivot_root: failed to change root from .' toold-root/': Invalid argument
Run Code Online (Sandbox Code Playgroud)

我使用 Fedora 作为基本根,我的主文件夹中有一个 Archlinux

[root@localhost arch-root]# ls
bin boot dev etc home lib lib64 mnt old-root 
opt proc root run sbin srv sys tmp usr var
[root@localhost arch-root]# pivot_root . old-root/
pivot_root: failed to change root from .' toold-root/': Invalid argument
Run Code Online (Sandbox Code Playgroud)

我也尝试调用 linux 函数pivot_root("/chroot_test", "/chroot_test/old-root");得到同样的错误。

关于这个的任何想法?

更新 #1

我也尝试pivot_root在 Docker 中进行测试。我将这个 arch-root 挂载到 Docker 容器中。但得到以下错误:Operation not permitted …

linux chroot docker

13
推荐指数
2
解决办法
1万
查看次数

linux 命名空间,如何在网络命名空间中连接互联网?

我想测试 linux 网络命名空间。

当前的问题是我无法在命名空间中连接互联网

这是我的命令:

1 创建网络命名空间netns1,创建一对veths(A和B)将B设置为命名空间

ip netns add netns1
ip link add A type veth peer name B
ip link set B netns netns1
Run Code Online (Sandbox Code Playgroud)

2 创建一个桥来连接 veth A

brctl addbr bridge0
ip addr add 172.17.42.1/16 dev bridge0
ip link set dev bridge0 up
brctl addif bridge0 A
ip link set A up
Run Code Online (Sandbox Code Playgroud)

3 在命名空间中,设置网络

ip netns exec netns1 ip link set dev B name eth0
ip netns exec netns1 ip link set eth0 up
ip netns exec netns1 …
Run Code Online (Sandbox Code Playgroud)

linux networking namespace

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

linux ×2

chroot ×1

docker ×1

namespace ×1

networking ×1