Что такое концепция old_root в pivot_root?

Я не знаком с /dev/ram, но вы можете сделать что-то подобное с tmpfs и петлевыми устройствами:

mkdir /ramdisks
mount -t tmpfs tmpfs /ramdisks
dd if=/dev/zero of=/ramdisks/disk0 bs=1M count=100
losetup /dev/loop0 /ramdisks/disk0
mke2fs /dev/loop0
...
losetup -d /dev/loop0
rm /ramdisks/disk0
0
12.12.2019, 11:39
1 ответ

pivot_rootиспользуется при запуске системы -. Он был введен специально для облегчения перехода между исходной системой Linux в оперативной памяти и окончательной корневой файловой системой.

При загрузке Linux ядро ​​и исходная корневая файловая система загружаются в память загрузчиком. Загрузчик (, хранящийся в ПЗУ ), представляет собой небольшую программу, которая загружает систему Linux в ОЗУ, а затем запускает ядро.

В конце последовательности загрузки файловая система RAM монтируется как исходная корневая файловая система. Для этого есть две схемы: initrdи initramfs. Оба метода запускают ядро ​​из исходной корневой файловой системы.

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

Например, если корневая файловая система находится в NFS, ядро ​​должно сначала настроить сеть, получить информацию для доступа к общему ресурсу NFS, а затем смонтировать общий ресурс NFS.

Как только новый корень станет доступным,новый корень монтируется во временную точку монтирования и поворачивается на место с помощью pivot_root. Исходный корень может по-прежнему требоваться в течение короткого времени для сценариев, чтобы выполнить любые заключительные задачи очистки. После завершения любой очистки исходная корневая система размонтируется для освобождения памяти.

Подробнее см. Исходный RAM-диск Linux .

1
28.01.2020, 03:01

Теги

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