jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
Скачать Выполняет поиск файлов с расширением sfs в каталоге /bootsfs При наличии файла /boot/loopsfs.cfg передает в него управление. По сути это тот же autoiso. Предыстория. Как-то зацепился за мысль, что распространение сборок Linux в формате iso образов избыточно на данный момент и только добавляет проблем. iso-хи были актуальны во времена оптических дисков и со временем адаптировались для работы на флешках. Копируя образ на флешку (dd if of), мы получаем аналог CD/DVD, теряя всю информацию на носителе. Позже появились костыли для загрузки iso из файловой системы. autoiso тому пример. Идея. Избавиться от лишнего слоя. На всех iso с linux имеется файл с корневой файловой системой сжатой squashfs. Почему бы не распространять сборки сразу в sfs, избавляясь от лишней работы с загрузчиком, перепаковки в iso и немного выигрывая в размере? Все это можно было реализовать прямо в autoiso. Но решил разделить сущности. Использование. 1. Рядом с вашим grub.cfg создаем каталог autosfs закидываем в него autosfs.cfg 2. Для запуска используем строку в ваше grub.cfg, исправляя путь до конфига на свой, если отличается. 3. На любом разделе создаем каталог /bootsfs4. Кладем в него squashfs образ с операционкой. Обязательно с расширением sfs 5. Пользуемся Тестовый образ: rx-20-06-06-1 .sfs Логин/пароль: user/123 root/321 Сегодняшний Арч с крысой, лисой, софтом для работы с диском и всем что в голову пришло. 2020.06.07 loopsfs.cfg Конфиг применяется в качестве метки того, что sfs контейнер является загрузочным. При передаче управления в него передаются две переменные для корректного обнаружения системой sfs контейнера: $sfs_dev - хранит номер диска,раздела в формате GRUB (hd1,gpt5) $sfs_path - путь до контейнера (/bootsfs/rx-20-06-06-1.sfs) Переменная $root настраивается на корень текущего контейнера. Пример loopsfs.cfg из тестового образа.
dracut В тестовом образе решил отказаться от mkinitcio в пользу dracut. Не буду сейчас углубляться в причины этого. Мне просто так проще было. Dracut настроен в соответствии со статьей в Вики для автоматического обновления initram образа. /usr/local/bin/dracut-install.sh приведен к следующему виду За загрузку из sfs образа отвечает модуль dmsquash-live.Модуль dmsquash-live-ntfs добавляет поддержку загрузки из ntfs разделов. Но сам пока не тестировал. Остальное - мелкие оптимизации. Основные параметры ядра. root - указывает не на корень в привычном смысле, а на раздел в котором необходимо искать файл. rd.live.dir - каталог в котором находится файл-контейнер. rd.live.squashimg - имя файла. rd.live.image - указатель для происка корневой фс в файле. rd.live.ram=1 - загрузка контейнера в оперативную память. Не все идеально конечно в этом модуле. Но, если вдруг захочу перейти на использование sfs в качестве основной системы, все равно буду писать свой модуль для выполнения специфических задач.
Lupus pilum mutat, non mentem.
|
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
Установил во временный корень базовую систему, сжал в sfs. Далее по стартовому посту:
Перезагружаюсь, выбраю autosfs. Меню граба на секунду пропадает, появляется вновь и всё.Беру sfs из рабочего archiso: Результат тот же.Беру "пример образа": Без изменений.Переношу в корень с системой:
Точно так же.ЧЯДНТ? |
jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
Образ должен содержать внутри файл айл /boot/loopsfs.cfg Аналог loopback.cfg Вечером распишу подробности про него. В моем образе он есть. Так же инит должен уметь грузиться из sfs. Нужно либо использовать хуки archiso, либо я использую в пример dracut с его модулями. Тоже распишу подробно. В данном случае возможно имеют место проблемы с переменной config_directory Попробуй прописать полный путь для конфига. Если нет,будем думать
Lupus pilum mutat, non mentem.
|
jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
И граб пока не работает с zstd сжатием в sfs. Пока использую xz
Lupus pilum mutat, non mentem.
|
valera_cr |
|
Темы:
1
Сообщения:
418
Участник с: 12 января 2013
|
Aivar Тоже самое . Исправил на :
|
Slav164 |
|
Темы:
3
Сообщения:
150
Участник с: 15 сентября 2016
|
AivarЕсли /autosfs/autosfs.cfg создавался /boot/grug то здесь ошибка. submenu "autosfs" { configfile "${config_directory}"/boot/grub/autosfs/autosfs.cfg |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
jim945Так процесс пошел, даже крыса стартанула. Пока думаю что делать дальше. jim945Зачем так категорично? У мну флешка с грабом и двумя разделами: exfat и f2fs, на котором несколько исошек. И волки сыты и овцы целки. jim945Я так понял, если sfs-файлов несколько, то в меню отобразятся все. Правильно? |
jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
AivarДа. При условии, что в них есть /boot/loopsfs.cfg AivarЭто просто тестовый образ с чистым арчем. Из отличий: Dracut в качестве инита, плюс минимально подстроил оформление в крысе. Работает до перезагрузки. Но в образе есть набросок скрипта для пересборки. Можете пользоваться системой. Обновлять, настраивать, удалять, устанавливать что-то. Короче как обычно. Для пересборки образа запускаете команду. Где ИМЯ - название нового файла образа без расширения (.sfs добавится автоматически).Новый файл будет сохранен рядом с текущим запущенным в вашем /bootsfs. Главное чтобы ИМЯ отличалось от существующих. Иначе они перезапишутся без вопросов.
Lupus pilum mutat, non mentem.
|
jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
Slav164Исправил. Да. Проблема с переменной ${config_directory}. Она хранит путь до каталога из которого запущен конфиг. Мне нравится ей пользоваться. Но блин. Не у всех и не всегда она корректно работает.
Lupus pilum mutat, non mentem.
|
jim945 |
|
Темы:
8
Сообщения:
3066
Участник с: 25 января 2010
|
Оформлю все тонкости в стартовом посте. Нужно только время выделить, а не на бегу. Постараюсь хотя бы частями расписывать.
Lupus pilum mutat, non mentem.
|