मैंने इस समस्या को हल करने में मदद करने के लिए कोई स्क्रिप्ट नहीं बनाई, NO WARRANTY के साथ । (लेकिन मैंने अपनी वर्चुअल मशीन पर परीक्षण किया)
निम्नलिखित पैरामीटर के साथ, पहले पैरामीटर पर, क्षतिग्रस्त 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-install /dev/sda