Как использовать/тестировать pivot_root?

Проблемы с удаленным inodes обычно могут решаться только с файловой системой, проверяют устройство umounted:

e2fsck -f /dev/sda1

Как сказанный Hauke, самый легкий способ выполнить проверки в umounted файловых системах через Живой носитель.

7
22.07.2018, 06:19
2 ответа

Вы действительно уверены, что корень архива находится в отдельной файловой системе, которую можно монтировать и размонтировать?

pivot_root , а также более современная switch_root , работает путем манипулирования информацией о смонтированных файловых системах в ядре.

Новая корневая файловая система должна быть «корнем» файловой системы, вы не можете передать ее ». как новый корень, если только "." это корневой каталог смонтированной файловой системы.

Я считаю, что самый простой способ, если вы хотите попробовать pivot_root из текущей настройки (при условии, что корень архива является подкаталогом, а не корневым каталогом), это создать файловую систему tmpfs чтобы переключиться, и скопируйте туда необходимые данные.

Что-то вроде этих строк может помочь вам начать: (настройте 500M, чтобы соответствовать du -sh arch-root )

mkdir /ramroot
mount -n -t tmpfs -o size=500M none /ramroot
cd arch-root # (containing the root filesystem contents)
find . -depth -xdev -print | cpio -pd --quiet /ramroot
cd /ramroot
mkdir oldroot
pivot_root . oldroot
exec chroot . bin/sh
4
27.01.2020, 20:18

С страницы Я считаю, что это ваша проблема:

The following restrictions apply to new_root and put_old:

- They must be directories.

- new_root and put_old must not be on the same file system as the current
root.

- put_old must be underneath new_root, that is, adding a nonzero number of
/.. to the string pointed to by put_old must yield the same directory as
new_root.

- No other file system may be mounted on put_old.

Согласно вышеуказанной той же файловой системе нельзя использовать как для Put_Old , так и new_root .

Ссылки

2
27.01.2020, 20:18

Теги

Похожие вопросы