LINUX.ORG.RU

LXC guest mount -o loop Operation not permitted

 , , ,


0

1

Субж

Как исправить? Где RTFM?

ubuntu@lxchost:~$ sudo lxc-create -t ubuntu -n lxcguest1 -- -r focal 
....................................................
ubuntu@lxchost:~$ sudo cp /root/ubuntu-20.04.3-live-server-amd64.iso /var/lib/lxc/lxcguest1/rootfs/root
ubuntu@lxchost:~$ sudo lxc-execute -n lxcguest1 -u 0 -- mount -o loop /root/ubuntu-20.04.3-live-server-amd64.iso /mnt/
lxc-execute: lxcguest1: utils.c: __safe_mount_beneath_at: 1106 Function not implemented - Failed to open 40(dev)
                                                                                                                mount: /mnt/: mount failed: Operation not permitted.
ubuntu@lxchost:~$ uname -a
Linux lxchost 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ubuntu@lxchost:~$ sudo cat /var/lib/lxc/lxcguest1/config
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
# Parameters passed to the template: -r focal
# For additional config options, please look at lxc.container.conf(5)

# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)


# Common configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf

# Container specific configuration
lxc.rootfs.path = dir:/var/lib/lxc/lxcguest1/rootfs
lxc.uts.name = lxcguest1
lxc.arch = amd64

# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:08:39:a6
ubuntu@lxchost:~$ 

Ответ на: комментарий от Flotsky

aa-teardown не помогает

ubuntu@lxchost:~$   sudo tail -5 /var/lib/lxc/lxcguest1/config
# Appended later
#lxc.aa_profile = unconfined
lxc.apparmor.profile = unconfined
lxc.cgroup.devices.allow = b 7:* rwm
lxc.cgroup.devices.allow = c 10:237 rwm
ubuntu@lxchost:~$   sudo lxc-execute -n lxcguest1 -u 0 -- mount -o loop /root/ubuntu-20.04.3-live-server-amd64.iso /mnt/
lxc-execute: lxcguest1: utils.c: __safe_mount_beneath_at: 1106 Function not implemented - Failed to open 40(dev)
                                                                                                                mount: /mnt/: mount failed: Operation not permitted.
ubuntu@lxchost:~$   sudo aa-teardown 
Unloading AppArmor profiles 
ubuntu@lxchost:~$   sudo lxc-execute -n lxcguest1 -u 0 -- mount -o loop /root/ubuntu-20.04.3-live-server-amd64.iso /mnt/
lxc-execute: lxcguest1: utils.c: __safe_mount_beneath_at: 1106 Function not implemented - Failed to open 40(dev)
                                                                                                                mount: /mnt/: mount failed: Operation not permitted.
mb9
() автор топика
Ответ на: aa-teardown не помогает от mb9

lxc-execute -n lxcguest1 -u 0 – mount -o loop /root/ubuntu-20.04.3-live-server-amd64.iso /mnt/

Повторил у себя. Да, просто devices.allow мало, мне пришлось ещё

lxc.mount.entry = /dev/loop0 dev/loop0 none bind,create=file 0 0
lxc.mount.entry = /dev/loop1 dev/loop1 none bind,create=file 0 0
lxc.mount.entry = /dev/loop2 dev/loop2 none bind,create=file 0 0
lxc.mount.entry = /dev/loop3 dev/loop3 none bind,create=file 0 0
lxc.mount.entry = /dev/loop4 dev/loop4 none bind,create=file 0 0
lxc.mount.entry = /dev/loop5 dev/loop5 none bind,create=file 0 0
lxc.mount.entry = /dev/loop6 dev/loop6 none bind,create=file 0 0
lxc.mount.entry = /dev/loop-control dev/loop-control none bind,create=file 0 0

После этого монтируется успешно, но это такое себе решение т.к. с хоста можно посмотреть на loop устройства.

Flotsky ★★
()
Ответ на: комментарий от Flotsky

Нашёл альтернативный вариант в виде создания loop устройств в самом контейнере, вместо проброса из с хоста (lxc.mount.entry)

host# lxc-attach -n my-container
container# cd /dev
container:/dev# mknod -m600 loop-control c 10 237
container:/dev# mknod -m660 loop0 b 7 0
...
container:/dev# mknod -m660 loop${X} b 7 ${X}

container:/dev# mount -o loop ...

Вот только с хоста всё ещё можно подсмотреть в loop устройства, если они смонтированы.

И логично, что не получится использовать в контейнере больше loop устройств, чем у хоста.

Flotsky ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.