Я использую последнюю версию loadlin.exe
(версия 1.6e). Это работает на некоторых машинах, но на других я не получаю "место после ядра для initrd". Ядро имеет размер около 5 МБ (немодульный), а мой образ initrd (распакованный) - около 8 МБ. Один из способов, который я мог бы выбрать, - включить поддержку модулей и выгрузить часть веса ядра в образ initrd, но я не уверен, что это исправит проблему. Существуют ли альтернативы loadlin.exe
, способные загружать Linux из загруженного сеанса DOS? В основном у меня есть ряд инструментов для DOS, которые я хотел бы запускать один за другим, а затем загружаться в Linux, для которого loadlin.exe
работает очень хорошо, за исключением некоторых машин.
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
можно скачать здесь.
В итоге мне пришлось урезать размер ядра. Когда вы запускаете loadlin.exe
без каких-либо аргументов, он печатает объем доступной памяти (это объем памяти, который видит DOS, а не объем памяти, установленной на машине). На некоторых машинах доступно только 16 МБ, а на других - 64 МБ. Я предполагаю, что это может быть любое значение действительно.
loadlin.exe
предполагает, что ядро имеет степень сжатия 1:2, и поскольку Linux загружается по адресу 0x00100000
(1 МБ), вам необходимо убедиться, что:
kernel_size * 2 + initrd_size < available_ram - 0x00100000
Если у вас есть модульное ядро, может помочь выгрузка модулей ядра в initrd, а не встраивание их в ядро. Выбор другого сжатия ядра также может помочь.
Попробуйте вместо этого использовать Syslinux , он будет работать лучше для меня.