Автор Тема: Запуск Linux из каталога и(или) в RO режиме  (Прочитано 7441 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Местный
  • *****
  • Автор темы
  • Сообщений: 722
    • PuppyRus-Arch
Из каталога - т.е. на одном разделе винта несколько Linux
В RO режиме - т.е. в установленной системе ничего не изменяется. Изменения в верхнем слое AUFS (который может быть RAM, каталогом или файлом) - т.е. экспериментируем смело
Соответственно для AUFS нужно ядро с AUFS (в ubuntu и runtu такое). Linux - любой

Решение : rootaufs2
Сделано под Arch. Для других дистрибов нужно скопировать свой /lib/modules в любой Arch (Manjaro) и собрать initrd
Готовые initrd для runtu-xfce-16.04.3-amd64_20170806.iso. *fallback* - со всеми модулями ядра
initrd для runtu-xfce-18.04-amd64_20181018
Для прочих можно разобрать готовые initrd, заменить /lib/modules на взятые из своего рабочего initrd
Разборка свежих initrd ubuntu:
#!/bin/bash
#https://unix.stackexchange.com/questions/163346/why-is-it-that-my-initrd-only-has-one-directory-namely-kernel
 target=$1
 offset=$(binwalk -y gzip $1 | awk '$3 ~ /gzip/ { print $1; exit }')
    shift
    dd if=$target bs=$offset skip=1 | zcat | cpio -id --no-absolute-filenames $@

Параметры загрузки ядра : root=/dev/sda1 ro rootdir=dirname changes quiet init=/lib/systemd/systemd
root=/dev/sda1 - раздел с дистрибом (обязятельный)
ro - можно rw или потом перемонтировать
rootdir=dirname - каталог с корнем дистриба (не обязятельный)
changes - без параметров - изменения в RAM (можно использовать каталог или файл)

Этот же функционал + еще куча наворотов есть и в UIRD. Он собирается через dracut в любом линуксе.

Кто не осилил вышеописанное - любую ubuntu можно тестировать так. Возможностей меньше, но зато все родное, из коробки
Или так
« Последнее редактирование: Ноябрь 15, 2018, 09:57:19 от sfs »

Оффлайн sfs

  • Местный
  • *****
  • Автор темы
  • Сообщений: 722
    • PuppyRus-Arch
Re: Запуск Linux из каталога и(или) в RO режиме
« Ответ #1 : Май 10, 2018, 10:25:54 »
Т.к. Runtu LITE 18.04 проходит путь тестирования - описанный выше метод поможет копированием нескольких файлов установить дистр на раздел с имеющимся рабочим линуксом (или виндой) и провести любые эксперименты , не боясь ничего испортить

Оффлайн RoDoN

  • Постоялец
  • ***
  • Сообщений: 242
Re: Запуск Linux из каталога и(или) в RO режиме
« Ответ #2 : Май 10, 2018, 12:12:58 »
Для других дистрибов нужно скопировать свой /lib/modules в любой Arch (Manjaro) и собрать initrd
Можно это подробнее разжевать, что и как именно сделать?
У меня на одном разделе в разных каталогах установлены PRA, Manjaro, Runtu 16.04 XFCE и Runtu 18.04 Lite, очень удобно, но только один нюансик - все установленные таким образом оси работают только с ядрами от PRA, что не айс.
Хотелось бы собрать initrd для загрузки из каталога Runtu на родном ядре.
Lenovo G500 (i3-3110M, 8 Гб, Intel + Radeon HD 8570)
Runtu 18.04->20.04->22.04 x64 XFCE

Оффлайн sfs

  • Местный
  • *****
  • Автор темы
  • Сообщений: 722
    • PuppyRus-Arch
Re: Запуск Linux из каталога и(или) в RO режиме
« Ответ #3 : Май 10, 2018, 13:56:33 »
Чтобы не заморачиваться с Арчем, наверное , самое простое будет :
1. Распаковать initrd-uxrx-4.10.cpio.xz  
2. Распаковать initrd-runtu (родной). Хоть он и называется initrd.lz - внутри gz
3. Удалить в initrd-uxrx каталог /usr/lib/modules/4.10* и переписать на его место из initrd-runtu каталог /lib/modules/*
4. Упаковать initrd-uxrx
5. Подправить grub2
Если дистр не загрузится - в п.4 взять /lib/modules/ из корня самого дистрибутива
После каждого автообновления ядра процедуру нужно будет повторять. Ну или не удалять использованное в initrd-uxrx ядро

У кого получится - выложите initrd-uxrx для     Runtu LITE 18.04 - 20180404 beta
У кого не получится - помогу
Может и в исо (хотя бы не релизы) имеет смысл включить. Чтобы увеличить число тестеров

Если автообновляемых дистров установлено много и все нужны - пожалуй проще для всех использовать ядро от PRA (i686 x86_64)
В него мололитно вкомпилены модули для загрузки с винта,флэшки , сд. Поэтому modules в initrd ему не нужен и, соответственно, пересобирать initrd не надо
При желании обновиться - брать более свежее vmlinuz* и 000-kernel*.pfs из PRA
В разных дистрах модули ядра в /lib/modules или в /usr/lib/modules - т.е. сделать симлинк
« Последнее редактирование: Май 10, 2018, 14:03:15 от sfs »

Оффлайн sfs

  • Местный
  • *****
  • Автор темы
  • Сообщений: 722
    • PuppyRus-Arch
Re: Запуск Linux из каталога и(или) в RO режиме
« Ответ #4 : Ноябрь 15, 2018, 09:55:58 »
Добавил в шапку скрипт Разборка свежих initrd ubuntu и initrd для runtu-xfce-18.04-amd64_20181018