Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Jan 2011 23:29:48 +0100
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        fs@freebsd.org
Subject:   Re: Errors booting of the ZFS alternative mirror disk
Message-ID:  <4D45E65C.2040200@digiware.nl>
In-Reply-To: <4D45BCE2.1020508@digiware.nl>
References:  <20110130143045.GA50566@icarus.home.lan>	<4D457AB1.90109@digiware.nl>	<20110130150226.GA51190@icarus.home.lan> <4D45BCE2.1020508@digiware.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D45E65C.2040200>