On Sun, Jul 21, 2002 at 11:36:33PM +0200, Mark Kettenis wrote:
>    From: "Artem 'Zazoobr' Ignatjev" <[EMAIL PROTECTED]>
>    Date: Sun, 21 Jul 2002 18:06:24 +0400
> 
>    On Sun, Jul 21, 2002 at 02:09:52AM -0400, Brad Laue wrote:
>     >>        I'm currently trying to make FreeBSD boot from extended
>     >> partitions (of course, with help of boot mgr - in my case that's WinNT
>     >> loader), and not without any progress: After patching /boot/loader to
>     >> understand EXT_X partition type, I'm able to  boot  from /dev/ad4s9.
>     > 
>     > I'd be very interested in seeing your progress on this, and I think 
>     > Simon 'corecode' Schultz would be as well - looking forward to it! 
>     > Attach it to your reply.
>      Well, I don't think that all subcribers of this list wants to see this
>     staff, and don't know whether majordomo allows attaches in this list.
>      I will email it to you, and if anyone else is interested in this work,
>     I'd put it here: http://memphis.mephi.ru/~timon/
>                          Sinceherely yours, Artem 'Zazoobr' Ignatjev.
> 
> In case you're wondering why you can't boot from /dev/ad4s10 and
> above, take a look at the attached patch for vfs_conf.c.  I also
> included my version of a patch to fix the problems with extended
> partitions in /boot/loader.  I didn't look too closely at your code,
> but my patch arranges things such that the slice numbers used by
> /boot/loader match the slice numbers used by the kernel.
> 
> I didn't look at boot0 and boot1 since I'm using GRUB on my system.
> 
        nah. I boot from this partition from tuesday. And the patch I've
done is more complex.
> --- /usr/src/sys/kern/vfs_conf.c.orig Mon Feb  4 14:08:12 2002
> +++ /usr/src/sys/kern/vfs_conf.c      Fri Jul 12 17:34:02 2002
> @@ -356,8 +356,10 @@ gotit:
>       while (*cp >= '0' && *cp <= '9')
>               unit = 10 * unit + *cp++ - '0';
>       if (*cp == 's' && cp[1] >= '0' && cp[1] <= '9') {
> -             slice = cp[1] - '0' + 1;
> -             cp += 2;
> +             cp++;
> +             while (*cp >= '0' && *cp <= '9')
> +                     slice = 10 * slice + *cp++ - '0';
> +             slice++;
>       }
>       if (*cp >= 'a' && *cp <= 'h') {
>               part = *cp - 'a';
        Whoops... Since I'm booting from s9, this wasn't needed, but I
        put that in my site as soon as I get to it.
                        Sinceherely yours, Artem 'Zazoobr' Ignatjev.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to