Я пытаюсь создать небольшой резервный раздел (около 800 МБ свободного места после всех других разделов системы и хранилища) для ноутбука со специализированным оборудованием, для которого требуются специальные модули ядра и ядра, такие как запасные инструменты восстановления, такие как Clonezilla Live и GParted Live. т работать очень хорошо. Раздел слишком мал, чтобы включать в себя модули и программное обеспечение, необходимые для того, что я хотел бы построить, поэтому большую часть системы необходимо сжать и загрузить в ОЗУ во время выполнения. Кроме того, я предпочитаю полностью извлекать систему, а не полагаться на кабачки, и хотелось бы иметь возможность сохранять внесенные в систему изменения настолько, насколько позволяет раздел. Используя Ubuntu 20.04 в качестве базовой системы, я разработал для этой цели следующую схему:
- После создания исходной системы в
chroot, создать и очистить папку /ОЗУ в качестве точки монтирования tmpfs для размещения распакованных системных и пользовательских файлов во время выполнения, переместите все папки с системными и пользовательскими файлами (дом,usr,вар,выбрать,и т.д, и т.д.) в /ОЗУ и замените каждый символической ссылкой на / баран / $ каталог. Компресс /ОЗУ как/ram.tar.gz и оставить специальные точки монтирования (разработчик, система ,бег ,температура, и процесс) а также ботинок один на rootfs. Удалить /ОЗУ/* и напишите rootfs на перегородку.
- При загрузке, после ядра и
initrd загружаются, предварительно монтируются rootfs, устанавливать tmpfs на /ОЗУ, затем извлеките содержимое /ram.tar.gz в /ОЗУ. Это должно произойти до rootfs заменяет initramfs как root, иначе rootfs не могу получить доступ к утилитам, необходимым для монтирования /ОЗУ и извлечь из сжатого архива.
- Устанавливать
rootfs и продолжить загрузку.
- При выключении резервное копирование
/ram.tar.gz как /ram.tar.gz.bak затем сжать измененный /ОЗУ в /ram.tar.gz. Это может быть достигнуто с помощью системад.
Очевидно, что на шаге 4 что-то может пойти не так, и поэтому шаг 2 должен включать целостность /ram.tar.gz и загрузите резервную копию, если это не удастся, но это всего лишь несколько дополнительных команд, которые нужно включить в initramfs-инструменты script и выходит за рамки моего вопроса, а именно:
Без изменения /usr/доля/initramfs-инструменты/инит, как создать скрипт в /etc/initramfs-инструменты/скрипты выполнить шаг 2? Команды должны быть достаточно простыми, т.к.
mount -t tmpfs -o $OPTIONS нет /ram
смола xvzf ram.tar.gz
Но я немного в недоумении, в какую папку включать скрипт (инициальная? локальная? верхняя? нижняя? предварительная установка?) и как работать с ПРЕДЗАПРОС заголовок в самом скрипте.