1

I have a 4-way mirrored rpool on a set of GPT disks running Solaris 11.3 (GPT being used as the disks are more than 2TB in size) on x86 hardware.

Disks 1 and 2 are the "main" operating system. Disks 3 and 4 are intermittently present as they are offsite (offline) backup disks (which automatically update their data when present thanks to the magic of Solaris and ZFS) swapped in and out so all the data is never in one place.

I'm trying to wipe the "MBR" of disks 3 and 4 so they can't be accidentally booted (as the data may be stale) but just can't seem to find a decent explanation of:

  • where the "MBR" resides on a GPT disk and/or what format the initial bytes would be (from reading it seems to suggest wiping the initial bytes would also wipe the GUID Partition Table)
  • how a GPT disk actually boots / what is on the initial bios_grub partition (which created using GParted on Ubuntu but now seems to be in Solaris file format from what I can see?)
  • how this could be done in Solaris 11.3 without wiping key information as I may have to restore the ability to boot from these disks at a later date (I've read about bootadm and /sbin/installgrub but seem no closer to an answer or working solution). (I also need to be able to restore boot ability should disk 1 or 2 break which means I need to replace the disk and make it bootable.)

Any ideas? :-/

  • Could you post both the partition configuration and all the device files available in /dev/... for the disks in question? I had to do the same a few years ago, and I seem to remember having to use dd on one of the device files. But I was wiping the entire disk so I didn't care if I went too far. – Andrew Henle Oct 31 '17 at 9:37
1

One of my first thoughts would be to change the bootfs flag on the rpool, or modify the grub config.

I'm rusty on drives on x86 systems, but I think the answer you may be looking for is to set the partition differently by setting/removing the boot/primary flags. Catch is this might change the partition size for your zpool(s) not allowing a mirror.

But I'm not sure if you can do what you're wanting to. Breaking the mirror doesn't guarantee that one of the drives could be imported as a pool cleanly. I've seen numerous questions/blogs that if discuss if issuing a zpool split on a rpool is a valid option for DR.

If your DR site is connected, a better option may be to issue a zfs send/receive over ssh.

I've used UAR to build a system, and found it worked quite well. So well, that I'm working on some scripts to create UARs of systems as part of a new DR procedure.

You may also want to refer to the MOS doc to see if it offers anything: Information Center: Booting the Oracle Solaris 11 Operating System (Doc ID 1559838.2)

  • Yes, I was trying to change the grub config, but need to do this only to the part outside the mirrored rpool (otherwise presumably this would occur on all disks). I've clarified the question a little - disks 3 and 4 are swapped back and forth from being both offsite and offline as a quick and easy DR method (as this is only a home NAS server but designed to be very resilient). – SharpC Oct 31 '17 at 10:04
1

Managed to sort it in the end but not quite the way intended, although probably easier in the long run.

I first used:

bootadm install-bootloader

which ensures all the disks boot.

The BIOS then has a disks section which looks like a lists of disks it allows to be used. The list is however a list of disks it boots from, so removed disks 3 and 4 from there and voilà! (I did notice the disks listed were not necessarily in the order of the slots, so had to do the step with care.)

If issues do develop then rather than installing a bootloader on disks 3/4 I can simply amend the BIOS as a bootloader already exists.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.