Тестим UIRD

Антон слил изменения из uird.next ветки в мастер. Чтоб UIRD не поделился на две несовместимых ветки. Там много изменений в т.ч. ломающих совместимость. У нас месяц до новой сборки чтоб все оттестить и починить :slight_smile:

Тестить нужно буквально все параметры начиная с основных, так как полностью переписана система передачи параметров в UIRD.

Совместимость сломалась в следующем месте. Раньше:

uird.from=/MagOS::/mount/point::opt1+opt2

Теперь:

uird.from=/MagOS::MNT=/mount/point::MNT_OPTS=opt1+opt2

Писать больше, зато ошибочное определение того где точка монтирования, а где опции исключено. Также это позволило передавать дополнительные параметры.

    uird.from=/MagOS::TIMEOUT=2::FORCE=yes 

(указание force фигурными скобками тоже работает, оставил для совместимости)

uird.changes=/MagOS-Data/my.img::FS=btrfs::SIZE=2048::MNT_OPTS=compress=lzo

В случае отсутствия файла для сохранений - будет создан с такими параметрами. Если есть, то параметры будут проигнорированы.

uird.changes=/memory/my.img::FS=btrfs::SIZE=2048::MNT_OPTS=discard+compress=lzo

Это changes в файл btrfs со сжатием в RAM. (идея stea.61)

Упразнен параметр uird.sgnfile. Теперь так:

uird.from=/MagOS::SGN=/MagOS.sgn 

(думаю для хомяка тоже сработает)

UIRD тeпереь работает с LUKS разделами. Никаких дополнительных параметров не требуется.

    uird.from=/dev/sda1/MagOS;/MagOS-Data

/dev/sda1 здесь LUKS, при его подключении UIRD спросит пароль. Без указания раздела (метки или UUID) нельзя, LUKS разделы пропускаются при поиске. Если второй источник на том же разделе второй раз указывать раздел не надо, найдет сам. Как в примере.
Подключать LUKS’ы можно и по ключу. Ключ при этом может быть как “вшитый” в UIRD, так и лежать на любом диске. На флешке например. Синтаксис такой:

    uird.from=/dev/sda1/MagOS::KEY=/my.key

Поиск начинается с UIRD, если там нет то ищет как обычно ищет файлы UIRD. Чтоб ключ попал в UIRD нужно перед сборкой положить его в папку keys в корне сборочной UIRD.

    uird.from=/dev/sda1/MagOS::KEY=/dev/sda2/my.key

Так тоже конечно можно.
LUKS аналогично uird.from должен работать для changes и home.

Немного изменена логика uird.break в качестве точек остановки теперь не специальные метки, а имена параметров uird. Метки сложно запоминать :), При первом поиске указанного параметра UIRD переходит в дебаг режим:

uird.break=uird.from

Когда ломается совместимость, это плохо(
Представляете, вы поставили систему кому-то в другом городе или даже в своём городе, но многим людям, которые вообще не разбираются в системе и после очередного обновления система не грузится или работает не так как задумано. Люди сделают вывод, что система глючная и репутацию это подпортит.
Обычно такие моменты, когда совестимость надо ломать, переносят на релиз новых платформ, тогда администратор будет готов к новым стандартам
Если всё сломается при обычном обновлении, то будет неприятный сюрприз. О таких вещах надо заранее предупреждать как минимум.

В общем виде все будет одинаково работать.

Только очень специфичное затронуло.
Можно запилить обратную совместимость, я думаю.

Конкретно - я долго размышлял насчет sgnfiles. Вот это место надо при новом подходе как то обратную совместимость вернуть.

Сломалось:

  • точка для моунт-бинда
  • параметры монтирования
  • сгн файлы

Точнее не сломалось, а синтаксис сменился. Что из этого важно обратносовместить :slight_smile: ?

я для своей рабочей системы использую sgn файлы для MagOS и MagOS-Data
в сборочных установках, на которых собираю, использую from (from=MagOS_2016.64)
но тут проблема не во мне, я могу быстро всё поменять. Проблема в пользователях, которым кто-то поставил систему в неизвестной конфигурации и обещанием её вечной жизни)
Сколько таких пользователей, я не знаю.

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

Можно сообщения выводить типа:
синтаксис бла-бла - устарел.
Можно сделать отключаемым по ключу в cmdline для проверки.
Если еще будут изменения также добавлять их в эту old_compatibility
Потом целиком функцию выкинем и все. Или наоборот включаемой сделаем.

Вроде не к месту, но я на своей сборке уже немного начал упрощать все
Допустим на флэшке я убрал папку MagOS-Data
Так как компы у меня слабые и флэшки не самые быстрые
И допустим, если сохранять в файл img или использовать режим uird.mode=changes uird.changes=changes на флэшке, то система “тянет”.
На работе тут один решил попробовать и принес флэшку ну … вероятно самую старую и самую ненужную. Так я туда едва все установил. А что бы работать в ней…
На разделе диска напротив устанавливаю MagOS с MagOS-Data
И, при запуске с флэшки режима uird.mode=changes, uird находит MagOS-Data на диске и загружает с него изменения для конкретного компа
Конечно надо что бы MagOS-Data был один и на флэшке отсутствовал

Может возложить исправление совместимости на /usr/lib/magos/os-config
В Магее допустим надо писать :
ADMUID=1000
В МагОС:
ADMUID=500

Пока возложил исправление совместимости на /MagOS/MagOS.ini (MagOS-Data на флэшке у меня нет )
Хорошо бы, в зависимости от дистра подгружался тот или иной /usr/lib/magos/os-config

Не об этом речь. У uird синтаксис сменился немного, после обновления магос есть вероятность, что у кого-то перестанет работать как было.

Готово.

1 лайк

Релизнул v2.2

1 лайк

Проверял :slight_smile: ?

Аналитически.

Надо практически хотябы без новых фишек проверить. Даже если параметры записаны постарому все равно разбор через новый механизм идет. Если ничего не отвалилось - уже не плохо.

Обновился до юбилейной сборки и уирд перестал находить источники. uird.from=LABEL@/MagOS,/MagOS-Data

О как, вроде тут ничего не должно было смениться. Чуть подробнее напиши что где.

Вот тоже так думал, а на деле с моей строкой не грузится. Без нее все нормально.

На другой системе сделано через uird.mounts и там нет проблем.

Проверил с меткой в uird.from. Все сработало. Нужны подробности чтоб понять где могло отвалиться.

На Магее betta3 все работает. Задавал :
uird.mounts=$UUID@/boot,MagOS