С kernel.org скачал linux-2.6.19.2.tar.bz2. После сборки обнаружил отсутствие файла initrd в папке /boot, однако в Device Drivers->Block Devices->Initial RAM filesustem and RAM disk (initramfs/initrd) support я поставил звездочку. Этот образ должен вообще создаваться автоматом? Ну а вот что будет если в грабе прописать старый initrd (от 2.6.17) - пишет что нет файла - а он то есть. А если не прописывать - кернел паник.
В чем дело и как исправить?
ЗЫ Папочка /lib/modules/2.6.19.2 - весит всего 25 мегов, когда как 2.6.17-10-generic - целых 60 (!!!) - я что криво собрал??? Еслли криво - то в каком месте?
/var/log/boot
Код:
Jan 27 22:23:00 rcS: * Reading files needed to boot... [80G
[74G[ ok ]
Jan 27 22:23:01 rcS: * Setting preliminary keymap... [80G
[74G[ ok ]
Jan 27 22:23:01 rcS: * Starting basic networking... [80G
[74G[ ok ]
Jan 27 22:23:01 rcS: * Starting kernel event manager... [80G
[74G[ ok ]
Jan 27 22:23:03 rcS: * Loading hardware drivers... [80G
[74G[ ok ]
Jan 27 22:23:03 rcS: * Loading manual drivers... [80G
[74G[ ok ]
Jan 27 22:23:07 rcS: * Mounting local filesystems... [80G
[74G[ ok ]
Jan 27 22:23:07 rcS: * Activating swapfile swap... [80G
[74G[ ok ]
Jan 27 22:23:07 rcS: * Configuring network interfaces... [80G
[74G[ ok ]
Jan 27 22:23:08 rcS: * Setting up console keymap... [80G
[74G[ ok ]
Jan 27 22:23:10 rc2: * Loading ACPI modules... [80G
[74G[ ok ]
Jan 27 22:23:10 rc2: * Starting ACPI services... [80G
[74G[ ok ]
Jan 27 22:23:10 rc2: * Starting system log... [80G
[74G[ ok ]
Jan 27 22:23:10 rc2: * Starting kernel log... [80G
[74G[ ok ]
Jan 27 22:23:12 rc2: * Starting GNOME Display Manager... [80G
[74G[ ok ]
Jan 27 22:23:13 rc2: * Starting Common Unix Printing System: cupsd [80G
[74G[ ok ]
Jan 27 22:23:14 rc2: * Starting HP Linux Printing and Imaging System [80G
[74G[ ok ]
Jan 27 22:23:14 rc2: * Starting system message bus dbus [80G
[74G[ ok ]
Jan 27 22:23:18 rc2: * Starting Hardware abstraction layer hald [80G
[74G[ ok ]
Jan 27 22:23:18 rc2: * Starting System Tools Backends system-tools-backends [80G
[74G[ ok ]
Jan 27 22:23:18 rc2: * Starting powernowd... [80G /etc/rc2.d/S20powernowd: 156: cannot create /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor: Directory nonexistent
Jan 27 22:23:18 rc2: * CPU frequency scaling not supported
Jan 27 22:23:18 rc2:
[74G[ ok ]
Jan 27 22:23:19 rc2: * Starting Bluetooth services [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Starting anac(h)ronistic cron: anacron [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Starting deferred execution scheduler atd [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Starting periodic command scheduler... [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Enabling additional executable binary formats binfmt-support [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Checking battery state... [80G
[74G[ ok ]
Jan 27 22:23:19 rc2: * Running local boot scripts (/etc/rc.local) [80G
[74G[ ok ]
initrd создается либо соответствующей командой mkinitrd, либо, если собирать ядро дебианистым вэем, указанием соответствующей опции
Чтобы грузиться без initrd, достаточно жестко вкомпилить в ядро поддержку интерфейса, несущего корневую файловую систему, и ее типа.
То, что количество модулей различается - нормально. В дистрибутивных ядрах собраны все модули, какие только могут понадобиться, собирая для себя, обходишься нужными только тебе лично.
а надо было собирать так: fakeroot make-kpkg –initrd kernel_image kernel_headers
НО! C этим параметром -initrd не собирается, ибо пакет initrd-tools НЕ установлен - и поставить нет возможности (mkinitrd тоже не работает видемо по томуже ):
root@lol-PC:/home/lol# dpkg -i initrd-tools_0.1.78ubuntu2_all.deb
dpkg: анализ файла initrd-tools_0.1.78ubuntu2_all.deb, содержащего пакет initrd-tools:
libc6 conflicts with initrd-tools (<< 0.1.84.1)
пакет initrd-tools версии 0.1.78ubuntu2 будет установлен.
dpkg: не удалось обработать параметр initrd-tools_0.1.78ubuntu2_all.deb (--install):
конфликт пакетов -- initrd-tools не будет установлен
При обработке следующих пакетов произошли ошибки:
initrd-tools_0.1.78ubuntu2_all.deb
root@lol-PC:/home/lol#
Что делать? Есть ли аналоги пакета initrd-tools или как же его поставить не снося libc6?
По моему тоже вполне ясно написано: что libc6 конфликтует с initrd-tools, а libc6 сносить нельзя по вполне понятным причинам. Пробовал ставить разные версии (и 0.1.84 в том числе) - одно и то же:
root@lol-PC:/home/lol/Desktop# dpkg -i initrd-tools_0.1.84ubuntu1_all.deb
Выбор ранее не выбранного пакета initrd-tools.
dpkg: анализ файла initrd-tools_0.1.84ubuntu1_all.deb, содержащего пакет initrd-tools:
libc6 conflicts with initrd-tools (<< 0.1.84.1)
пакет initrd-tools версии 0.1.84ubuntu1 будет установлен.
dpkg: не удалось обработать параметр initrd-tools_0.1.84ubuntu1_all.deb (--install):
конфликт пакетов -- initrd-tools не будет установлен
При обработке следующих пакетов произошли ошибки:
initrd-tools_0.1.84ubuntu1_all.deb
root@lol-PC:/home/lol/Desktop#
Есть еще вариант - поставить из initrd-tools_0.1.84.1ubuntu1.tar.gz - НО - там нет ни configure ни make и даже файлика INSTALL с разъяснениями нет - что с ним делать?
/usr/sbin/mkinitrd: add_modules_dep_2_5: modprobe failed
FATAL: Module ata_piix not found.
WARNING: This failure MAY indicate that your kernel will not boot!
but it can also be triggered by needed modules being compiled into
the kernel.
mkcramfs: open failed: /boot: Is a directory
1 В комманде mkinitrd надо указать некий путь - КАКОЙ ПУТЬ? КУДА СОХРАНЯТЬ ГОТОВЫЙ ФАЙЛ? КАК ВООБЩЕ ЭТОЙ ПРОГОЙ ЕГО СОЗДАТЬ?
2 Ругается на счет того что кернел не загрузится и на отсутствие модуля ata_piix. Что это за модуль - поддержка ATA? Как добавить этот модуль? (вроде включал поддержку ata в ядре)
Вобще-то сейчас для этого используется mkinitramfs. По крайней мере initrd.img для ядра 2.6.18 я собирал именно им.
Читаю вслух с выражением маны - $50/ч + стоимость звонка. Настраиваю сервисы за Вас - $100/ч + стоимость выезда и проживания. И восемь строк матом...(бесплатно)