diff -r -u /home/p4/zfs/sys/boot/i386/libi386/biosdisk.c ./i386/libi386/biosdisk.c --- /home/p4/zfs/sys/boot/i386/libi386/biosdisk.c 2007-07-25 22:51:25.000000000 +0900 +++ ./i386/libi386/biosdisk.c 2007-08-22 19:33:47.410065716 +0900 @@ -600,7 +600,12 @@ if (lp->d_magic != DISKMAGIC) { DEBUG("no disklabel"); +#if 0 error = ENOENT; +#else + od->od_flags &= ~BD_LABELOK; + od->od_boff = sector; /* no partition, must be after the slice */ +#endif goto out; } if (dev->d_kind.biosdisk.partition >= lp->d_npartitions) { diff -r -u /home/p4/zfs/sys/boot/i386/loader/conf.c ./i386/loader/conf.c --- /home/p4/zfs/sys/boot/i386/loader/conf.c 2007-07-25 22:51:26.000000000 +0900 +++ ./i386/loader/conf.c 2007-08-09 14:30:18.606190576 +0900 @@ -89,12 +89,14 @@ #ifdef LOADER_BZIP2_SUPPORT &bzipfs_fsops, #endif +#if 0 #ifdef LOADER_NFS_SUPPORT &nfs_fsops, #endif #ifdef LOADER_TFTP_SUPPORT &tftp_fsops, #endif +#endif NULL }; diff -r -u /home/p4/zfs/sys/boot/zfs/zfsboot.c ./zfs/zfsboot.c --- /home/p4/zfs/sys/boot/zfs/zfsboot.c 2007-08-16 14:00:07.000000000 +0900 +++ ./zfs/zfsboot.c 2007-08-17 11:09:36.279338040 +0900 @@ -667,7 +667,8 @@ return (EIO); } - if (val != POOL_STATE_ACTIVE) { + /* Allow exported pools */ + if (!(val == POOL_STATE_ACTIVE || val == POOL_STATE_EXPORTED)) { /* * Don't print a message here. If we happen to reboot * while where is an exported pool around, we don't