Если система «на лету», инфомация о разделах ещё в памяти. А именно, в /sys/block/sd?/sd??/start и /sys/block/sd?/sd??/size. Они в секторах. Start — это буквально то же самое, что и start в таблице разделов, а size — ну, размер, в fdisk вводится как +sectors. В общем, можно написать таблицу разделов заново по этой информации из /sys
А вообще у меня бы такой проблемы не возникло. Дело не в аккуратности. Просто разбиение диска на разделы очень стандартное — если это MBR-диск, то 2048..+127M — это /boot (перед ним — 1M зазор, как понято, т.к. раздел начинается в 2048 секторе), остальное — LVM PV. Если это GPT-диск — то 1M зазор, затем с 2048 сектора до 4095 — 1M — bios_grub, затем +126M — /boot, остальное — LVM PV. Если дисков два, всё это — Software RAID массивы.
Такая стандартизация очень, очень помогает жить.