On 2012-07-09 19:49, Warren Block wrote:
On Mon, 9 Jul 2012, dweimer wrote:

I have had a few virtual machine installations come up with "gptboot: invalid GPT backup header" error message while booting. (some immediately on first boot after install) They still boot fine, and run without problems, but I would like to find a way to fix the problem. Does anyone know how you can write a new GPT backup header to the partition table.

See the gpart recover command covered in the RECOVERING section in gpart(8).

I have even gone to the extent of adding a second virtual disk, using gpart to create a partition table and then add new partitions and setup bootstrap then use cpio to copy data over and switched the drive SCSI IDs within the virtual machines configuration to boot from the second drive instead. Still same error message when booting off the new drive. I did however leave out the size option when creating the last UFS partition so it may have filled to the end and overwrote the backup GPT table.

gpart will not overwrite the backup GPT with a partition.  Other
stuff may not be GPT-aware.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

I only used gpart, to create the partitions for the disk. Here is the procedure that I followed except in this case I added labels to the UFS slices just so it was clear what everything was used for. I followed this by mounting each partition under /mnt/ and using "find . -mount -print0 | cpio -0dump /mnt/" from the current mounted partitions. below are the commands I removed the output from all but the gpart show command, da0 is not the original installed drive, but the one I made using this process last time, da1 was the installed drive, but of course now has been rewritten with the new data.

fhproxy1-new# dd if=/dev/zero of=/dev/da1 bs=1024 count=1024
fhproxy1-new# gpart create -s GPT da1
fhproxy1-new# gpart show
fhproxy1-new# gpart add -s 128 -t freebsd-boot -l boot da1
fhproxy1-new# gpart add -a 2048 -t freebsd-swap -l swap -s 2G da1
fhproxy1-new# gpart add -t freebsd-ufs -l root -s 1G da1
fhproxy1-new# gpart add -t freebsd-ufs -l home -s 1G da1
fhproxy1-new# gpart add -t freebsd-ufs -l tmp -s 1G da1
fhproxy1-new# gpart add -t freebsd-ufs -l var -s 2G da1
fhproxy1-new# gpart add -t freebsd-ufs -l usr da1
fhproxy1-new# gpart show

=>      34  35651517  da0  GPT  (17G)
        34       128    1  freebsd-boot  (64k)
       162      2910       - free -  (1.4M)
      3072   4194304    2  freebsd-swap  (2.0G)
   4197376   2097152    3  freebsd-ufs  (1.0G)
   6294528   2097152    4  freebsd-ufs  (1.0G)
   8391680   2097152    5  freebsd-ufs  (1.0G)
  10488832   4194304    6  freebsd-ufs  (2.0G)
  14683136  20968415    7  freebsd-ufs  (10G)

=>      34  35651517  da1  GPT  (17G)
        34       128    1  freebsd-boot  (64k)
       162      1886       - free -  (943k)
      2048   4194304    2  freebsd-swap  (2.0G)
   4196352   2097152    3  freebsd-ufs  (1.0G)
   6293504   2097152    4  freebsd-ufs  (1.0G)
   8390656   2097152    5  freebsd-ufs  (1.0G)
  10487808   4194304    6  freebsd-ufs  (2.0G)
  14682112  20969439    7  freebsd-ufs  (10G)

fhproxy1-new# newfs -U /dev/gpt/root
fhproxy1-new# newfs -U /dev/gpt/home
fhproxy1-new# newfs -U /dev/gpt/tmp
fhproxy1-new# newfs -U /dev/gpt/var
fhproxy1-new# newfs -U /dev/gpt/usr
fhproxy1-new# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da1

I will copy the data over and try a reboot again this afternoon and see if maybe this time it works. gpart recover returns that no recovery is needed on both da0 and da1.

--
Thanks,
   Dean E. Weimer
   http://www.dweimer.net/
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to