On Tuesday 20 December 2005 11:43 pm, Tony wrote: > Hi, > I'm trying to make an iso image that will boot FreeBSD using GRUB boot > loader. > Grub will boot /boot/loader and the loader will boot /boot/kernel. It > goes well on my disk, but when I try to make a livecd, it fails. I spend > some time figuring out that /boot/loader does not probe cd it self, it > depends on boot2 to tell him which cd to boot from. So I did some hack > on /boot/loader.
Why do you need to use GRUB? The current cdboot + /boot/loader stuff works as is. boot2 doesn't actually pass the special CD flag, cdboot does. The patch below is not quite acceptable for the tree as there are non-CD cases where you could get that error. If you ahve a way to patch GRUB to set the CD flag in the bootinfo struct when it boots from CD that would be ideal. > Bellow is the diff: > *** sys/boot/i386/loader/main.c.bak Sun Dec 11 19:32:29 2005 > --- sys/boot/i386/loader/main.c Sun Dec 11 22:04:29 2005 > *************** > *** 228,235 **** > if ((new_currdev.d_type == biosdisk.dv_type) && > ((new_currdev.d_kind.biosdisk.unit = bd_bios2unit(biosdev)) == > -1)) { > printf("Can't work out which disk we are booting from.\n" > ! "Guessed BIOS device 0x%x not found by probes, defaulting > to disk0:\n", biosdev); > ! new_currdev.d_kind.biosdisk.unit = 0; > } > env_setenv("currdev", EV_VOLATILE, i386_fmtdev(&new_currdev), > i386_setcurrdev, env_nounset); > --- 228,238 ---- > if ((new_currdev.d_type == biosdisk.dv_type) && > ((new_currdev.d_kind.biosdisk.unit = bd_bios2unit(biosdev)) == > -1)) { > printf("Can't work out which disk we are booting from.\n" > ! "Guessed BIOS device 0x%x not found by probes, defaulting > to cd0(%d):\n", biosdev, biosdev); > ! bc_add(biosdev); > ! new_currdev.d_type = bioscd.dv_type; > ! new_currdev.d_dev = &bioscd; > ! new_currdev.d_kind.bioscd.unit = bc_bios2unit(biosdev); > } > env_setenv("currdev", EV_VOLATILE, i386_fmtdev(&new_currdev), > i386_setcurrdev, env_nounset); > > Then the kernel starts, but when the kernel try to mount the root fs, it > stops. I have the follow line in my /etc/fstab > /dev/acd0c / cd9660 ro 0 0 > > I am stranded. Can anyone help? I'm using FreeBSD 5.4 > > thanks > Tony > > > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "[EMAIL PROTECTED]" -- John Baldwin <[EMAIL PROTECTED]> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"