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