Не удалось смонтировать 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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