ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Installer / kernel problems
@ 2000-12-25 19:58 Alexander Bokovoy
  2000-12-26  0:02 ` Dmitry V. Levin
  0 siblings, 1 reply; 3+ messages in thread
From: Alexander Bokovoy @ 2000-12-25 19:58 UTC (permalink / raw)
  To: devel

Доброго времени суток!

Хочу предложить красивое на мой взгляд решение для проблемы,
описанной мною в [BUG] kernel 2.2.18-ipl1mdk на уровне программы
установки.

Итак, смысл проблемы в том, что драйвер устройства, на котором
расположен раздел /, требуются ядру прямо в момент загрузки и
потому не могут быть прочитаны из /lib/modules/<kernel version>
Поскольку при установке системы никаких действий с устройством,
где _будет_ находится / не производится в момент старта установочного
диска, то программа установки в таких модулях не нуждается и
потому ядро для нее обычно минимализировано (в модули укладывается
все, что можно).

Однако по окончании установки драйвера всех найденных важных для
монтирования / устройств должны быть доступны ядру уже установленной
системы до монтирования /. Так вот, предлагаю устанавливать эти модули в
составе некоторого initrd, который вместе с системным загрузчиком и
ядром укладывается в /boot и прописывается в настройках загрузчика как
initrd=/boot/initrd В таком случае, все эти драйвера (а их, в принципе,
немного -- block, scsi, misc и то только те, которые собраны как модули)
будут "под рукой" для ядра в нужный момент и проблем,  подобных
возникшей, больше не будет.

Отрицательная сторона такого решения:

При самостоятельной пересборке пользователь вынужден будет собирать свой
initrd либо отключать установленный в настройках загрузчика. Правда в
этом случае скорее всего такой пользователь драйвер контроллера своего
диска вкомпилирует внутрь. С другой стороны, все это можно (и нужно)
документировать и, в частности, выводить на экран при первой загрузке
системы.

Комментарии?

Да, вот еще один момент в новом ядре:

make install вызывает arch/<ARCH>/boot/install.sh, который в Mandrake
представляет собой ссылку на /sbin/installkernel, который в свою очередь
является скриптом на перле. Так вот, вызов выглядит как

    sh -x ./install.sh 

и sh честно пытается этот скрипт разобрать как набор команд ему самому,
игнорируя указанный /usr/bin/perl в заголовке. Происходит это на
свежеустановленном Сизифе, обновленном до /incoming. 

Помогло:

mv /sbin/installkernel /sbin/installkernel.pl
cat <EOT >/sbin/installkernel
/usr/bin/perl /sbin/installkernel.pl $@
EOT

-- 
Sincerely yours, Alexander Bokovoy 
  The Midgard Project   | www.midgard-project.org |    Aurora R&D team 
Minsk Linux Users Group |    www.minsk-lug.net    |  www.aurora-linux.com  
   IPLabs Linux Team    |     linux.iplabs.ru     | Architecte Open Source
-- In the long run we are all dead.
		-- John Maynard Keynes
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] Installer / kernel problems
  2000-12-25 19:58 [devel] Installer / kernel problems Alexander Bokovoy
@ 2000-12-26  0:02 ` Dmitry V. Levin
  2000-12-26  6:14   ` Alexander Bokovoy
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry V. Levin @ 2000-12-26  0:02 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1775 bytes --]

On Mon, Dec 25, 2000 at 09:58:11PM +0200, Alexander Bokovoy wrote:
> Хочу предложить красивое на мой взгляд решение для проблемы,
> описанной мною в [BUG] kernel 2.2.18-ipl1mdk на уровне программы
> установки.

Либо я чего-то не понимаю в этом вопросе, либо есть стандартное решение -
initial ramdisk, на который автоматически помещаются все необходимые
драйвера. Так оно на photo работает.

Единственное уязвимое место здесь - скрипт /sbin/installkernel - чудовище,
написанное на перле, которому мы вынуждены доверять при установке ядра.
Возможно, оно не создает initrd, хотя и призвано делать это автоматически.

Ну и, конечно, тот perl-скрипт в инсталляторе, который делает аналогичную
работу.

> Да, вот еще один момент в новом ядре:
> 
> make install вызывает arch/<ARCH>/boot/install.sh, который в Mandrake
> представляет собой ссылку на /sbin/installkernel, который в свою очередь
> является скриптом на перле. Так вот, вызов выглядит как
> 
>     sh -x ./install.sh 
> 
> и sh честно пытается этот скрипт разобрать как набор команд ему самому,
> игнорируя указанный /usr/bin/perl в заголовке. Происходит это на
> свежеустановленном Сизифе, обновленном до /incoming. 

Странно, у меня никто не пытался запустить этот install.sh...

Разве что "make install" руками? Тогда надо вызов исправить на простой
./install.sh


Regards,
	Dmitry

+-------------------------------------------------------------------------+
Dmitry V. Levin     mailto://ldv@fandra.org
Software Engineer   PGP pubkey http://www.fandra.org/users/ldv/pgpkeys.html
IPLabs Linux Team   http://linux.iplabs.ru
Fandra Project      http://www.fandra.org
+-------------------------------------------------------------------------+
UNIX is user friendly. It's just very selective about who its friends are.

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] Installer / kernel problems
  2000-12-26  0:02 ` Dmitry V. Levin
@ 2000-12-26  6:14   ` Alexander Bokovoy
  0 siblings, 0 replies; 3+ messages in thread
From: Alexander Bokovoy @ 2000-12-26  6:14 UTC (permalink / raw)
  To: devel

On Tue, Dec 26, 2000 at 03:02:27AM +0300, Dmitry V. Levin wrote:
> On Mon, Dec 25, 2000 at 09:58:11PM +0200, Alexander Bokovoy wrote:
> > Хочу предложить красивое на мой взгляд решение для проблемы,
> > описанной мною в [BUG] kernel 2.2.18-ipl1mdk на уровне программы
> > установки.
> 
> Либо я чего-то не понимаю в этом вопросе, либо есть стандартное решение -
> initial ramdisk, на который автоматически помещаются все необходимые
> драйвера. Так оно на photo работает.
Да. Только вот этот самый initrd не создается программой установки и
при первой же загрузке после установки ядро благополучно уходит
в kernel panic. 

> 
> Единственное уязвимое место здесь - скрипт /sbin/installkernel - чудовище,
> написанное на перле, которому мы вынуждены доверять при установке ядра.
> Возможно, оно не создает initrd, хотя и призвано делать это автоматически.
> 
> Ну и, конечно, тот perl-скрипт в инсталляторе, который делает аналогичную
> работу.
> 
По всей видимости, в текущий момент времени это не работает, или работает
в зависимости от чего-то, но в режиме "Разработчик" и "Настроено" это "чего-то"
не появилось.

> > Да, вот еще один момент в новом ядре:
> > 
> > make install вызывает arch/<ARCH>/boot/install.sh, который в Mandrake
> > представляет собой ссылку на /sbin/installkernel, который в свою очередь
> > является скриптом на перле. Так вот, вызов выглядит как
> > 
> >     sh -x ./install.sh 
> > 
> > и sh честно пытается этот скрипт разобрать как набор команд ему самому,
> > игнорируя указанный /usr/bin/perl в заголовке. Происходит это на
> > свежеустановленном Сизифе, обновленном до /incoming. 
> 
> Странно, у меня никто не пытался запустить этот install.sh...
> 
> Разве что "make install" руками? Тогда надо вызов исправить на простой
> ./install.sh
Так ведь дело-то здесь в том, что этот вызов так же прописан и в обычном
ядре, соответственно, если кто-то будет собирать без помощи RPM (а такое
более чем возможно), да еще сам поставив новое скачанное ядро, то получит
тоже самое. Отсюда вывод -- править надо /sbin/installkernel.

-- 
Sincerely yours, Alexander Bokovoy 
  The Midgard Project   | www.midgard-project.org |    Aurora R&D team 
Minsk Linux Users Group |    www.minsk-lug.net    |  www.aurora-linux.com  
   IPLabs Linux Team    |     linux.iplabs.ru     | Architecte Open Source
-- Delta: We never make the same mistake three times.   -- David Letterman
_______________________________________________
Devel mailing list
Devel@linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2000-12-26  6:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-25 19:58 [devel] Installer / kernel problems Alexander Bokovoy
2000-12-26  0:02 ` Dmitry V. Levin
2000-12-26  6:14   ` Alexander Bokovoy

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/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 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git