Доступ к нижнему монтированию оверлейного корня fs
Я использую линукс overlay
fs как корневая файловая система, чтобы сохранить реальный корневой раздел только для чтения и записывать изменения в другой fs (например, tmpfs или другой раздел).
Тем не менее, когда корневая файловая система, наконец, на месте (после 'pivot root'), оригинальные монтируются (скажем, в /dev/sda
в /mnt/root-write-protected
) скрыт в исходном корне (например, init ramdisk), но все еще активно подключен. Тем не менее, он больше не виден внутри корневой файловой системы, и исходное устройство не может быть снова смонтировано в режиме записи, так как mount
говорит:
mount: /dev/sda is already mounted
несмотря на отсутствие записи в списке mount
или же cat /etc/mtab
,
Как я могу получить доступ (например, чтение из, перемонтировать) к этому скрытому монтированию?
2 ответа
До того, как произойдет корень, mount --bind
файловая система в место, куда вы сможете добраться.
Например:
- гора
sda2
на/mnt/root-write-protected
, - Смонтировать накладки на
/mnt/new-root
, - Добавленный шаг: Bind
/mnt/root-write-protected
на/mnt/new-root/raw-disk
, - Поворот в
/mnt/new-root
, - Теперь у вас есть
sda2
доступны на/raw-disk
,
Поскольку оригинальное крепление «похоронено»pivot_root
илиchange_root
, его нельзя перемонтировать как записываемое устройство. Однако этот том можно использовать в качестве исходного файла для шлейфового устройства. Его можно смонтировать как обычно и использовать для доступа на запись. После внесения изменений в это устройство систему следует перезагрузить, так как оверлей не соответствует реальным данным на диске.
Нравиться:
sudo mkdir /mnt/hidden_root
sudo losetup -f /dev/sda2 # change to your overlayed root volume
sudo mount /dev/loop0 /mnt/hidden_root # change loop0 if already used before
# ... do changes to /mnt/hidden_root here ...
sudo reboot
После перезагрузки изменения применяются к живому root.