kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS
In some of our testing on VMware Fusion, the console display would not
be set properly with this method. OmniOS, however, will come up. This is
why we recommend a BE that has known-working networking. Once OmniOS is
booted, you can use
beadm destroy OtherBEname to eliminate BEs that are crowding up menu.lst.
zpool import -R /tmp/mnt <root-pool-name>
You will see a lot of entries grouped like this:
title r151012-Dec08-backup-1 bootfs rpool/ROOT/r151012-Dec08-backup-1 kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive #============ End of LIBBE entry ============= title r151012-Dec08-backup-2 bootfs rpool/ROOT/r151012-Dec08-backup-2 kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive #============ End of LIBBE entry =============
Those are two BE entries. You will need to remove BEs in five-line
groups, starting with the
title line and ending with the
==== line. Make note of
which BE entries you are deleting, as you will need to explicitly delete
them upon reboot. Make sure you do not delete the BE you wish to enter.
ALSO, it is likely the “default” entry will be inaccurate after editing,
so use GRUB to explicitly pick your BE next boot.
After editing the menu.lst file down to a smaller size (30 entries or less is a good rule of thumb, anything above 40 risks triggering this problem), write out the smaller file in place.
zpool export <root-pool-name>
beadm destroy <deleted-BE-name>. This will destroy the datasets that back up the BEs you deleted from GRUB
The version of GRUB used in illumos does not scale well to multiple entries, because of GRUB’s poor memory management. It is the illumos community’s intention to eventually replace the current GRUB with something better. Community contributions are, as always, welcome.