zfs booting feedback
Kurt Lidl
lidl at pix.net
Tue Jul 10 16:54:36 UTC 2012
On Mon, Jul 09, 2012 at 04:00:19PM +0200, Marius Strobl wrote:
> On Sat, Jul 07, 2012 at 10:54:35PM -0400, Kurt Lidl wrote:
> > I built a full 9.0-stable distribution on Friday night, and got to play
> > with installing it on a spare Netra T1-105 today. Mostly I was
> > interested in testing out the integrated ZFS boot support that
> > was commited recently.
> >
> > First of all -- it works! Thanks very much to all who made it possible!
> >
> > After working through a couple of nits in my script that installs it all,
> > I've got a fully functioning, ZFS-only sparc64 machine. Nice.
> >
> > The zfsboot bootblock's warning about not being able to open non-existant
> > devices are pretty extranous, but other than that, it seems to function OK.
>
> That's more or less a cosmetic problem for now; there's no standard
> Open Firmware method allowing to test whether the device corresponding
> to a (automatically) created device alias actually exists short of
> trying to open it, with OFW causing at least the "Drive not ready"
> part on its own. There are some Sun specific extensions to the
> default methods whose names sound like they could be of some help
> here. I haven't gotten around to actually test whether this is the
> case or whether they actually exist in all OFW implementations of
> all sun4u models.
> If the aliases were artificially created via the `nvalias` command
> ("disk9" sounds a bit unusual for the automatically created ones)
> you can get rid of the none existing ones via `nvunalias` (needs
> a `reset-all` or power-cycle to take effect).
All the disks that were probed were part of the normally
defined devices on the machine. I only have two devices defined
in my nvramrc:
ok nvramrc type
devalias rootdisk /pci at 1f,0/pci at 1,1/scsi at 2/disk at 0,0
devalias rootmirror /pci at 1f,0/pci at 1,1/scsi at 2/disk at 1,0
And I have the system configured to boot from "rootdisk rootmirror".
Here's the full output of a 'devalias' from the prom on the machine:
ok devalias
cdrom1 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 6,0:f
cdrom /pci at 1f,0/pci at 1/pci at 1/ide at e/cdrom at 2:f
ide-disk /pci at 1f,0/pci at 1/pci at 1/ide at e/disk at 0:f
ide-cdrom /pci at 1f,0/pci at 1/pci at 1/ide at e/cdrom at 2:f
ide /pci at 1f,0/pci at 1/pci at 1/ide at e
rootmirror /pci at 1f,0/pci at 1,1/scsi at 2/disk at 1,0
rootdisk /pci at 1f,0/pci at 1,1/scsi at 2/disk at 0,0
userprom2 /pci at 1f,0/pci at 1,1/ebus at 1/flashprom at 10,800000
userprom1 /pci at 1f,0/pci at 1,1/ebus at 1/flashprom at 10,400000
i2c-cs2 /pci at 1f,0/pci at 1,1/ebus at 1/i2c at 14,100000
i2c /pci at 1f,0/pci at 1,1/ebus at 1/i2c at 14,600000
systemprom /pci at 1f,0/pci at 1,1/ebus at 1/flashprom at 10,0
pcic /pci at 1f,0/pci at 1/pci at 1
pcib /pci at 1f,0/pci at 1,1
pcia /pci at 1f,0/pci at 1
ebus /pci at 1f,0/pci at 1,1/ebus at 1
net2 /pci at 1f,0/pci at 1,1/network at 3,1
net /pci at 1f,0/pci at 1,1/network at 1,1
floppy /pci at 1f,0/pci at 1,1/ebus at 1/fdthree
disk /pci at 1f,0/pci at 1,1/scsi at 2/disk at 0,0
cdrom /pci at 1f,0/pci at 1,1/scsi at 2/disk at 6,0:f
tape /pci at 1f,0/pci at 1,1/scsi at 2/tape at 4,0
tape1 /pci at 1f,0/pci at 1,1/scsi at 2/tape at 5,0
tape0 /pci at 1f,0/pci at 1,1/scsi at 2/tape at 4,0
diskf /pci at 1f,0/pci at 1,1/scsi at 2/disk at f,0
diske /pci at 1f,0/pci at 1,1/scsi at 2/disk at e,0
diskd /pci at 1f,0/pci at 1,1/scsi at 2/disk at d,0
diskc /pci at 1f,0/pci at 1,1/scsi at 2/disk at c,0
diskb /pci at 1f,0/pci at 1,1/scsi at 2/disk at b,0
diska /pci at 1f,0/pci at 1,1/scsi at 2/disk at a,0
disk9 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 9,0
disk8 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 8,0
disk7 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 7,0
disk6 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 6,0
disk5 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 5,0
disk4 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 4,0
disk3 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 3,0
disk2 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 2,0
disk1 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 1,0
disk0 /pci at 1f,0/pci at 1,1/scsi at 2/disk at 0,0
scsi /pci at 1f,0/pci at 1,1/scsi at 2
ttyb /pci at 1f,0/pci at 1,1/ebus at 1/su at 14,3602f8
ttya /pci at 1f,0/pci at 1,1/ebus at 1/su at 14,3803f8
ttyd /pci at 1f,0/pci at 1,1/ebus at 1/se at 14,400000:b
ttyc /pci at 1f,0/pci at 1,1/ebus at 1/se at 14,400000:a
As you can see, the devices disk0..diskf exist, but something in the
boot code "only" probes the first 10 devices. It's certainly not
attempting to opening *all* the disk devices listed by 'devalias'.
It looks like from the code in .../sys/boot/sparc64/loader/main.c
that the first MAXDEV (==31) disk devices are probed (well, whatever
disk%d is an alias to, I suppose) and the vtoc's
loaded and examined for zfs partitions.
-Kurt
More information about the freebsd-sparc64
mailing list