1

Я использую последнюю версию loadlin.exe (версия 1.6e). Это работает на некоторых машинах, но на других я не получаю "место после ядра для initrd". Ядро имеет размер около 5 МБ (немодульный), а мой образ initrd (распакованный) - около 8 МБ. Один из способов, который я мог бы выбрать, - включить поддержку модулей и выгрузить часть веса ядра в образ initrd, но я не уверен, что это исправит проблему. Существуют ли альтернативы loadlin.exe , способные загружать Linux из загруженного сеанса DOS? В основном у меня есть ряд инструментов для DOS, которые я хотел бы запускать один за другим, а затем загружаться в Linux, для которого loadlin.exe работает очень хорошо, за исключением некоторых машин.

3 ответа3

3

Если это все еще представляет интерес:

Попробуйте запустить Linux с помощью команды linld.com . Он может обрабатывать большие образы ядра (> 4 МБ) и большой initrd (> 10 МБ).

В моей системе я использую следующую команду:

c:\loadlin\mandrake\linld image=C:\loadlin\mandrake\linuz263.889 initrd=c:\loadlin\mandrake\init-263.889 "cl=root=/dev/sdc14 ro video=1024x768"

linld.com можно скачать здесь.

1

В итоге мне пришлось урезать размер ядра. Когда вы запускаете loadlin.exe без каких-либо аргументов, он печатает объем доступной памяти (это объем памяти, который видит DOS, а не объем памяти, установленной на машине). На некоторых машинах доступно только 16 МБ, а на других - 64 МБ. Я предполагаю, что это может быть любое значение действительно.

loadlin.exe предполагает, что ядро имеет степень сжатия 1:2, и поскольку Linux загружается по адресу 0x00100000 (1 МБ), вам необходимо убедиться, что:

kernel_size * 2 + initrd_size < available_ram - 0x00100000

Если у вас есть модульное ядро, может помочь выгрузка модулей ядра в initrd, а не встраивание их в ядро. Выбор другого сжатия ядра также может помочь.

0

Попробуйте вместо этого использовать Syslinux , он будет работать лучше для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .