1

I have been using the latest version of loadlin.exe (version 1.6e). It works on some machines but on others I get "no place after kernel for initrd". The kernel is about 5MB in size (non-modular) and my initrd image (decompressed) is about 8MB. One route that I could take is to enable module support and offload some of the weight of the kernel into the initrd image but I'm not confident this will rectify the issue. Are there any alternatives to loadlin.exe that are capable of loading Linux from a booted DOS session? I basically have a series of DOS tools that I'd like to run one after another and then boot into Linux, which loadlin.exe seems to be working very well for except on some machines.

3
  • 1
    I'm surprised if loadlin is even supported anymore. It's been more than a decade since Microsoft released anything that had DOS as a foundation.
    – Wyzard
    Jul 8, 2012 at 22:37
  • @Wyzard: I work in notebook servicing where a large number of diagnostics and tools are written in DOS because it is much easier to interface with the BIOS and peripherals.
    – dreamlax
    Jul 8, 2012 at 23:12
  • I wonder if anyone uses DOS+loadlin as their regular bootloader on a modern machine. Could be kind of fun having your main computer literally boot to DOS, using autoexec.bat to proceed to Linux!
    – Sparkette
    Feb 13, 2021 at 0:43

4 Answers 4

5

If it is still of interest:

Try to start Linux with the linld.com command. It can handle big kernel images (>4 MB) and a big initrd (>10 MB).

In my system, I use the following command:

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 can be downloaded from here.

1

In the end, I had to cut the size of the kernel down. When you run loadlin.exe without any arguments it prints out the amount of memory available (this is the amount of memory that DOS sees and not the amount of memory installed in the machine). On some machines, only 16MB is available, and on others, 64MB is available. I guess it could be any value really.

loadlin.exe assumes that the kernel has a 1:2 compression ratio, and because Linux is loaded at address 0x00100000 (1MB), then you need to ensure that:

kernel_size * 2 + initrd_size < available_ram - 0x00100000

If you have a modular kernel, offloading kernel modules into initrd rather than building them into the kernel may help. Choosing a different kernel compression may also help.

0

Try with Syslinux instead, it tends to work better for me.

5
  • How do I use syslinux to load Linux when the computer is already booted into DOS? I had a look at the documentation but it doesn't seem to have an .exe file that I can just run and give the path to the kernel image and initrd.
    – dreamlax
    Jul 8, 2012 at 23:09
  • Use the syslinux.com command. Syslinux DOS
    – CR.
    Jul 8, 2012 at 23:24
  • 2
    That command installs SYSLINUX as a bootloader on a disk, it doesn't load Linux from a DOS session...
    – dreamlax
    Jul 8, 2012 at 23:35
  • You just have to create a syslinux.cfg file to load a kernel and initrd.
    – CR.
    Jul 9, 2012 at 20:56
  • 2
    That doesn't help, the syslinux.cfg file is loaded before DOS (because SYSLINUX is a boot loader). I need a solution that allows me to boot into DOS, run some DOS tools and then load Linux while I'm inside DOS. loadlin.exe allows me to do this but appears to have some issues on some machines.
    – dreamlax
    Jul 9, 2012 at 21:08
0

Have you tried grub4dos? grub4dos has an executable file. I never tried it before, but it should load grub4dos instantly. From there, loading linux is very easy. All kinds of configuration an fancy stuff is possible in the config-file.

1
  • 1
    As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Oct 31, 2022 at 6:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .