ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
@ 2006-03-09  6:03 Eugene Prokopiev
  2006-03-10  9:14 ` Eugene Prokopiev
  0 siblings, 1 reply; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-09  6:03 UTC (permalink / raw)
  To: Sisyphus

Здравствуйте!

А как узнать, какие модули по минимуму требуется положить в initrd для 
ядра 2.6.14-std26-up-alt5, чтобы получить в нем поддержку LVM/LVM2/EVMS?

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-09  6:03 [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5 Eugene Prokopiev
@ 2006-03-10  9:14 ` Eugene Prokopiev
  2006-03-10  9:50   ` Eugene Prokopiev
  2006-03-10  9:58   ` Sergey Vlasov
  0 siblings, 2 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-10  9:14 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Половину своей задачи я решил: в initrd все инициализируется правильно, 
но вот переключиться из initrd в настоящую систему я не могу.

Что я сейчас имею: ALM 2.4 + updates + некоторые backports + kernel 
2.6.14-std26-up-alt5 из Сизифа

Содержимое initrd:

# find ./
./
./etc
./dev
./dev/mapper
./dev/system
./dev/console
./dev/null
./dev/ram
./dev/systty
./dev/tty1
./dev/urandom
./dev/md0
./dev/md255
./dev/md1
./initroot
./loopfs
./sys
./proc
./bin
./bin/echo
./bin/insmod
./bin/losetup
./bin/modprobe
./bin/mount
./bin/sh
./bin/test
./bin/umount
./bin/cat
./bin/mknod
./bin/bash
./bin/lvm
./bin/strace
./bin/raidautorun
./bin/busybox-big
./lib
./lib/modules
./lib/modules/2.6.14-std26-up-alt5
./lib/modules/2.6.14-std26-up-alt5/kernel
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/md
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/md/dm-mod.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/md/raid1.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-core.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/pci
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/pci/piix.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/pci/generic.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-generic.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-disk.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/fs
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/mbcache.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/jbd
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/jbd/jbd.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext3
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext3/ext3.ko
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext2
./lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext2/ext2.ko
./lib/ld-linux.so.2
./lib/libc.so.6
./linuxrc
./var
./log

Содержимое linuxrc:

#!/bin/bash -x

/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/md/dm-mod.ko
/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-core.ko
/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/pci/piix.ko
/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/pci/generic.ko
/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-generic.ko
/bin/insmod -f 
/lib/modules/2.6.14-std26-up-alt5/kernel/drivers/ide/ide-disk.ko
/bin/insmod -f /lib/modules/2.6.14-std26-up-alt5/kernel/drivers/md/raid1.ko
/bin/insmod -f /lib/modules/2.6.14-std26-up-alt5/kernel/fs/mbcache.ko
/bin/insmod -f /lib/modules/2.6.14-std26-up-alt5/kernel/fs/jbd/jbd.ko
/bin/insmod -f /lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext3/ext3.ko
/bin/insmod -f /lib/modules/2.6.14-std26-up-alt5/kernel/fs/ext3/ext2.ko

/bin/mount -t proc proc /proc
/bin/mount -t tmpfs -o size=1m none /dev/mapper
/bin/mount -t tmpfs -o size=1m none /dev/system
/bin/mount -t tmpfs -o size=1m none /etc
/bin/mount -t tmpfs -o size=1m none /var
/bin/mount -t ext2 -o rw /dev/md0 /log

/bin/raidautorun /dev/md255
/bin/mknod -m 600 /dev/mapper/control c 10 63

cat /proc/mdstat

/bin/lvm vgscan
/bin/lvm vgchange -ay

/initroot

/bin/umount /log
/bin/umount /var
/bin/umount /etc
/bin/umount /dev/system
/bin/umount /dev/mapper
/bin/umount /proc

Содержимое initroot (взято из оригинального initrd, сгенерированного 
посредством mkinitrd):

#!/bin/sh

EncodeDev()
{
         echo $(( ($2 & 0xff) | ($1 << 8) | (($2 & ~0xff) << 12) ))
}

read cmdline </proc/cmdline
cmdline=" $cmdline "
if test -z "${cmdline##*[        ]root=*}" ; then
         root="${cmdline##*[      ]root=}"
         root="${root%%[  ]*}"
         if test -z "${root##/dev/*}" ; then
                 root="${root#/dev/}"
                 (
                 read ignored
                 read ignored
                 while read major minor size name ignored; do
                         if test "$name" = "$root" ; then
                                 EncodeDev $major $minor 
 >/proc/sys/kernel/real-root-dev
                                 break
                         fi
                 done
                 ) </proc/partitions

         fi
fi

В итоге я получаю:

VFS: Cannot open root devoce "3a00" or unknown-block(58,0)
Please append a correct "root" boot option
Kernel panic - not syncing : VFS : Unable to mount root fs on unknown 
block(58,0)

Если вместо initroot в linuxrc вписать вызов /bin/bash, то дальше руками 
я смогу смонтировать свои lvm-разделы. Точно также их монтирует штатное 
ядро 2.4.26-std-up-alt13

Что делать дальше?

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10  9:14 ` Eugene Prokopiev
@ 2006-03-10  9:50   ` Eugene Prokopiev
  2006-03-10  9:58   ` Sergey Vlasov
  1 sibling, 0 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-10  9:50 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

> /bin/mount -t ext2 -o rw /dev/md0 /log

Эта строка нужна была для отладки и записи лога strace на md0, да и 
работать будет только после raidautorun - не обращайте на нее внимание. 
То же и с размонтированием md0.

Основной вопрос остается в силе.

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10  9:14 ` Eugene Prokopiev
  2006-03-10  9:50   ` Eugene Prokopiev
@ 2006-03-10  9:58   ` Sergey Vlasov
  2006-03-10 11:38     ` Eugene Prokopiev
  1 sibling, 1 reply; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-10  9:58 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

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

On Fri, Mar 10, 2006 at 12:14:04PM +0300, Eugene Prokopiev wrote:
> Половину своей задачи я решил: в initrd все инициализируется правильно, 
> но вот переключиться из initrd в настоящую систему я не могу.
> 
> Что я сейчас имею: ALM 2.4 + updates + некоторые backports + kernel 
> 2.6.14-std26-up-alt5 из Сизифа
...
> Содержимое initroot (взято из оригинального initrd, сгенерированного 
> посредством mkinitrd):
> 
> #!/bin/sh
> 
> EncodeDev()
> {
>          echo $(( ($2 & 0xff) | ($1 << 8) | (($2 & ~0xff) << 12) ))
> }
> 
> read cmdline </proc/cmdline
> cmdline=" $cmdline "
> if test -z "${cmdline##*[        ]root=*}" ; then
>          root="${cmdline##*[      ]root=}"
>          root="${root%%[  ]*}"
>          if test -z "${root##/dev/*}" ; then
>                  root="${root#/dev/}"
>                  (
>                  read ignored
>                  read ignored
>                  while read major minor size name ignored; do
>                          if test "$name" = "$root" ; then
>                                  EncodeDev $major $minor 
>  >/proc/sys/kernel/real-root-dev
>                                  break
>                          fi
>                  done
>                  ) </proc/partitions
> 
>          fi
> fi

Этот кусок - костыль для ядер 2.6.x, которые разучились находить
major/minor по имени устройства из root=... в случае, когда
соответствующий драйвер вынесен в модуль.

> В итоге я получаю:
> 
> VFS: Cannot open root devoce "3a00" or unknown-block(58,0)

Однако в данном случае даже этот костыль не сработал, что неудивительно.
Major 58 - это устройства LVM1, использовавшиеся в ядрах 2.4.x; скорее
всего, его подцепил lilo при установке под 2.4.x (lilo передаёт root=... в
виде числа, а код разбора root=... в ядре и в приведённом куске не нашёл
ничего лучше).

LVM2 работает через dm, у которого major/minor динамические, и их даже
нельзя найти в /proc/partitions (точнее, они там видны, но под совершенно
бесполезными именами).

> Please append a correct "root" boot option
> Kernel panic - not syncing : VFS : Unable to mount root fs on unknown 
> block(58,0)
> 
> Если вместо initroot в linuxrc вписать вызов /bin/bash, то дальше руками 
> я смогу смонтировать свои lvm-разделы. Точно также их монтирует штатное 
> ядро 2.4.26-std-up-alt13
> 
> Что делать дальше?

Если оставлять старый механизм работы с initrd, нужно определить
major/minor нужного устройства в /dev, созданного утилитами lvm, и
записать его в /proc/sys/kernel/real-root-dev.

Можно перейти на новый механизм обработки initrd (root=/dev/ram0, linuxrc
запускается как init (pid==1) и должен смонтировать реальный root, после
чего выполнить pivot_root туда и exec /sbin/init).

Либо перейти на initramfs (примерно то же самое, но вместо pivot_root
выполняется chroot, и хорошо бы зачистить за собой initramfs, чтобы не
занимать память).

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

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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10  9:58   ` Sergey Vlasov
@ 2006-03-10 11:38     ` Eugene Prokopiev
  2006-03-10 12:38       ` Sergey Vlasov
  2006-03-13 12:55       ` Eugene Prokopiev
  0 siblings, 2 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-10 11:38 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list


> Если оставлять старый механизм работы с initrd, нужно определить
> major/minor нужного устройства в /dev, созданного утилитами lvm, и
> записать его в /proc/sys/kernel/real-root-dev.

да, работает :)

> Можно перейти на новый механизм обработки initrd (root=/dev/ram0, linuxrc
> запускается как init (pid==1) и должен смонтировать реальный root, после
> чего выполнить pivot_root туда и exec /sbin/init).

в /root смонтирован настоящий /root (из /dev/system/root)

пишу

pivot_root /root /var/root
или
pivot_root /root /loopfs

мне заявляют Device or resource busy в первом случае и Invalid argument 
во втором. В /var/root и /loopfs ничего нет - это пустые каталоги

> Либо перейти на initramfs (примерно то же самое, но вместо pivot_root
> выполняется chroot, и хорошо бы зачистить за собой initramfs, чтобы не
> занимать память).

попробую.

как зачищать?

это есть смысл делать только для initramfs?

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10 11:38     ` Eugene Prokopiev
@ 2006-03-10 12:38       ` Sergey Vlasov
  2006-03-10 19:50         ` Eugene Prokopiev
  2006-03-13 12:55       ` Eugene Prokopiev
  1 sibling, 1 reply; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-10 12:38 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

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

On Fri, Mar 10, 2006 at 02:38:54PM +0300, Eugene Prokopiev wrote:
> > Если оставлять старый механизм работы с initrd, нужно определить
> > major/minor нужного устройства в /dev, созданного утилитами lvm, и
> > записать его в /proc/sys/kernel/real-root-dev.
> 
> да, работает :)
> 
> > Можно перейти на новый механизм обработки initrd (root=/dev/ram0, linuxrc
> > запускается как init (pid==1) и должен смонтировать реальный root, после
> > чего выполнить pivot_root туда и exec /sbin/init).
> 
> в /root смонтирован настоящий /root (из /dev/system/root)
> 
> пишу
> 
> pivot_root /root /var/root
> или
> pivot_root /root /loopfs
> 
> мне заявляют Device or resource busy в первом случае и Invalid argument 
> во втором. В /var/root и /loopfs ничего нет - это пустые каталоги

Второй из каталогов должен быть на новом корне.

В man pivot_root написано, как правильно его применять, чтобы это работало
на всех ядрах.

> > Либо перейти на initramfs (примерно то же самое, но вместо pivot_root
> > выполняется chroot, и хорошо бы зачистить за собой initramfs, чтобы не
> > занимать память).
> 
> попробую.
> 
> как зачищать?

Чем-то типа

http://kernel.org/git/?p=libs/klibc/klibc.git;a=tree;h=2fada3e78ac03e588155bd40f31b672b93e52daa;hb=7a3728f1058a791118628ecc372fd3155ee3ec5e;f=usr/kinit/run-init

> это есть смысл делать только для initramfs?

Да (в остальных способах initrd либо отмонтируется и уничтожается самим
ядром, либо перемонтируется в каталог на реальном корне, откуда его можно
потом отмонтировать и сделать blockdev --flushbufs /dev/ram0 в стартовых
скриптах).

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

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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10 12:38       ` Sergey Vlasov
@ 2006-03-10 19:50         ` Eugene Prokopiev
  0 siblings, 0 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-10 19:50 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

>>>Можно перейти на новый механизм обработки initrd (root=/dev/ram0, linuxrc
>>>запускается как init (pid==1) и должен смонтировать реальный root, после
>>>чего выполнить pivot_root туда и exec /sbin/init).
>>
>>в /root смонтирован настоящий /root (из /dev/system/root)
>>
>>пишу
>>
>>pivot_root /root /var/root
>>или
>>pivot_root /root /loopfs
>>
>>мне заявляют Device or resource busy в первом случае и Invalid argument 
>>во втором. В /var/root и /loopfs ничего нет - это пустые каталоги
> 
> 
> Второй из каталогов должен быть на новом корне.
> 
> В man pivot_root написано, как правильно его применять, чтобы это работало
> на всех ядрах.

Если вручную выполнить:

/bin/mount -t ext3 /dev/system/root /root
/bin/cd /root
/bin/pivot_root . old.root
exec /sbin/init

то я получу:

Usage: init 0123456sSQqabcUu
Kernel panic - not syncing: Attempted to kill init!

То же самое, вписанное в /sbin/init внутри initrd что-то делает, но что 
- разобрать невозможно, строчки бегут по экрану слишком быстро ;)

exec /sbin/init 5 перед Kernel panic вместо Usage выводит:

init: timeout opening/writing control channel /dev/initctl

cat /dev/initctl вместо exec /sbin/init приводит к зависанию приглашения 
bash: на Ctrl+C и Ctrl+Z он не реагирует, но по Enter добавляет в конец 
экрана новую пустую строку :(

-- 
С уважением, Прокопьев Евгений


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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-10 11:38     ` Eugene Prokopiev
  2006-03-10 12:38       ` Sergey Vlasov
@ 2006-03-13 12:55       ` Eugene Prokopiev
  2006-03-13 13:06         ` Eugene Prokopiev
  2006-03-13 13:45         ` Sergey Vlasov
  1 sibling, 2 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-13 12:55 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Eugene Prokopiev пишет:
