I Need Help To Boot This New Version With Grub4dos

russed
edited February 2022 in The Archive

Hi.


Last time, about 6 month ago, I asked help to boot Bitdefender Rescue CD from its iso file with Gru4dos. I was quickly guided by the highly efficient Bitdefender tech support team. Thank you, guys.


Now I wanted to try the new version, and I found that it's different. Now it uses Grub2 EFI for the boot menu. After a while researching, I found that this entry in menu.lst should work:


title Bitdefender Rescue CD 2014 Lnx32 tr1


find --set-root /BitDefenderRescueCD_v2.0.0_5_10_2010.iso


map --mem /BitDefenderRescueCD_v2.0.0_5_10_2010.iso (hd32)


map --hook


root (hd32)


kernel /boot/efi.img


savedefault


boot


But it doesn't. In fact, what I found said that the kernel line should say kernel /boot/grub/core.img. But there isn't a core.img file in /boot/grub. The closest what I found was /boot/efi.img. Anyway, Grub4dos complains that:


Linux 'zImage' kernel too big, try 'make zImage'


Error 28: selected item cannot fit into memory


What makes no sense, because efi.img has only 2.5 Mb, and the whole disc has 656 Mb.


I did my homework and tryied several other ways. None worked, but some variants of the simplest general way almost did it:


title Bitdefender Rescue CD 2014 Lnx32 tr2


find --set-root --ignore-floppies --ignore-cd /BitDefenderRescueCD_v2.0.0_5_10_2010.iso


map --mem /BitDefenderRescueCD_v2.0.0_5_10_2010.iso (0xff)


map --hook


root (0xff)


chainloader (0xff)


At first, it seems to boot. It shows me the logo and the menu to boot Bitdefender in several languages. The first option is in English, the last one is in troubleshooting mode. None works.


After 'Making tmpfs for /newroot', Linux complains:


/init: line 311: awk: not found


After that, there are several lines starting with 'attenting to mount' several devices, not shown unless in troubleshooting mode.


Finally, it says:


Invalid loop location: /rescue/livecd.squashfs


Please export LOOP with a valid location


or reboot and pass a propper loop=...


And then I got the Busybox prompt.


At the command line, I typed 'ls /rescue/livecd.squashfs' and I got 'File not found'. Then I typed 'ls /rescue' and I got 'File not found' again. Then I typed 'ls /' and I found that there is not a rescue folder in the root (but it is indeed in the iso). Why Busybox can't find it?


I had a similar issue with Clonezilla, which uses syslinux to boot, and which is solved by adding the toram param to the kernel line.


So I tried by replacing the kernel line in my first menu entry with:


kernel /boot/efi.img toram=/rescue/livecd.squashfs


But it didn't work.


Any help would be appreciated.


Best regars.

Comments

  • russed, You can use iso hybrid mounting:


    title Bitdefender Rescue CD


    partnew (%@root:~1,3%,3) 0x00 /Boot/Bitdefender.iso


    map /Boot/Bitdefender.iso (0xff)


    map --hook


    kernel (0xff)/boot/kernel.i386-pc root=/dev/ram0 real_root=/dev/loop0 loop=/rescue/livecd.squashfs cdroot_marker=/rescue/livecd.squashfs initrd udev cdroot scandelay=10 quiet slash lang=en


    initrd (0xff)/boot/initfs.i386-pc


    Note, it's not working under virtual machine or after using Plop.