0

I would like to install Debian Bookworm onto an old laptop (Compaq Evo N1020v).

The CD/DVD -drive of the laptop is unusable (as old laptop drives often are).

Unfortunately, the laptop, although it has two USB connectors, the BIOS is too old; it doesn't support booting from USB memory stick.

So the one option remains: somehow:

  1. copy the ISO image onto the hard disk, as follows (hda7 as an example only)

    • dd if=DEBIAN_Bookworm_i386.iso of=/dev/hda7 bs=2048
  2. extract the kernel file and the initrd file from the ISO image, and copy them separately, for example to /dev/hda6

  3. modify the existing GRUB (NOTE: GRUB legacy, NOT the newer GRUB2. I don't know how to install GRUB2 using only debian 3.1 Sarge as the tool) cobfiguration file by adding a new option: Install debian Bookworm and set the kernel name and the initrd name to their correct values

  4. almost done: BUT there is a "hidden" kernel parameter, where I have not been able to find the proper documentation of it.

Think about this: The same ISO (a so-called hybrid iso, typically created using isohybrid, which is part of syslinux package) can be either written to a CD-R disc or it can be written to USB memory stick, and it should work both ways (that's why it is called hybrid).

If the PC has only one hard disk (called /dev/sda in newer debians) and the cd-rom drive is called /dev/hdc, but a possible USB stick is called /dev/sdb.

So this means it is impossible to directly put the device name where the ISO image will reside into some configuration file, since the name is not constant, but is to be determined at boot time.

I do no know how excactly ISOLINUX (when booted from CD/DVD) or SYSLINUX (when booted from USB stick) will pass the device name of the device where the ISO image is located to the linux kernel.

So: IF I first copy the ISO image onto the hard disk: /dev/hda7 (using the debian sarge already installed on that old laptop), which will be seen as /dev/sda7 when booted with the new kernel, then I need some way to tell the new kernel that the ISO (the install disk image) is on /dev/sda7

If I do not tell the kernel that information, then I would expect "Kernel Panic" as a result, since the kernel cannot find what it will need next.

Well... kernel - or some debian installation program started by the kernel...

BUT: from a bootloader's viewpoint: It is the kernel I need to pass that information, and even if the kernel passes on that information to an installation program, that is a detail that the bootloader does not need to know - from the bootloader's viewpoint, it is the same.

So: How can I pass the location of the ISO image to the kernel, so that the Debian Bookworm should then proceed ?

AND:

Is it OK to just use dd to copy the ISO image "as is" into a hard disk partition ?

Or should I instead extract the content of that ISO image, and put it instead as files on a filesystem - such as either FAT32 or ext3 ?

a side note: the plop boot manager claims that it can boot from USB memory stick even if the BIOS is too old to be able to directly boot from USB memory stick.

I tried that - using USB memory stick that can successfully boot KNOPPIX 9.3 on newer machines. Unfortunately, it seems that the plop boot manager cannot boot from USB memory stick.

Either the claim that it can is a lie, or then there are additional hardware requirements for that claim to be true - and if so, the old Compaq Evo N1020v does not fulfill such hardware requirements.

This whole thing should be a simple thing to solve - only add the correct kernel parameter to tell the kernel, where is the ISO that represents the debian Bookworm installation media.

So, what should I pass on to the installation media's kernel to make it behave correctly and install debian Bookworm ?

https://www.plop.at

1
  • Using Rufus to make a bootable HDD drive doesn't work? Effectively, make that HDD live Debian with persistence. Commented May 27 at 15:32

1 Answer 1

0

There are several ways to start Debian installation, I think one of these two should work for you.

1. Booting an ISO or a disk image from memory (loaded either from a local disk or from the network)

The MEMDISK utility from the SYSLINUX project allows to boot many types of images by loading them to memory and starting from there. So you do not need to worry about writing (dd-ing) image to a local hard disk or any kernel parameters specifying the device. You just need to have it stored as a file on a local hard drive, available for bootloader (GRUB).

Using it with GRUB is very simple - just specify memdisk as a kernel and cd/disk image to boot from as initrd (see examples) - so you can do it easily if you have GRUB already in place (I understand you do, with some older Debian).

MEMDISK, besides using with GRUB, can also be used over network (eg. PXELINUX can load MEMDISK+ISO).

2. Using Debian network installer

Assuming that you have an internet connection on your laptop, you do not need any ISO to install Debian. All you need is the kernel and initrd.gz from Debian network installer - you just have to boot them in any way available (GRUB, SYSLINUX/PXELINUX, loadlin).

The 2 needed files (kernel and initrd) are in Debian network installer.

If you already have GRUB on the disk (as you mentioned), you just have to add the kernel (linux) and the initrd to its configuration. That's it.

Parameters used by network installer are in grub.cfg (or, more complex, in files in pxelinux.cfg/ and boot-screens/).

They are something like:

label install
    menu label ^Install
    kernel debian-installer/amd64/linux
    append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

label expert
        menu label E^xpert install
        kernel debian-installer/amd64/linux
        append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz ---

This assumes of course that linux and initrd.gz are stored in /boot/debian-installer/amd64/.

Note that practically there are no important parameters (only quiet or priority): no cdrom or disk device parameter is needed(!). The whole installer is in the initial ramdisk (initrd.gz). After starting it and configuring the network connection, it loads everything else from the selected Debian mirror.

Eventually, if you want more challenge ;-), a more complex way would be setting up a fully networked installation (booting from network card). For this you need to setup DHCP and tftp (a bit too many details to explain here...). But in such case you can start installation with an empty disk in your laptop, just booting it from the network card.

2
  • Assuming OP has a PXE server set up, and the system has an ethernet port that supports it. Configuring a DHCP and TFTP server for this is pretty advanced.
    – Journeyman Geek
    Commented May 30 at 0:46
  • That i why I wrote about using GRUB, just using kernel and initrd from network installer, not from ISO. Setting up DHCP/tftp is just mentioned as a possibility. Though it might not be that complex. It depends on what you have in your network already. Some routers have everything practically ready to use for such purpose.
    – t-w
    Commented May 30 at 2:02

You must log in to answer this question.

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