>>Если оставлять старый механизм работы с initrd, нужно определить
>>major/minor нужного устройства в /dev, созданного утилитами lvm, и
>>записать его в /proc/sys/kernel/real-root-dev.
> 
> 
> да, работает :)

поскольку другие варианты завести не могу, буду пробовать самый кривой ;)

еще вопрос: в /proc/cmdline я в числе прочего вижу root=3a00. Что это 
такое, и можно ли как-нибудь, зная эту магическую цифру, добраться до 
того значения, которое в lilo.conf было указано первоначально (это было 
/dev/system/root)?

если этого сделать никак нельзя, как правильнее передать 
/dev/system/root в linuxrc иначе? append="myroot=/dev/system/root" ?

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-13 12:55       ` Eugene Prokopiev
@ 2006-03-13 13:06         ` Eugene Prokopiev
  2006-03-13 13:45         ` Sergey Vlasov
  1 sibling, 0 replies; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-13 13:06 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

да, строка "/dev/system/root" мне нужна, чтобы по ней добыть 
/dev/mapper/mapper-root и его major/minor.

вопрос остается в силе.

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-13 12:55       ` Eugene Prokopiev
  2006-03-13 13:06         ` Eugene Prokopiev
@ 2006-03-13 13:45         ` Sergey Vlasov
  2006-03-13 15:03           ` Eugene Prokopiev
  1 sibling, 1 reply; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-13 13:45 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

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

On Mon, Mar 13, 2006 at 03:55:20PM +0300, Eugene Prokopiev wrote:
> Eugene Prokopiev пишет:
> >>Если оставлять старый механизм работы с initrd, нужно определить
> >>major/minor нужного устройства в /dev, созданного утилитами lvm, и
> >>записать его в /proc/sys/kernel/real-root-dev.
> > 
> > 
> > да, работает :)
> 
> поскольку другие варианты завести не могу, буду пробовать самый кривой ;)
> 
> еще вопрос: в /proc/cmdline я в числе прочего вижу root=3a00. Что это 
> такое, и можно ли как-нибудь, зная эту магическую цифру, добраться до 
> того значения, которое в lilo.conf было указано первоначально (это было 
> /dev/system/root)?

Уже никак - lilo не умеет передавать параметр root в виде строки.
Исправляется переходом на grub ;)

> если этого сделать никак нельзя, как правильнее передать 
> /dev/system/root в linuxrc иначе? append="myroot=/dev/system/root" ?

Вроде бы как-то так и делают (можно ещё посмотреть по другим
дистрибутивам; при использовании pivot_root менять имя приходится в любом
случае).

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

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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-13 13:45         ` Sergey Vlasov
@ 2006-03-13 15:03           ` Eugene Prokopiev
  2006-03-13 15:22             ` Sergey Vlasov
  0 siblings, 1 reply; 12+ messages in thread
