Hello. Please, forgive, if this is a duplicate question, but search returns too many irrelevant entries, and I can't find the answer.
I have simplest system configuration: Solaris Express (build 130) X86 installed on single PATA drive, root is ZFS. I need to replace the drive with another one, but with smaller size. The whole process is straightforward, but I have an epic fail at the end. Here are my basic steps (may skip for the 1st reading) 1) physically attach new drive to the system 2) 'fdisk' new drive, and make one active primary "Solaris2" partition. 3) 'format' new drive: 'SMI' label, make 'root' slice 0 covering the whole disk, label again. 4) make 'apool' zpool on slice 0 and apool/ROOT/snv_130 zdatasets. Atrributes for pool (bootfs) and datasets (mountpoint,canmount) are set accordingly to old 'rpool' attributes. 5) copy filesystems (tar c|tar x): rpool -> apool {,/ROOT/snv_130}, create mountpoints. 6) installgrub -m .... 'new drive' 7) replace all 'pool_rpool' entries in grub configuration (apool/boot/*) with 'pool_apool' 8) (optional) bootadm update-archive -R 'where apool/ROOT/snv_130 is mounted' Now I am boot from the new drive: Grub successfully loads, reads new menu.lst, loads kernel and boot_archive, and passes control to the kernel. Kernel starts booting, but stops silently. I have tried to boot verbosely (-v) and made sure the kernel gets correct bootfs name from grub. During boot, kernel outputs: | root on apool/ROOT/snv_130 and I have noted, that boot from new drive dies just before it should output: | pseudo_device: zfs0 | zfs0 is /pseudo/zfs at 0 Even '-m milestone=none' can not be reached. I can't figure out what I have missed. Please, advice. I can't believe that Solaris disk can not replaced. Best regards, -- Konstantin Andreev