Hi Joey, I've done as you suggested (still with 20040417). Output of os-prober: /dev/discs/disc0/part3:Windows NT/2000/XP:WindowsNT:chain /dev/discs/disc0/part5:Debian GNU/Linux (3.0):Debian3:linux /dev/discs/disc1/part1:Windows 95/98/Me:Windows9xMe:chain /dev/discs/disc1/part8:Debian GNU/Linux (testing/unstable):Debian4:linux /dev/discs/disc1/part9:Debian GNU/Linux (testing/unstable):Debian5:linux Output of linux-boot-prober /dev/discs/disc0/part5: /dev/discs/disc0/part5:/dev/discs/disc0/part1::/boot/vmlinuz::root=/dev/hda5 And now for the good news... I've done some debugging by adding 'echo' statements to 50mounted-tests and 50lilo. These modified scripts and the resulting output of linux-boot-prober for hda5 are attached. I found that the variable 'initrd' in 50lilo is already set to '/install/ cdrom.gz' in the shell from which the boot prober is run. This causes the test if [ -e "$mpoint/$kernel" ] && [ -e "$mpoint/$initrd" ]; then to fail. If I initialize the variable 'initrd' in the beginning of 50lilo (see commented line in the attached version), the output of linux-boot-prober is a lot more interesting :-) /dev/discs/disc0/part5:/dev/discs/disc0/part1:Linux:/boot/vmlinuz::root=/dev/ hda5 ro hdc=ide-scsi /dev/discs/disc0/part5:/dev/discs/disc0/part1:LinuxPrevious:/boot/ vmlinuz.old::root=/dev/hda5 ro hdc=ide-scsi /dev/discs/disc0/part5:/dev/discs/disc0/part1:LinuxStable:/boot/ vmlinuz.stable::root=/dev/hda5 ro hdc=ide-scsi /dev/discs/disc0/part5:/dev/discs/disc0/part1:Memtest:/boot/ memtest86.bin::root=/dev/hda5 To be safe the variables 'rootdev', 'kernel', etc. should probably also be initialized and maybe variable initialization is something to check for in other scripts as well... I have run GRUB installation with a corrected 50lilo; the resulting menu.lst is attached. This includes _all_ the entries possible for my system. The only remaining problem is that I still can't boot the hdb8 partition. Output of linux-boot-prober /dev/discs/disc1/part8: /dev/discs/disc1/part8:/dev/discs/disc1/part8:Debian GNU/Linux, kernel 2.4.25-1-686:/boot/vmlinuz-2.4.25-1-686:/boot/initrd.img-2.4.25-1-686:root=/ dev/hdb8 ro /dev/discs/disc1/part8:/dev/discs/disc1/part8:Debian GNU/Linux, kernel 2.4.25-1-686 (recovery mode):/boot/vmlinuz-2.4.25-1-686:/boot/ initrd.img-2.4.25-1-686:root=/dev/hdb8 ro single I have not investigated why '/boot' is stripped from the kernel and initrd entries for hdb8. I guess the rule should be that if the first 2 items in an entry from linux-boot-prober are different it _should_ be stripped, if they are the same it _should not_. Hope you can find the cause for this in time for Beta 4! Cheers, Frans
Attachment:
50mounted-tests
Description: application/shellscript
Test: /usr/lib/linux-boot-probes/mounted/40grub Partition: /dev/discs/disc0/part5 Bootpart: /dev/discs/disc0/part1 Tmpmnt: /var/lib/os-prober/mount Type: ext2 Test: /usr/lib/linux-boot-probes/mounted/50lilo Partition: /dev/discs/disc0/part5 Bootpart: /dev/discs/disc0/part1 Tmpmnt: /var/lib/os-prober/mount Type: ext2 Lilo.conf found, parsing... Liloparser: # /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)', Liloparser: # --------------- `install-mbr(8)', `/usr/share/doc/lilo/', Liloparser: # and `/usr/share/doc/mbr/'. Liloparser: Liloparser: # +---------------------------------------------------------------+ Liloparser: # | !! Reminder !! | Liloparser: # | | Liloparser: # | Don't forget to run `lilo' after you make changes to this | Liloparser: # | conffile, `/boot/bootmess.txt', or install a new kernel. The | Liloparser: # | computer will most likely fail to boot if a kernel-image | Liloparser: # | post-install script or you don't remember to run `lilo'. | Liloparser: # | | Liloparser: # +---------------------------------------------------------------+ Liloparser: Liloparser: # Support LBA for large hard disks. Liloparser: # Liloparser: lba32 Liloparser: Liloparser: # Overrides the default mapping between harddisk names and the BIOS' Liloparser: # harddisk order. Use with caution. Liloparser: #disk=/dev/hde Liloparser: # bios=0x81 Liloparser: Liloparser: #disk=/dev/sda Liloparser: # bios=0x80 Liloparser: Liloparser: # Specifies the boot device. This is where Lilo installs its boot Liloparser: # block. It can be either a partition, or the raw device, in which Liloparser: # case it installs in the MBR, and will overwrite the current MBR. Liloparser: # Liloparser: boot=/dev/hda Liloparser: Liloparser: # Specifies the device that should be mounted as root. (`/') Liloparser: # Liloparser: root=/dev/hda5 Liloparser: Liloparser: # Enable map compaction: Liloparser: # Tries to merge read requests for adjacent sectors into a single Liloparser: # read request. This drastically reduces load time and keeps the Liloparser: # map smaller. Using `compact' is especially recommended when Liloparser: # booting from a floppy disk. It is disabled here by default Liloparser: # because it doesn't always work. Liloparser: # Liloparser: # compact Liloparser: Liloparser: # Installs the specified file as the new boot sector Liloparser: # You have the choice between: bmp, compat, menu and text Liloparser: # Look in /boot/ and in lilo.conf(5) manpage for details Liloparser: # Liloparser: install=/boot/boot-menu.b Liloparser: Liloparser: # Specifies the location of the map file Liloparser: # Liloparser: map=/boot/map Liloparser: Liloparser: # You can set a password here, and uncomment the `restricted' lines Liloparser: # in the image definitions below to make it so that a password must Liloparser: # be typed to boot anything but a default configuration. If a Liloparser: # command line is given, other than one specified by an `append' Liloparser: # statement in `lilo.conf', the password will be required, but a Liloparser: # standard default boot will not require one. Liloparser: # Liloparser: # This will, for instance, prevent anyone with access to the Liloparser: # console from booting with something like `Linux init=/bin/sh', Liloparser: # and thus becoming `root' without proper authorization. Liloparser: # Liloparser: # Note that if you really need this type of security, you will Liloparser: # likely also want to use `install-mbr' to reconfigure the MBR Liloparser: # program, as well as set up your BIOS to disallow booting from Liloparser: # removable disk or CD-ROM, then put a password on getting into the Liloparser: # BIOS configuration as well. Please RTFM `install-mbr(8)'. Liloparser: # Liloparser: # password=tatercounter2000 Liloparser: Liloparser: # Specifies the number of deciseconds (0.1 seconds) LILO should Liloparser: # wait before booting the first image. Liloparser: # Liloparser: #delay=50 Liloparser: Liloparser: # You can put a customized boot message up if you like. If you use Liloparser: # `prompt', and this computer may need to reboot unattended, you Liloparser: # must specify a `timeout', or it will sit there forever waiting Liloparser: # for a keypress. `single-key' goes with the `alias' lines in the Liloparser: # `image' configurations below. eg: You can press `1' to boot Liloparser: # `Linux', `2' to boot `LinuxOLD', if you uncomment the `alias'. Liloparser: # Liloparser: # message=/boot/bootmess.txt Liloparser: prompt Liloparser: # single-key Liloparser: # delay=100 Liloparser: # timeout=50 Liloparser: Liloparser: # Specifies the VGA text mode at boot time. (normal, extended, ask, <mode>) Liloparser: # Liloparser: # vga=normal Liloparser: # vga=ask Liloparser: # vga=9 Liloparser: vga=7 Liloparser: Liloparser: # Kernel command line options that apply to all installed images go Liloparser: # here. See: The `boot-prompt-HOWO' and `kernel-parameters.txt' in Liloparser: # the Linux kernel `Documentation' directory. Liloparser: # Liloparser: # append="" Liloparser: Liloparser: # Boot up Linux by default. Liloparser: # Liloparser: default=Linux Liloparser: Liloparser: image=/boot/vmlinuz Recording stanza... RS2 - def_rootdev: /dev/hda5 def_kernel: def_parms: def_initrd: /install/cdrom.gz Liloparser: label=Linux Liloparser: read-only Liloparser: append="hdc=ide-scsi" Liloparser: # restricted Liloparser: # alias=1 Liloparser: Liloparser: image=/boot/vmlinuz.old Recording stanza... RS1 - title: rootdev: /dev/hda5 kernel: parms: initrd: Liloparser: label=LinuxPrevious Liloparser: read-only Liloparser: append="hdc=ide-scsi" Liloparser: Liloparser: image=/boot/vmlinuz.stable Recording stanza... RS1 - title: rootdev: /dev/hda5 kernel: parms: initrd: Liloparser: label=LinuxStable Liloparser: read-only Liloparser: append="hdc=ide-scsi" Liloparser: optional Liloparser: Liloparser: image=/boot/vmlinuz.orig Recording stanza... RS1 - title: rootdev: /dev/hda5 kernel: parms: initrd: Liloparser: label=LinuxOrig Liloparser: read-only Liloparser: optional Liloparser: Liloparser: # If you have another OS on this machine to boot, you can uncomment the Liloparser: # following lines, changing the device name on the `other' line to Liloparser: # where your other OS' partition is. Liloparser: # Liloparser: image=/boot/memtest86.bin Recording stanza... RS1 - title: rootdev: /dev/hda5 kernel: parms: initrd: Liloparser: label=Memtest Liloparser: Liloparser: other=/dev/hda3 Recording stanza... RS1 - title: rootdev: /dev/hda5 kernel: parms: initrd: Liloparser: label=Win2000 Liloparser: table=/dev/hda Liloparser: loader=/boot/chain.b Liloparser: # restricted Liloparser: # alias=2 Liloparser: Liloparser: other=/dev/hdb8 Recording stanza... RS2 - def_rootdev: /dev/hda5 def_kernel: def_parms: def_initrd: /install/cdrom.gz Liloparser: label=D-Installer Liloparser: loader=/boot/chain.b Liloparser: other=/dev/hdb9 Recording stanza... RS2 - def_rootdev: /dev/hda5 def_kernel: def_parms: def_initrd: /install/cdrom.gz Liloparser: label=D-I_Test Liloparser: loader=/boot/chain.b Recording stanza... RS2 - def_rootdev: /dev/hda5 def_kernel: def_parms: def_initrd: /install/cdrom.gz Test: /usr/lib/linux-boot-probes/mounted/90fallback Partition: /dev/discs/disc0/part5 Bootpart: /dev/discs/disc0/part1 Tmpmnt: /var/lib/os-prober/mount Type: ext2 /dev/discs/disc0/part5:/dev/discs/disc0/part1::/boot/vmlinuz::root=/dev/hda5 Test /usr/lib/linux-boot-probes/mounted/90fallback executed
Attachment:
50lilo
Description: application/shellscript
# menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ## default num # Set the default entry to the entry number NUM. Numbering starts from 0, and # the entry number 0 is the default if the command is not used. # # You can specify 'saved' instead of a number. In this case, the default entry # is the entry saved with the command 'savedefault'. default 0 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). timeout 5 # Pretty colours color cyan/blue white/blue ## password ['--md5'] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command 'lock' # e.g. password topsecret # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ # password topsecret # # examples # # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1 # # title Linux # root (hd0,1) # kernel /vmlinuz root=/dev/hda2 ro # # # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST ### BEGIN AUTOMAGIC KERNELS LIST ## lines between the AUTOMAGIC KERNELS LIST markers will be modified ## by the debian update-grub script except for the default optons below ## DO NOT UNCOMMENT THEM, Just edit them to your needs ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specifiv kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro # kopt=root=/dev/hdb9 ro ## default grub root device ## e.g. groot=(hd0,0) # groot=(hd1,8) ## should update-grub create alternative automagic boot options ## e.g. alternative=true ## alternative=false # alternative=true ## should update-grub lock alternative automagic boot options ## e.g. lockalternative=true ## lockalternative=false # lockalternative=false ## altoption boot targets option ## multiple altoptions lines are allowed ## e.g. altoptions=(extra menu suffix) extra boot options ## altoptions=(recovery mode) single # altoptions=(recovery mode) single ## controls how many kernels should be put into the menu.lst ## only counts the first occurence of a kernel, not the ## alternative kernel options ## e.g. howmany=all ## howmany=7 # howmany=all ## ## End Default Options ## title Debian GNU/Linux, kernel 2.4.25-1-386 root (hd1,8) kernel /boot/vmlinuz-2.4.25-1-386 root=/dev/hdb9 ro initrd /boot/initrd.img-2.4.25-1-386 savedefault boot title Debian GNU/Linux, kernel 2.4.25-1-386 (recovery mode) root (hd1,8) kernel /boot/vmlinuz-2.4.25-1-386 root=/dev/hdb9 ro single initrd /boot/initrd.img-2.4.25-1-386 savedefault boot ### END DEBIAN AUTOMAGIC KERNELS LIST # This is a divider, added to separate the menu items below from the Debian # ones. title Other operating systems: root # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hda3 title Windows NT/2000/XP root (hd0,2) savedefault makeactive chainloader +1 # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hda5. title Linux (on /dev/hda5) root (hd0,0) kernel /vmlinuz root=/dev/hda5 ro hdc=ide-scsi savedefault boot # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hda5. title LinuxPrevious (on /dev/hda5) root (hd0,0) kernel /vmlinuz.old root=/dev/hda5 ro hdc=ide-scsi savedefault boot # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hda5. title LinuxStable (on /dev/hda5) root (hd0,0) kernel /vmlinuz.stable root=/dev/hda5 ro hdc=ide-scsi savedefault boot # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hda5. title Memtest (on /dev/hda5) root (hd0,0) kernel /memtest86.bin root=/dev/hda5 savedefault boot # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hdb1 title Windows 95/98/Me root (hd1,0) savedefault makeactive chainloader +1 # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hdb8. title Debian GNU/Linux, kernel 2.4.25-1-686 (on /dev/hdb8) root (hd1,7) kernel /vmlinuz-2.4.25-1-686 root=/dev/hdb8 ro initrd /initrd.img-2.4.25-1-686 savedefault boot # This entry automatically added by the Debian installer for an existing # linux installation on /dev/hdb8. title Debian GNU/Linux, kernel 2.4.25-1-686 (recovery mode) (on /dev/hdb8) root (hd1,7) kernel /vmlinuz-2.4.25-1-686 root=/dev/hdb8 ro single initrd /initrd.img-2.4.25-1-686 savedefault boot