Не удалось смонтировать proc/dev после Pivot_root.Linux

Anonymous
Не удалось смонтировать proc/dev после Pivot_root.

Сообщение Anonymous »

Когда я выставляю proc и dev после Pivot_root, он сообщает о проблеме с разрешениями. Этот процесс является дочерним процессом, созданным клоном.

Код: Выделить всё

mount(
None::,
"/",
None::,
MsFlags::empty()
.union(MsFlags::MS_REC)
.union(MsFlags::MS_PRIVATE),
None::,
)?;

// Ensure that 'new_root' is a mount point.
mount(
Some(rootfs.as_str()),
rootfs.as_str(),
None::,
MsFlags::MS_BIND,
None::,
)?;

pivot_root(rootfs.as_str(), rootfs.as_str())?;

tracing::debug!("Detach the rootfs from parent system.");
mount(
None::,
"/",
None::,
MsFlags::MS_SLAVE | MsFlags::MS_REC,
None::,
)?;
umount2("/", MntFlags::MNT_DETACH)?;

tracing::debug!("Try to mout /proc by ", getuid());
mount(
Some("proc"),
"/proc",
Some("proc"),
MsFlags::empty()
.union(MsFlags::MS_NOEXEC)
.union(MsFlags::MS_NODEV)
.union(MsFlags::MS_NOSUID),
None::,
)?;
tracing::debug!("Try to mout /dev by ", getuid());
mount(
Some("tmpfs"),
"/dev",
Some("tmpfs"),
MsFlags::empty()
.union(MsFlags::MS_STRICTATIME)
.union(MsFlags::MS_NOSUID),
Some("mode=0755"),
)?;

Вот результат примера:

Код: Выделить всё

2024-10-16T07:35:58.034543Z DEBUG chariot::cmd::runc: Try to mout /proc by 
2024-10-16T07:35:58.034595Z ERROR chariot::cmd::runc: Failed to run container: EPERM: Operation not permitted
Ссылка: https://github.com/openbce/chariot/blob ... mod.rs#L86


Подробнее здесь: https://stackoverflow.com/questions/790 ... pivot-root

Вернуться в «Linux»