Смена таблицы разделов перетирает только свои сектора, но не трогает лишние данные, иначе было бы жутко медленно и печально.
GPT хранит себя в первых и последних 40 секторах диска (вроде 34 в начале и 32 в конце). MBR — в первых 63.
Итого, оперируем непременно секторами! (на примере GNU parted — unit s)
0) Смотрите имеющуюся разметку, перепишите её на листочек.
1) проверьте, что после последнего раздела должно быть свободно 40 секторов. Если это не так — измените размер раздела.
Место перед разделами есть априори — MBR занимает больше места в начале диска, чем GPT
2) создаёте новый заголовок GPT (mklabel gpt)
3) создаёте разделы по секторам 1в1 как те, что были
4) ФС не должны ничего заметить
Не могу гарантировать, что винда корректно заведётся, если ей вдруг подсунуть не ту таблицу разделов, к которой она привыкла.
Ну и, само собой, только имея бекапы всех важных данных.