19.08.2012

Oprava filesystému NTFS

Jak opravit poškozený NTFS oddíl na disku? Problém s NTFS si určitě každý aspoň jednou zažil. Přitom zachránit data nemusí být až tak složité.

Častokrát se mi stane, že při používaní NTFS v Linuxu a zároveň ve Windows se disk korektně neukončí a to někdy způsobí pád NTFS a disk se pak nedá připojit. Občas problém nastane i po použití gparted na zmenšení/zvětšení oddílu. Ve windows je mi pak doporučený formát disku, přitom oprava je častokárt poměrně jednoduchá. Stačí nainstalovat a použít aplikaci ntfsfix.

sudo apt-get install ntfsprogs

Oprava systému je pak už snadná. Stačí znát jen jméno oddílu. To se zjistí příkazem

sudo fdisk -l

Ale doporučuji spíše poučít aplikaci gparted nebo disks, který je součást distribuce ubuntu. V mém případě to byl oddíl sda5.

sudo ntfsfix /dev/sda5 

Výstup pak vypadá asi nějak takto:

Mounting volume... Failed to read last sector (430076051): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
FAILED
Attempting to correct errors... Failed to read last sector (430076051): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
FAILED
Failed to startup volume: Invalid argument
Failed to read last sector (430076051): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
Trying the alternate boot sector
The alternate bootsector is usable
Set sector count to 326857922 instead of 430076051
Rewriting the bootsector
The boot sector has been rewritten

Po druhém spuštění příkazu už se chyba neobjevila.

>> sudo ntfsfix /dev/sda5 
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
NTFS volume version is 3.1.
NTFS partition /dev/sda5 was processed successfully.

V nautilu jsem už bez problému oddíl (disk) připojil. Stejně tak i ve Windows s ním bylo možné pracovat. Pokud se vám oddíl nepodaří obnovit, pak už přichází na řadu hrubší síla - kompletní obnova dat z disku. K tomu používám aplikaci testdisk. Aplikace projde celý disk a bude se snažit naleznout ztracená data. Může se stát, že získáte data, které jste dříve smazali.

Pokud data obnovujete z disku pomocí aplikace testdisk, nejprve musíte mít k dispozici alespoň tolik volného místa, jak je velký poškozený oddíl.