Я створив сценарій, щоб допомогти вирішити цю проблему, БЕЗ ГАРАНТІЇ . (але я перевірив свою віртуальну машину)
Запуск наступного скрипту з пошкодженим HD першим параметром, як у:
user@host:~$ ./repart.sh sda
Вміст repart.sh
:
#!/bin/bash
echo "unit: sectors"
for i in /sys/block/$1/$1?/; do
printf '/dev/%s : start=%d, size=%d, type=XX\n' "$(basename $i)" "$(<$i/start)" "$(<$i/size)"
done
Вихід - формат sfdisk. Але обережно , цей файл повинен бути змінений, щоб використовувати його. При розширеному типі розділу = 5 збільште розмір, використовуючи весь логічний простір плюс пробіл між початком розширеного і початком першого логічного розділу.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=XX
/dev/sda2 : start=2040255, size=20482875, type=XX
/dev/sda3 : start=22523130, size=19197675, type=XX
/dev/sda4 : start=41720805, size=2, type=XX
/dev/sda5 : start=41720868, size=208782, type=XX
Вам потрібно змінити тип , з XX на номер типу розділу. Помістіть завантажувальний розділ на перший рядок.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=83, bootable
/dev/sda2 : start=2040255, size=20482875, type=83
/dev/sda3 : start=22523130, size=19197675, type=fd
/dev/sda4 : start=41720805, size=208845, type=5
/dev/sda5 : start=41720868, size=208782, type=82
Застосуйте ці зміни
cat repart.sfdisk | sfdisk -f /dev/sda
Перечитайте таблиці розділів
partprobe
/sbin/blockdev --rereadpt
Перевстановити grub
grub-install /dev/sda