From: Eugene Prokopiev @ 2006-03-13 15:03 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

Sergey Vlasov пишет:
> On Mon, Mar 13, 2006 at 03:55:20PM +0300, Eugene Prokopiev wrote:
> 
>>Eugene Prokopiev пишет:
>>
>>>>Если оставлять старый механизм работы с initrd, нужно определить
>>>>major/minor нужного устройства в /dev, созданного утилитами lvm, и
>>>>записать его в /proc/sys/kernel/real-root-dev.
>>>
>>>
>>>да, работает :)
>>
>>поскольку другие варианты завести не могу, буду пробовать самый кривой ;)
>>
>>еще вопрос: в /proc/cmdline я в числе прочего вижу root=3a00. Что это 
>>такое, и можно ли как-нибудь, зная эту магическую цифру, добраться до 
>>того значения, которое в lilo.conf было указано первоначально (это было 
>>/dev/system/root)?
> 
> 
> Уже никак - lilo не умеет передавать параметр root в виде строки.
> Исправляется переходом на grub ;)

Похоже, что не исправляется - grub отчего-то и с ядром 2.4.26 не 
управляется :(

Вот рабочий конфиг lilo:

boot=/dev/hda
map=/boot/map
install=/boot/boot-bmp.b
vga=0x0317
default=linux
ramdisk=8192
prompt
timeout=50
image=/boot/vmlinuz-up
         label=linux
         root=/dev/system/root
         initrd=/boot/initrd-up.img
         append=" splash=off"
         read-only
other=/dev/hda1
         label=windows
         table=/dev/hda

вот его grub-аналог:

timeout 15
color blue/black cyan/blue
default 0

title linux-up
kernel (hd0,2)/vmlinuz-up root=/dev/system/root ramdisk=8192 splash=off 
vga=0x0317
initrd (hd0,2)/initrd-up.img

title windows
root (hd0,0)
makeactive
chainloader +1

Диск размечен так:

# fdisk -l /dev/hda

Disk /dev/hda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        1147     9213246    7  HPFS/NTFS
/dev/hda2            1148        2422    10241437+   c  W95 FAT32 (LBA)
/dev/hda3            2423        2428       48195   83  Linux
/dev/hda4            2429        4864    19567170    5  Extended
/dev/hda5            2429        2550      979933+  82  Linux swap
/dev/hda6            2551        4864    18587173+  8e  Linux LVM

При загрузке с помощью grub уже после отработки /linuxrc из initrd я вижу:

VFS: Cannot open root device "system/root" or 00:00, retying in 1 s,
...
VFS: Cannot open root device "system/root" or 00:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 00:00

С lilo этих проблем нет. Может и grub можно научить не превращать 
/dev/system/root в system/root?

-- 
С уважением, Прокопьев Евгений



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

* Re: [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5
  2006-03-13 15:03           ` Eugene Prokopiev
@ 2006-03-13 15:22             ` Sergey Vlasov
  0 siblings, 0 replies; 12+ messages in thread
From: Sergey Vlasov @ 2006-03-13 15:22 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

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

On Mon, Mar 13, 2006 at 06:03:30PM +0300, Eugene Prokopiev wrote:
> title linux-up
> kernel (hd0,2)/vmlinuz-up root=/dev/system/root ramdisk=8192 splash=off 
> vga=0x0317
> initrd (hd0,2)/initrd-up.img

А что в этом initrd определяет номер устройства, соответствующий
/dev/system/root ?

> При загрузке с помощью grub уже после отработки /linuxrc из initrd я вижу:
> 
> VFS: Cannot open root device "system/root" or 00:00, retying in 1 s,
> ...
> VFS: Cannot open root device "system/root" or 00:00
> Please append a correct "root=" boot option
> Kernel panic: VFS: Unable to mount root fs on 00:00
> 
> С lilo этих проблем нет. Может и grub можно научить не превращать 
> /dev/system/root в system/root?

grub ничего ни во что не превращает - /dev/ отрезается уже в самом ядре.
Но в данном случае до этого кода ядро доходить просто не должно - /linuxrc
в initrd должен определить major:minor и записать его в real-root-dev.
Видимо, имеющийся там сейчас код этого не делает, но в случае lilo это
срабатывало из-за того, что lilo передаёт уже готовые major:minor
(впрочем, это всё равно неправильно, поскольку minor для lvm в любом
случае назначаются динамически, и не факт, что /dev/system/root, поднятый
lvm в initrd, окажется на том же minor, что и /dev/system/root,
существовавший в системе на момент запуска /sbin/lilo).

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

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

end of thread, other threads:[~2006-03-13 15:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-09  6:03 [sisyphus] LVM в initrd для ядра 2.6.14-std26-up-alt5 Eugene Prokopiev
2006-03-10  9:14 ` Eugene Prokopiev
2006-03-10  9:50   ` Eugene Prokopiev
2006-03-10  9:58   ` Sergey Vlasov
2006-03-10 11:38     ` Eugene Prokopiev
2006-03-10 12:38       ` Sergey Vlasov
2006-03-10 19:50         ` Eugene Prokopiev
2006-03-13 12:55       ` Eugene Prokopiev
2006-03-13 13:06         ` Eugene Prokopiev
2006-03-13 13:45         ` Sergey Vlasov
2006-03-13 15:03           ` Eugene Prokopiev
2006-03-13 15:22             ` Sergey Vlasov

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

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

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


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