Я не знаком с /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
pivot_root
используется при запуске системы -. Он был введен специально для облегчения перехода между исходной системой Linux в оперативной памяти и окончательной корневой файловой системой.
При загрузке Linux ядро и исходная корневая файловая система загружаются в память загрузчиком. Загрузчик (, хранящийся в ПЗУ ), представляет собой небольшую программу, которая загружает систему Linux в ОЗУ, а затем запускает ядро.
В конце последовательности загрузки файловая система RAM монтируется как исходная корневая файловая система. Для этого есть две схемы: initrd
и initramfs
. Оба метода запускают ядро из исходной корневой файловой системы.
Ядро должно выполнить несколько заданий, чтобы создать окончательную корневую файловую систему. Для этого используются разные методы (, в зависимости от дистрибутива Linux ), но в основном ядро загружает аппаратные драйверы, необходимые для доступа к конечной корневой файловой системе.
Например, если корневая файловая система находится в NFS, ядро должно сначала настроить сеть, получить информацию для доступа к общему ресурсу NFS, а затем смонтировать общий ресурс NFS.
Как только новый корень станет доступным,новый корень монтируется во временную точку монтирования и поворачивается на место с помощью pivot_root
. Исходный корень может по-прежнему требоваться в течение короткого времени для сценариев, чтобы выполнить любые заключительные задачи очистки. После завершения любой очистки исходная корневая система размонтируется для освобождения памяти.
Подробнее см. Исходный RAM-диск Linux .