LINUX.ORG.RU

Поместить систему полностью в RAM

 , system in ram,


0

0

Скрипт:

#!/bin/sh
A="$@"
echo -e "\n\n\n\tinit options: $A\n\n\t\tMoving / to RAM...\n"
bin/mount -t tmpfs tmpfs =
bin/tar -cp --acls --same-owner --no-seek --selinux --xattrs --exclude={=/*,run/*,tmp/*} .|bin/tar --acls --same-owner --selinux --xattrs -pSxC =
cd =
bin/sed -i -r 's/^\S+\s+\/\s/tmpfs \/ tmpfs defaults 0 0/' etc/fstab
bin/sed -i -r 's/^\/dev\/root\/s+\/\s+ext4/d' etc/mtab
sbin/pivot_root . =
cd /
exec bin/chroot . bin/sh -c "bin/umount =;exec sbin/init \"$A\""
Создал в корне каталог = для монтирования tmpfs. В строке параметров запуска ядра конфига загрузчика — init=/i.


Мой корень размером 2G с ноутбучного SATA копируется ровно две минуты.
Пробовал rsync'ом с ключами -ADEgHhIloprSstWX — 4 м. 50 с.
Может кто-то подскажет что-то по ускорению процесса загрузки.

UPD:

Похоже моя проблема решилась. Просто убрал /dev, /sys, /proc, /run из exclude= tar'а.
Как проверить правильность примонтирования этих директорий к новому / в tmpfs?
Почему вообще это убирание их из exclude'а изменило ситуацию? Раньше не показывался ход загрузки OpenRC.

★★★★★

Последнее исправление: teod0r (всего исправлений: 21)

Ответ на: комментарий от teod0r

ну оно в процессе не очень всё работает. Обычно в /etc/mtab (или ещё где) есть строчка sysfs /sys sysfs rw 0 0, а если её нет, то mount пишет «не смонтировано». Вот как ls реагирует — затрудняюсь сказать. Но насколько я знаю, sys настолько прочно прибита к ядру, что она всегда есть(в отличие от proc, который можно оторвать)

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.