Знали, что можно экспериментировать с mount, вообще не затрагивая основную систему?
Обычно любые операции с mount сразу становятся видны всем процессам в текущем пространстве монтирования. Если случайно смонтировать файловую систему, сделать bind mount или изменить параметры монтирования, изменения увидят и остальные процессы хоста.
Но Linux позволяет создать собственный mount namespace:
sudo unshare --mount --fork bash
Для большинства операций потребуется root (или CAP_SYS_ADMIN).
Новая оболочка получает собственное пространство монтирования. Любые последующие mount, umount и mount --bind будут видны только внутри неё.
Например:
bash id="t8n5wy"
mount -t tmpfs tmpfs /mnt
touch /mnt/test
ls /mnt
Или можно проверить сложный сценарий с bind mount, не опасаясь затронуть основную систему:
mount --bind ./build /usr/local/bin
# Проверяем сценарий...
Когда завершается последний процесс в этом namespace, он автоматически уничтожается вместе со всеми своими mount'ами. Никакой ручной очистки не требуется.
🔥 Если нужно безопасно проверить сложные операции с монтированием или воспроизвести окружение без виртуальной машины и контейнера — unshare --mount является одним из самых удобных инструментов Linux.
🚪 Linux Ready | #совет
Обычно любые операции с mount сразу становятся видны всем процессам в текущем пространстве монтирования. Если случайно смонтировать файловую систему, сделать bind mount или изменить параметры монтирования, изменения увидят и остальные процессы хоста.
Но Linux позволяет создать собственный mount namespace:
sudo unshare --mount --fork bash
Для большинства операций потребуется root (или CAP_SYS_ADMIN).
Новая оболочка получает собственное пространство монтирования. Любые последующие mount, umount и mount --bind будут видны только внутри неё.
Например:
bash id="t8n5wy"
mount -t tmpfs tmpfs /mnt
touch /mnt/test
ls /mnt
Или можно проверить сложный сценарий с bind mount, не опасаясь затронуть основную систему:
mount --bind ./build /usr/local/bin
# Проверяем сценарий...
Когда завершается последний процесс в этом namespace, он автоматически уничтожается вместе со всеми своими mount'ами. Никакой ручной очистки не требуется.
🔥 Если нужно безопасно проверить сложные операции с монтированием или воспроизвести окружение без виртуальной машины и контейнера — unshare --mount является одним из самых удобных инструментов Linux.
🚪 Linux Ready | #совет