[Comm] Подземный стук с lilo

Eugene Prokopiev enp на altlinux.org
Ср Дек 2 18:23:33 UTC 2009


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

Есть машина, на которую копируется существующая система следующим образом:

1) размечем диск, делаем файловые системы
2) монтируем будущий корень, выливаем туда все файлы существующей системы
3) монтируем в будущий корень /dev, /sys, /proc с -o bind
4) чрутимся и прописываем загрузчик

Со сих пор это всегда срабатывало, но сейчас я столкнулся с проблемой. В чруте:

[root на localhost /]# fdisk -l /dev/sda

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1b44ce21

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         243     1951866   83  Linux
/dev/sda2             244         972     5855692+  83  Linux
/dev/sda3             973       38913   304761082+  83  Linux
[root на localhost /]# cat /etc/lilo.conf
map="/boot/map"
lba32
compact
install="menu"
boot="/dev/sda"
default="linux"

image="/boot/vmlinuz"
        label="linux"
        initrd="/boot/initrd.img"
        root="/dev/sda2"
        read-only

[root на localhost /]# lilo -v
LILO version 22.7.3, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2006 John Coffman
Released 11-Aug-2006, and compiled at 18:35:15 on Mar 28 2007

Reading boot sector from
/dev/disk/by-id/ata-WDC_WD3200AAKS-75L9A0_WD-WCAV28613365
Using MENU secondary loader
Calling map_insert_data

Boot image: /boot/vmlinuz -> vmlinuz-2.6.30-std-def-alt14
Mapping RAM disk /boot/initrd.img -> initrd-2.6.30-std-def-alt14.img
Added linux *

Writing boot sector.
/boot/boot.0800 exists - no boot sector backup copy made.

И после этого система не загружается со словами:

No bootable device -- insert boot disk and press any key

Но удивительно вот что: если загрузиться с любого CD/DVD, собранного
из mkimage-profiles-desktop.git и выбрать загрузку с локального диска,
то оно таки загружается. Но тот же самый localboot 0x80 при загрузке с
PXE уже не срабатывает.

Еще интереснее: если попробовать установиться с любого CD/DVD,
собранного из mkimage-profiles-desktop.git, то установленная система
загрузится, причем большой разницы между сгенерированным инсталлером
lilo.conf и моим я не вижу. И самое странное: если подвинуть
установленную систему в сторону и воспроизвести процедуру переноса
заново, то перенесенная система таки загрузится без с моим изначальным
lilo.conf

Из этого всего я делаю вывод, что ручной вызов lilo как-то неправильно
записывает первоначальный загрузчик в бутсектор /dev/sda. Прошу
объяснить мне, что это может быть.

Да, initrd в процессе создания initrd.img обижается на отсутствие IDE-устройств:

# mkinitrd -vf --with=ext3.ko /boot/initrd-2.6.30-std-def-alt14.img
2.6.30-std-def-alt14
mkinitrd: Generating module dependencies...
mkinitrd: ...done.
readlink: /sys/bus/ide/devices/*/../..: No such file or directory
mkinitrd: warning: Unable to find IDE controller for /sys/bus/ide/devices/*
mkinitrd: No IDE modules found
mkinitrd: Found SCSI modules: scsi_mod sd_mod ata_piix pata_acpi
ata_piix pata_acpi ata_generic ata_generic
mkinitrd: Using modules:
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ide/ide-core.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ide/ide-generic.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ide/ide-gd_mod.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/scsi/scsi_mod.ko
/lib/modules/2.6.30-std-def-alt14/kernel/lib/crc-t10dif.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/scsi/sd_mod.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ata/libata.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ata/ata_piix.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ata/pata_acpi.ko
/lib/modules/2.6.30-std-def-alt14/kernel/drivers/ata/ata_generic.ko
/lib/modules/2.6.30-std-def-alt14/kernel/fs/mbcache.ko
/lib/modules/2.6.30-std-def-alt14/kernel/fs/jbd/jbd.ko
/lib/modules/2.6.30-std-def-alt14/kernel/fs/ext3/ext3.ko
mkinitrd: Inode count: 138
mkinitrd: Image size: 2272K
mkinitrd: Created image from tree: /tmp/initrd.VKHKP6Jccf/tree -->
/tmp/initrd.VKHKP6Jccf/img
mkinitrd: Created initramfs image file
mkinitrd: Installed ramdisk into /boot/initrd-2.6.30-std-def-alt14.img
Ramdisk size: 632K

Но вроде это не повод - с тем же сгенерированным initrd.img после
удачной инсталляции с CD/DVD все начинает чудесно грузиться. Но,
опять-таки, CDROM у меня IDE - т.е. выходит, что проблема
автомагически разрешается именно при появлении IDE-устройств.

Прошу простить за столь длинный поток сознания ...

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


Подробная информация о списке рассылки community