Hello! Итак, в Сизиф отправляется mkinitrd-2.9.2-alt1. Самое большое изменение в этой версии - поддержка вынесенных в модули драйверов IDE. (Пересобранное таким образом ядро 2.6.10 пойдёт в Сизиф, видимо, завтра.) Список модулей для включения в initrd определяется следующим образом: - Если указана опция --omit-ide-modules, модули IDE не включаются в initrd совсем. - Если не обнаружены каталоги /proc/ide/ide*, модули IDE также не включаются в initrd. - Если в /etc/modules.conf указан alias или probeall с именем ide_hostadapter, в initrd помещаются перечисленные там драйверы, а также модуль ide-disk; в этом случае автоматическое определение конфигурации не выполняется. - В случае, если загружены какие-либо драйверы IDE (и, следовательно, в /proc/ide/ide* что-то есть), определяются PCI ID контроллеров, обслуживаемых этими драйверами. Для ядер 2.4.x это производится по данным /proc/ide/ide*/config, для 2.6.x аналогичная информация ищется в sysfs (/sys/bus/ide/devices/*/../../{vendor,...}). Для обнаруженных PCI ID в /lib/modules/$KERNEL/modules.pcimap ищутся соответствующие модули, причём список фильтруется, чтобы исключить попадание туда драйверов, не использующих подсистему IDE (в частности, драйверов SATA, использующих эмуляцию SCSI). - Особый случай - обнаружение контроллера, обслуживаемого драйвером ide-generic или другим не PCI-драйвером. Помимо случая древнего ISA или ISA-PnP контроллера, такая ситуация может возникать при использовании нового оборудования, не поддерживаемого текущим ядром, либо при смене аппаратуры. В этом случае осуществляется поиск драйвером для всех PCI-устройств, имеющих класс "IDE Controller" - возможно, в устанавливаемом ядре найдётся драйвер для нужного чипсета, тогда он будет найден и помещён в initrd. - При автоматическом обнаружении устройств после найденных драйверов всегда загружается ide-generic - это позволяет хотя бы как-то загрузить систему на неизвестной аппаратуре, если там поддерживается Legacy IDE. Внимание: в сложных конфигурациях (при наличии 3 или более контроллеров IDE разных типов) возможно изменение порядка обнаружения IDE-устройств, не устраняемое переупорядочиванием модулей (например, если устройства 1, 2, 3 в порядке опроса PCI обслуживаются драйверами A, B, A, то в зависимости от порядка загрузки модулей можно получить порядок устройств либо 1, 3, 2, либо 2, 1, 3, но не 1, 2, 3, получавшийся при встраивании драйверов IDE в ядро). Также возможна смена порядка контроллеров в случае, если какие-то устройства обслуживались драйвером ide-generic. Другие изменения в этой версии: - Добавлена опция "--with-raid", добавляющая raidautorun в initrd вне зависимости от содержимого /etc/fstab. Модули поддержки уровней RAID определяются по /etc/raidtab, либо можно указывать нужные модули в --with=... Также добавлена поддержка raid6. - Устранена проблема с обработкой root=/dev/... на ядрах 2.6.x при использовании GRUB. Как оказалось, встроенный в ядро алгоритм поиска root в 2.6.x работает только для драйверов, вкомпилированных в ядро. Пришлось переносить этот поиск в initrd (для чего в mkinitrd-busybox вместо msh был затащен ash, в результате чего этот busybox стал почти на 20 Кб больше). - Добавлена обработка /lib64 (#4888). - В initrd создан каталог /sys (#5387). -- Sergey Vlasov