For the sake of completeness, in the end I simply created links in
/dev/rdsk for c1t0d0sX to point to my disk and was able to reactivate
the current BE.
The shroud of mystery hasn''t lifted though because when I did
eventually
reboot, I performed a reconfigure (boot -r) and the format and cfgadm
commands now report my disk to be attached to the c1 controller.
I don''t know how or why Solaris can go from detecting C1 to C5 and back
to C1 again, but at least now ZFS and format agrees on where my disk is.
Maybe the last time I did a reconfigure was when I booted from the LiveCD ?
Caryl
On 10/07/08 11:58, Caryl Takvorian wrote:> Hi all,
>
> Please keep me on cc: since I am not subscribed to either lists.
>
>
> I have a weird problem with my OpenSolaris 2008.05 installation (build
> 96) on my Ultra 20 workstation.
> For some reason, ZFS has been confused and has recently starting to
> believe that my zpool is using a device which does not exist !
>
> prodigal:zfs #zpool status
> pool: rpool
> state: ONLINE
> scrub: none requested
> config:
>
> NAME STATE READ WRITE CKSUM
> rpool ONLINE 0 0 0
> c1t0d0s0 ONLINE 0 0 0
>
> errors: No known data errors
>
>
> The c1t0d0s0 device doesn''t exist on my system. Instead, my disk
is
> attached to c5t0d0s0 as shown by
>
> prodigal:zfs #format
> Searching for disks...done
>
>
> AVAILABLE DISK SELECTIONS:
> 0. c5t0d0 <DEFAULT cyl 30398 alt 2 hd 255 sec 63>
> /pci at 0,0/pci108e,5347 at 7/disk at 0,0
>
> or
>
> prodigal:zfs #cfgadm Ap_Id Type
> Receptacle Occupant Condition
> sata0/0::dsk/c5t0d0 disk connected configured ok
>
>
>
> What is really annoying is that I attempted to update my current
> OpenSolaris build 96 to the latest (b98) by using
>
> # pkg image-update
>
> The update went well, and at the end it selected the new BE to be
> activated upon reboot, but failed when attempting to modify the grub
> entry because install_grub asks ZFS what is my boot device and gets
> back the wrong device (of course, I am using ZFS as my root
> filesystem, otherwise it wouldn''t be fun).
>
> When I manually try to run install_grub, this is the error message I get:
>
> prodigal:zfs #/tmp/tmpkkEF1W/boot/solaris/bin/update_grub -R
> /tmp/tmpkkEF1W
> Creating GRUB menu in /tmp/tmpkkEF1W
> bootadm: fstyp -a on device /dev/rdsk/c1t0d0s0 failed
> bootadm: failed to get pool for device: /dev/rdsk/c1t0d0s0
> bootadm: fstyp -a on device /dev/rdsk/c1t0d0s0 failed
> bootadm: failed to get pool name from /dev/rdsk/c1t0d0s0
> bootadm: failed to create GRUB boot signature for device:
> /dev/rdsk/c1t0d0s0
> bootadm: failed to get grubsign for root: /tmp/tmpkkEF1W, device
> /dev/rdsk/c1t0d0s0
> Installing grub on /dev/rdsk/c1t0d0s0
> cannot open/stat device /dev/rdsk/c1t0d0s2
>
>
> The worst bit, is that now beadm refuses to reactivate my current
> running OS to be used upon the next reboot.
> So, the next time I reboot, my system is probably never going to come
> back up.
>
>
> prodigal:zfs #beadm list
>
> BE Active Mountpoint Space Policy Created
> -- ------ ---------- ----- ------ -------
> opensolaris-5 N / 128.50M static 2008-09-09 13:03
> opensolaris-6 R /tmp/tmpkkEF1W 52.19G static 2008-10-07 10:14
>
>
> prodigal:zfs #export BE_PRINT_ERR=true
> prodigal:zfs #beadm activate opensolaris-5
> be_do_installgrub: installgrub failed for device c1t0d0s0.
> beadm: Unable to activate opensolaris-5
>
>
> So, how can I force zpool to accept that my disk device really is on
> c5t0d0s0 and forget about c1?
>
> Since the file /etc/zfs/zpool.cache contains a reference to
> /dev/dsk/c1t0d0s0 I have rebuilt the boot_archive after removing it
> from the ramdisk, but I''ve got cold feet about rebooting without
> confirmation.
>
>
> Has anyone seen this before or has any idea how to fix this situation ?
>
>
> Thanks
>
>
> Caryl
>
>
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Caryl Takvorian caryl.takvorian at sun.com
ISV Engineering phone : +44 (0)1252 420 686
Sun Microsystems UK mobile: +44 (0)771 778 5646