Jak ręcznie naprawić tablicę partycji?

10

Ostatnio miałem problem z tabelą MBR / partycji na moim laptopie. Udało mi się odbudować tablicę partycji za pomocą testdisk i zainstalować GRUB, aby znów poprawnie się uruchamiał (korzystam z podwójnego rozruchu w systemie Windows 7). Jednak nie mogę już poprawnie uruchomić gparted, gdy pojawia się błąd Can't have a partition outside the disk!.

fdisk -l dane wyjściowe wyglądają tak:

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x188f12a9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         154     1228800    7  HPFS/NTFS/exFAT
/dev/sda2             154       13446   106775171    7  HPFS/NTFS/exFAT
/dev/sda3           13447       28745   122880000   83  Linux
/dev/sda4           28745       30402    13317664+   f  W95 Ext'd (LBA)
/dev/sda5           28745       29127     3069944   82  Linux swap / Solaris
/dev/sda6           29127       30402    10240000    7  HPFS/NTFS/exFAT

Tak więc dysk ma 30401 cylinders, ale sda6kończy się na cylinder 30402; prawdopodobnie jest to problem.

Kiedy uruchamiam testdisk, ma szóstą partycję kończącą się na cylinder 30401, ale zapisanie go do tablicy partycji nie robi żadnej różnicy.

Czy istnieje prosty sposób, aby to naprawić?

Przeczytałem gdzie indziej, że mogę to naprawić, ręcznie edytując tablicę partycji, ale chciałbym bardzo konkretnych instrukcji, ponieważ tak naprawdę niewiele wiem o tym obszarze!

jwaddell
źródło
1
Czy potrafisz biegać gparted /dev/sda6? Czy możesz uruchomić edytor partycji z Live CD? W przeciwnym razie instrukcja może być
dobrym
To samo dzieje się podczas korzystania z Live CD. Spróbuję gparted /dev/sda6dziś wieczorem.
jwaddell

Odpowiedzi:

11

Użyj fdisk. Przełącz go w tryb sektorowy za pomocą upolecenia, a następnie pwydrukuj tabelę, dusuń partycję, a następnie nją ponownie utwórz. Po jego odtworzeniu użyj tego samego sektora początkowego, ale sektora końcowego, który faktycznie mieści się na dysku. Po pzakończeniu i dwukrotnym sprawdzeniu ( ponownie) zapisz i wyjdź za pomocą w.

psusi
źródło
1
Okazało się, że była to rozszerzona partycja, ale fdiskdziałała dobrze, aby ją odtworzyć i znajdujące się w niej partycje logiczne. gpartedteraz otwiera się poprawnie.
jwaddell,
Czy nie spowodowałoby to utraty danych? Być może ostrzeżenie ...
ADTC
@ ADTC, nie; chodzi o odzyskanie danych.
psusi
1
@ ADTC, nowy nie będzie pusty, ponieważ usunięcie i ponowne utworzenie partycji nie dotyka danych na partycji; ustawia tylko granice w tablicy partycji. Usuwając i odtwarzając partycję z tym samym początkiem, ale z innym końcem, skutecznie ustalasz rozmiar partycji.
psusi
1
Tak, ważne jest, aby zrozumieć, czym jest partycja - to po prostu trochę danych na twardym dysku, które mówią „zacznij tutaj, koniec tutaj, nazwij to numerem 4 ..”. Tablica partycji to tylko trochę danych zawierających wszystkie te małe mapowania. Dane nadal tam są, wystarczy powiedzieć systemowi operacyjnemu, gdzie są dane.
John Hunt,
1

Pobierz i zainstaluj Boot Repair , automatyczne narzędzie do odzyskiwania, które zwykle rozwiązuje tego rodzaju problemy.

Julien Chau
źródło