On 2018-04-10 22:49:30 +0300, Leonid Krivoshein wrote: > propagator был написан в конце 90-х на Си. Он прописывается в > initramfs и обеспечивает функционал начальной стадии загрузки: > поиск корня Инсталлятора, LiveCD, Rescue, итд., в соответствии > с указанными параметрами загрузки ядра, по результату диалога с > пользователем, либо включая внутренний интеллект. Даже самые > последние исправления не помогли устранить его врождённых > дефектов: он продолжает "терять" флэшки на этапе загрузки даже > не на самом новейшем оборудовании. Коллеги, а вот кто может внятно объяснить, зачем вообще может быть нужен initrd при загрузке с локального носителя (непосредственно подключенного к компутеру)? Когда загрузка происходила с двух дискет, на первой из которых было основательно выпотрошенное ядро (чтобы поместилось в 1.2 Мб), а на второй образ initrd с модулями (опять же, не со всеми, а только для поддержки накопителей и сетевых карт) - да, это было не просто оправдано, а единственным доступным решением. Я так в 1994 году слакварь на 486SX/4/210 ставил :-) Когда появилась возможность загружаться с компакт-дисков (через ElTorito, то есть в режиме эмуляции дискеты объемом 2.88 Мб) - стало чуть полегче, но и этот объем приходилось тратить на модули поддержки накопителей, ибо CD-приводы тех времен подключались не только к IDE (как большинство тогдашних жестких дисков), но и ко всяким экзотическим интерфейсам - например, звуковым картам или, в более простых случаях, к SCSI-контроллерам и параллельным портам. Где-то на рубеже веков произошли два события, которые папа Карла (Маркс, разумеется) назвал бы переходом количества в качество: во-первых, существенно подешевела память, а во-вторых очередной периферийный интерфейс обрел очередную функцию - к еще недавно "никакому" USB стало возможно подключать блочные устройства и загружаться с них точно так же, как с жестких дисков. Собственно, именно с этого момента появилась возможность собирать ядро со вкомпилированной поддержкой самых популярных накопителей и сетевых интерфейсов, а технология initrd переместилась на новое место работы: сетевая загрузка Live-системы. А что, когда памяти аж 256 Мб - почему бы не отдать половину под / на /dev/ram0 для запуска установки или rescue-системы? "Какое, милые, у нас \n Тысячелетье на дворе?" Когда я задал вышепроцитированный вопрос Бориса Леонидыча команде `date +%Y`, она выдала ответ "2018". То есть, родившиеся на ранее упомянутом "рубеже веков" люди уже выросли и даже закончили школу, а у нас до сих пор при локальной загрузке используется initrd... Фу. > Добавлю от себя лично: в пакете propagotor есть два особенных > скрипта. Первый init-bottom "очень дорог для нас". И критичен > в плане совместимости. Его бы как-то по-максимуму сохранить. > Второй -- mkmodpack. О нём в данном письме речи не идёт. А зачем? Грузим ядро, оно находит корневой раздел по метке, монтирует его, запускает init... Зачем для этого какие-то костыли? -- Alexey V. Vissarionov gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net