我想测试将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")
;得到同样的错误。
关于这个的任何想法?
我也尝试pivot_root
在 Docker 中进行测试。我将这个 arch-root 挂载到 Docker 容器中。但得到以下错误:Operation not permitted …
我想测试 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)