Make-initrd development discussion
 help / color / mirror / Atom feed
* 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