Люди делятся на две категории. Они делают резервные копии. Другие уже делают резервные копии. Я считаю, что у вас есть резервная копия.
Вам нужно пересоздать таблицу разделов через интерактив. fdisk
Если ваша ОС все еще работает, вы можете получить границы разделов из памяти ядра.
Вот пример из моей рабочей системы (RHEL7 с UEFI):
# fdisk -l /dev/sda Disk /dev/sda: 300.0 GB, 299966445568 bytes, 585871964 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 262144 bytes / 262144 bytes Disk label type: dos Disk identifier: 0x000a146c Device Boot Start End Blocks Id System /dev/sda1 * 2048 526335 262144 83 Linux /dev/sda2 526336 1050623 262144 6 FAT16 /dev/sda3 1050624 585871359 292410368 8e Linux LVM
У вас есть свободная информация / dev / sda1 и / dev / sda2, ниже которой вы можете восстановить. Найдите файлы с информацией о границах:
# find /sys -name start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda3/start ....
Начать блок sda1
раздела из памяти ядра
# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start 2048
Завершить блок sda1
раздела из памяти ядра
echo end $(( $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/size) \ + \ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda1/start) \ - 1 \ )) end 526335
Начать блок sda2
раздела из памяти ядра
# cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start 526336
Завершить блок sda2
раздела из памяти ядра
echo end $((\ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/size)\ + \ $(cat /sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2/start)\ - 1 \ )) end 1050623
Теперь вам нужно воссоздать потерянные разделы с этими границами с помощью интерактива fdisk
. Не забудьте установить тип раздела.
После восстановления разделов вам необходимо проверить их файловые системы. Вы пишете, что / boot / efi пусто, но оно должно быть пустым только в том случае, если вы НЕ используете UEFI. Вы можете попытаться восстановить его с помощью переустановки grub2-efi-x64
пакета.
Смотрите эту тему, чтобы продолжить восстановление.