GARANTİ YOK , bu sorunu çözmek için bir komut dosyası yaptım . (ancak sanal makinemde test yaptım)
Aşağıdaki komut dosyasını, ilk parametrede hasar görmüş HD ile, aşağıdaki gibi çalıştırın:
user@host:~$ ./repart.sh sda
İçeriği 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
Çıktı bir sfdisk biçimidir. Ancak dikkatli olun , bu dosya kullanılacak şekilde değiştirilmelidir. Genişletilmiş bölüm türünde = 5, tüm mantıksal alanı ve genişletilmiş başlangıç ile ilk mantıksal bölümün başlangıcı arasındaki boşluğu kullanarak boyutu artırın.
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
Türü , XX'den bölüm türü sayısına değiştirmeniz gerekir . Önyüklenebilir bölümü ilk satıra koyun .
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
Bu değişiklikleri uygula
cat repart.sfdisk | sfdisk -f /dev/sda
Bölüm tablolarını yeniden okuma
partprobe
/sbin/blockdev --rereadpt
Grub'u yeniden yükle
grub-install /dev/sda