freebsd-skq/sys/geom/part
eugen 22eefa8b94 geom_part: make it possible recovering broken GPT after some LBAs cut off
This is followup to r365477.

If pre-formatted device has GPT and a partition covering
last available LBAs and the device is attached using
a bridge reducing amount of LBAs, then it could be not enough
forcing GEOM to use primary GPT. Also, we should make it possible
to recover GPT and this requires either deleting or resizing the partition.

This change enables "gpart delete" and "gpart resize" commands
on corrupted GPT with following "gpart recover".

It still does not allow modifying corrupted GPT without
preliminary setting sysctl kern.geom.part.check_integrity=0

For example:

# gpart show da0
=>        34  3906963389  da0  GPT  (1.8T) [CORRUPT]
          34      262144    1  ms-reserved  (128M)
      262178        2014       - free -  (1.0M)
      264192  3906764943    2  freebsd-swap  (1.8T)
# gpart resize -i 2 -s 3900000000 da0
# gpart recover da0

Reported by:	Alex Korchmar
MFC after:	3 days
2020-09-17 04:39:39 +00:00
..
g_part_apm.c Use sbuf_cat() in GEOM confxml generation. 2019-06-19 15:36:02 +00:00
g_part_bsd64.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
g_part_bsd.c Annotate geom modules with MODULE_VERSION 2018-04-10 19:18:16 +00:00
g_part_ebr.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
g_part_gpt.c geom_part: extend kern.geom.part.check_integrity to work on GPT 2020-09-08 22:23:53 +00:00
g_part_if.m geom_part: Dispatch to partitions to create providers and aliases 2020-05-29 19:44:18 +00:00
g_part_ldm.c geom: clean up empty lines in .c and .h files 2020-09-01 22:14:09 +00:00
g_part_mbr.c Revert r362466 2020-06-22 07:46:24 +00:00
g_part_vtoc8.c Use snprintf instead of sprintf. 2020-07-26 01:45:26 +00:00
g_part.c geom_part: make it possible recovering broken GPT after some LBAs cut off 2020-09-17 04:39:39 +00:00
g_part.h gpart(8): Recognize apple-zfs and solaris-reserved partition ids 2020-08-17 17:07:05 +00:00