Errors booting of the ZFS alternative mirror disk

Willem Jan Withagen wjw at digiware.nl
Sun Jan 30 22:29:52 UTC 2011


On 30-1-2011 20:32, Willem Jan Withagen wrote:
>>>>> But with only the second disk in the system, it does not boot. Not
>>>>> even when I put it in the bay of the first disk.
>>>>>
>>>>> On screen I get:
>>>>> Error 1  lba 32
>>>>> Error 1  lba 1
>>>>> Error 1  lba 32
>>>>> Error 1  lba 1
>>>>> No ZFS pools located, can't boot

This code stems from boot/boot2.c:
static int
drvread(void *buf, unsigned lba, unsigned nblk)
{
    static unsigned c = 0x2d5c7c2f;

    v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS;
    v86.addr = XREADORG;                /* call to xread in boot1 */
    v86.es = VTOPSEG(buf);
    v86.eax = lba;
    v86.ebx = VTOPOFF(buf);
    v86.ecx = lba >> 16;
    v86.edx = nblk << 8 | dsk.drive
    v86int();
    v86.ctl = V86_FLAGS;
    if (V86_CY(v86.efl)) {
        printf("error %u lba %u\n", v86.eax >> 8 & 0xff, lba);
        return -1;
    }
    return 0;
}

Suggesting that code from boot1 is used to read from the disk.

Now the question would be why doesn't this then just work when I place
the disk in at the first position.

This is not going to be a charmer, diving back into assembly and old PC
BIOS conventions....

Or could this occur when the MBR is not "correct"?

--WjW


More information about the freebsd-fs mailing list