* Re: [make-initrd] make-initrd
@ 2020-01-16 9:49 ` Alexey Gladkov
2020-01-18 10:11 ` Александр Шеметов
0 siblings, 1 reply; 8+ messages in thread
From: Alexey Gladkov @ 2020-01-16 9:49 UTC (permalink / raw)
To: Александр
Шеметов
Cc: make-initrd
On Wed, Jan 15, 2020 at 10:51:59PM +0500, Александр Шеметов wrote:
> Доброго времени суток.
> Увидел Ваши контакты к пакету make-initrd, решил Вас потревожить.
> Дело в том, что у меня есть необходимость запускать развёрнутую систему
> ALT Linux из *.img образа да ещё и этот образ должен лежать на раздела с NTFS.
> Подобное в других дистрибутивах решается, либо добавлением в initramfs некоторого скрипта,
> как тут http://www.opopop.net/booting_linux_from_a_loop_file_system/, либо с использованием
> dracut https://github.com/rgcjonas/dracut-ntfsloop
make-initrd устроен иначе чем dracut и его скрипты не будут работать с
make-initrd.
> Хочу спросить, на данный момент штатными средствами make-initrd подобное возможно ?
На данный момент нет. Поддержку такой схемы загрузки нужно добавлять.
> Хотелось бы почитать об этом, но к сожалению никакой документации по make-initrd
> найти не удаётся. Не могли бы Вы подсказать её расположение ?
Документация находится здесь.
https://github.com/legionus/make-initrd/tree/master/docs
> Заранее благодарю за ответ.
>
> --
> С уважением,
> Александр Шеметов
>
--
Rgrds, legion
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-16 9:49 ` [make-initrd] make-initrd Alexey Gladkov
@ 2020-01-18 10:11 ` Александр Шеметов
2020-01-18 11:33 ` Alexey Gladkov
0 siblings, 1 reply; 8+ messages in thread
From: Александр Шеметов @ 2020-01-18 10:11 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: make-initrd
> На данный момент нет. Поддержку такой схемы загрузки нужно добавлять.
Прошу уточнить, механизм загрузки ОС из развёрнутого образа не реализован
в принципе или проблема только при использовании раздела на NTFS ?
--
С уважением,
Александр Шеметов
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-18 10:11 ` Александр Шеметов
@ 2020-01-18 11:33 ` Alexey Gladkov
2020-01-18 15:41 ` Александр Шеметов
0 siblings, 1 reply; 8+ messages in thread
From: Alexey Gladkov @ 2020-01-18 11:33 UTC (permalink / raw)
To: Александр
Шеметов
Cc: make-initrd
On Sat, Jan 18, 2020 at 03:11:55PM +0500, Александр Шеметов wrote:
> > На данный момент нет. Поддержку такой схемы загрузки нужно добавлять.
>
> Прошу уточнить, механизм загрузки ОС из развёрнутого образа не реализован
> в принципе или проблема только при использовании раздела на NTFS ?
Скорее первое.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-18 11:33 ` Alexey Gladkov
@ 2020-01-18 15:41 ` Александр Шеметов
2020-01-18 18:44 ` Alexey Gladkov
0 siblings, 1 reply; 8+ messages in thread
From: Александр Шеметов @ 2020-01-18 15:41 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: make-initrd
> Скорее первое.
Хм, возможно скажу глупость, но ведь на установочных образах работает
такой вариант, я проверял его лично
https://forum.altlinux.org/index.php?topic=34690.msg256186#msg256186
А из снятого образа уже развёрнутой ОС мне не удаётся запустить систему.
Я проваливаюсь в rdshell и дальше ничего сделать не удаётся,
подключить root не могу, так как каталог /dev/disk/ вообще отсутствует.
К чему интересуюсь, может быть я элементарно что-то упускаю и на самом
деле такой вариант работает.
У кого-то наверняка был опыт и попытки провернуть такую же схему
загрузки ОС, не уж то я первооткрыватель...
--
С уважением,
Александр Шеметов
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-18 15:41 ` Александр Шеметов
@ 2020-01-18 18:44 ` Alexey Gladkov
2020-01-21 13:52 ` Александр Шеметов
0 siblings, 1 reply; 8+ messages in thread
From: Alexey Gladkov @ 2020-01-18 18:44 UTC (permalink / raw)
To: Александр
Шеметов
Cc: make-initrd
On Sat, Jan 18, 2020 at 08:41:46PM +0500, Александр Шеметов wrote:
> > Скорее первое.
>
> Хм, возможно скажу глупость, но ведь на установочных образах работает
> такой вариант, я проверял его лично
> https://forum.altlinux.org/index.php?topic=34690.msg256186#msg256186
Потому что там работает propagator. Это не совсем initrd.
> А из снятого образа уже развёрнутой ОС мне не удаётся запустить систему.
> Я проваливаюсь в rdshell и дальше ничего сделать не удаётся,
> подключить root не могу, так как каталог /dev/disk/ вообще отсутствует.
>
> К чему интересуюсь, может быть я элементарно что-то упускаю и на самом
> деле такой вариант работает.
Мне не известны примеры таких установок.
> У кого-то наверняка был опыт и попытки провернуть такую же схему
> загрузки ОС, не уж то я первооткрыватель...
Вы как минимум первый кто захотел это сделать в альтлинуксе.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-18 18:44 ` Alexey Gladkov
@ 2020-01-21 13:52 ` Александр Шеметов
2020-01-22 15:32 ` Александр Шеметов
0 siblings, 1 reply; 8+ messages in thread
From: Александр Шеметов @ 2020-01-21 13:52 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: make-initrd
>> А из снятого образа уже развёрнутой ОС мне не удаётся запустить систему.
>> Я проваливаюсь в rdshell и дальше ничего сделать не удаётся,
>> подключить root не могу, так как каталог /dev/disk/ вообще отсутствует.
Проблема решилась добавлением модуля ata_generic и ряда прочих.
Полный список можно глянуть, загрузив обычную систему в rdshell.
Соответственно добавляем модули в MODULES_PRELOAD += ...
и пересобираем initrd.
> Вы как минимум первый кто захотел это сделать в альтлинуксе.
Значит будем копать дальше... :)
Снова вернусь к ссылке http://www.opopop.net/booting_linux_from_a_loop_file_system/
Там предлагается использовать такой скрипт:
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
modprobe -k ntfs
mount -n -t ntfs -o nodiratime,noatime ${ROOT} ${rootmnt}2
modprobe -k loop
mount -n -t ext2 -o loop ${rootmnt}2${loop} ${rootmnt}
Насколько я могу понять, здесь прерывается штатный premount корня
и вместо него монтируется как раз система из образа.
На системах Base ALT в таком виде скрипт конечно же не работает.
В связи с этим задам вопрос, так как пока дальше самостоятельно
продвинуться не выходит, -- как можно прервать штатный premount
и передать управление моему скрипту ?
Сейчас в корень принудительно монтируется раздел NTFS,
на котором лежит сам образ с системой.
PS. Да, и вот это немного мешает тестам на p9
https://bugzilla.altlinux.org/show_bug.cgi?id=37254
Спасибо, что исправили.
--
С уважением,
Александр Шеметов
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-21 13:52 ` Александр Шеметов
@ 2020-01-22 15:32 ` Александр Шеметов
2020-01-23 6:37 ` Александр Шеметов
0 siblings, 1 reply; 8+ messages in thread
From: Александр Шеметов @ 2020-01-22 15:32 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: make-initrd
Удалось продвинуться в моём вопросе.
Потребовалось привести файл /etc/initrd.mk к содержимому:
# trying to detect modules and features to access to root volume
AUTODETECT = all
MODULES_PRELOAD += autofs4 fuse ntfs ata_generic scsi_mod ahci ata_piix pata_acpi sd_mod jbd2 mbcache crc16 ext4
MODULES_ADD += fuse ntfs ata_generic scsi_mod ahci ata_piix pata_acpi sd_mod jbd2 mbcache crc16 ext4
FEATURES += plymouth
Затем создать файл /usr/share/make-initrd/data/etc/rc.d/init.d/looproot со следующим содержимым:
#!/bin/sh
### BEGIN INIT INFO
# Provides: mount loop root
# Required-Start: modules
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop:
# Short-Description: Mount loop file system
# Description: Mount loop file system
### END INIT INFO
. /.initrd/initenv
export looproot=/looproot
mkdir -p /looproot
mount -n -t ntfs -o nodiratime,noatime ${ROOT} ${looproot}
mount -n -t ext4 -o loop ${looproot}/basealt.img ${rootmnt}
После этого система начинает стартовать из образа, но не запускается.
При запуске сервисов вижу первую ошибку:
[FAILED] Failed to start Remount Root and Kernel File Systems.
See 'systemctl status systemd-remount-fs.service' for details.
Далее присутствует ряд других. Создаётся впечатление, что /root
смонтировался в ro. Всё это происходит, вероятно, в момент
перемонтирования /root. Могу только видеть сообщения на
12 консоли, на остальных отсутствует приглашение ввода.
Может подскажите, куда посмотреть, чтобы решить ?
Заранее спасибо.
--
С уважением,
Александр Шеметов
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [make-initrd] make-initrd
2020-01-22 15:32 ` Александр Шеметов
@ 2020-01-23 6:37 ` Александр Шеметов
0 siblings, 0 replies; 8+ messages in thread
From: Александр Шеметов @ 2020-01-23 6:37 UTC (permalink / raw)
To: Alexey Gladkov; +Cc: make-initrd
Удалось всё-таки запустить систему, но только когда образ лежит
на разделе с ext4.
С разделами на ntfs странная история, похоже полноценной
поддержки fuse в initrd попросту нет, а имеющийся ntfs.ko монтирует
раздел в режиме readonly. Так, при подключении раздела ntfs
с помощью fuse и последующим монтированием с него образа
развёрнутой системы в /root, ядро падает в kernel panic при попытке
выполнить init.
Возможно ли это исправить ? Потому что в других дистрибутивах,
отличный от BaseALT, такой проблемы нет.
Готов предоставить больше сведений.
Заранее спасибо.
--
С уважением,
Александр Шеметов
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-01-23 6:37 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-16 9:49 ` [make-initrd] make-initrd Alexey Gladkov
2020-01-18 10:11 ` Александр Шеметов
2020-01-18 11:33 ` Alexey Gladkov
2020-01-18 15:41 ` Александр Шеметов
2020-01-18 18:44 ` Alexey Gladkov
2020-01-21 13:52 ` Александр Шеметов
2020-01-22 15:32 ` Александр Шеметов
2020-01-23 6:37 ` Александр Шеметов
Make-initrd development discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
public-inbox-index make-initrd
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.make-initrd
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git