loader panics with 2 GPT partitioned drives
Yuri Pankov
yuri.pankov at gmail.com
Sat Jun 6 17:52:18 UTC 2009
On Sat, Jun 06, 2009 at 06:18:35AM +0400, Yuri Pankov wrote:
> Hi,
>
> I'm getting the following "panic" from loader when trying to attach
> another GPT partitioned drive. loader is built using LOADER_ZFS_SUPPORT.
>
> BTX Loader 1.00 BTX version is 1.02
> Consoles: internal video/keyboard
> BIOS drive C: is disk0
> BIOS drive D: is disk1
>
> panic:free: guard1 fail @ 0x7fd4b3f4 from
> /usr/src/sys/boot/i386/libi386/biosdisk.c:1048
>
>
> ad4:
> => 34 488397101 ad4 GPT (233G)
> 34 128 1 freebsd-boot (64K)
> 162 16777216 2 freebsd-swap (8.0G)
> 16777378 471619757 3 freebsd-zfs (225G)
>
> ad10:
> empty disk, `gpart create -s GPT ad10`
>
>
>
> Yuri
Looks like there are no checks in loader with GPT support if there are
no partitions defined (very rare case, but still.. :-). Attached patch
fixes booting with GPT disk without partitions (for me).
Yuri
-------------- next part --------------
Index: biosdisk.c
===================================================================
--- biosdisk.c (revision 193589)
+++ biosdisk.c (working copy)
@@ -990,7 +990,8 @@
out:
if (error) {
- free(od->od_partitions);
+ if (od->od_nparts > 0)
+ free(od->od_partitions);
od->od_flags &= ~BD_GPTOK;
}
return (error);
@@ -1044,7 +1045,7 @@
delay(3000000);
#endif
#ifdef LOADER_GPT_SUPPORT
- if (od->od_flags & BD_GPTOK)
+ if (od->od_flags & BD_GPTOK && od->od_nparts > 0)
free(od->od_partitions);
#endif
free(od);
More information about the freebsd-current
mailing list