Re: gptzfsboot error using HP Smart Array P410i Controller
Hello Everyone,
Despite the BIOS information about the nonexistent floppy, the zfsboot.c =
code=20
will prevent to boot from the first HDD if a floppy is given as a first =
available device.
The drive 0x0 (floppy) will be probed before the code below and an error =
occurs:
[=85]
gptzfsboot: error 1 lba 32 =
=20
gptzfsboot: error 1 lba 1 =
=20
[=85]
The continue statement will skip the rest of the iteration because =20
if ((i | DRV_HARD) =3D=3D *(uint8_t *)PTOV(ARGS))=20
is true if the drive equals 0x80. As a result we do not call =
probe_drive()
for this drive.
Eliminating
if ((i | DRV_HARD) =3D=3D *(uint8_t *)PTOV(ARGS)) =20
continue;
would help.
Any comments will be appreciated.
Best Regards,
Christoph
i386/zfsboot/zfsboot.c
int
main(void)
{ =20
[=85]
/*
* Probe the rest of the drives that the bios knows about. This
* will find any other available pools and it may fill in missing
* vdevs for the boot pool.
*/
for (i =3D 0; i < *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++) {
if ((i | DRV_HARD) =3D=3D *(uint8_t *)PTOV(ARGS)) =20
continue;
if (!int13probe(i | DRV_HARD))
break;
[=85]
probe_drive(dsk, NULL);
}
[=85]
On Aug 5, 2011, at 1:47 PM, Christoph Hoffmann wrote:
> Hello John,
>=20
> No, I and not using clang.
>=20
> My problem persists even I apply the patch.=20
>=20
> As a workaround I have to put OS on second LUN presented by the=20
> P410i Controller.
>=20
> Regards,
>=20
> Christoph
>=20
> --
> Christoph Hoffmann
>=20
>=20
> On Aug 5, 2011, at 1:37 PM, John Baldwin wrote:
>=20
>> On Thursday, August 04, 2011 3:26:49 pm Christoph Hoffmann wrote:
>>> Hello Everyone,
>>>=20
>>> The system will successfully boot only if the OS installation is =
laying on
>>> the second drive or higher (0x81 and more).
>>=20
>> Are you using clang? If so, you should try either using GCC or using =
this=20
>> patch with clang as a workaround from the previous thread on zfsboot =
issues:
>>=20
>> Index: sys/boot/i386/zfsboot/Makefile
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> --- sys/boot/i386/zfsboot/Makefile (revision 224653)
>> +++ sys/boot/i386/zfsboot/Makefile (working copy)
>> @@ -20,7 +20,6 @@
>> -fomit-frame-pointer \
>> -fno-unit-at-a-time \
>> -mno-align-long-strings \
>> - -mrtd \
>> -DBOOT2 \
>> -DSIOPRT=3D${BOOT_COMCONSOLE_PORT} \
>> -DSIOFMT=3D${B2SIOFMT} \
>> Index: sys/boot/i386/gptzfsboot/Makefile
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> --- sys/boot/i386/gptzfsboot/Makefile (revision 224653)
>> +++ sys/boot/i386/gptzfsboot/Makefile (working copy)
>> @@ -22,7 +22,6 @@
>> -fomit-frame-pointer \
>> -fno-unit-at-a-time \
>> -mno-align-long-strings \
>> - -mrtd \
>> -DGPT -DBOOT2 \
>> -DSIOPRT=3D${BOOT_COMCONSOLE_PORT} \
>> -DSIOFMT=3D${B2SIOFMT} \
>>=20
>> --=20
>> John Baldwin
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org"
>=20
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org"
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 5 之 40 篇):