tirsdag den 8. maj 2012

NTFS værktøjskasse til linux

Hvad dælen gør man ved et sygt flash kort, der ikke vil mountes - hverken i Ubuntu (linux) eller Windows?

Fik et CF kort ind på arbejdet, som der lå nogle vigtige filer på - disksystemet på kortet var fuldstændig klappet sammen, så kun den ene partition ville mounte (i linux), men Nautilus gik i stå når man ville åbne mapper/filer.

Den anden partition - som selvfølgelig var den vigtigste - ville slet ikke mounte, fordi filtabellen ($MFT) var korrupt og ikke matchede backup kopien ($MFTMirr).

Windows ville slet ikke noget med nogen af partitionerne, så ikke engang mit ellers duelige Paragon Partition Manager ville røre kortet.

Løsningen blev en lidt snørklet omvej, som faktisk virkede over al forventning:

  1. Først installeres ddrescue + ntfsprogs (hvis de ikke findes allerede):
    sudo apt-get install ddrescue nftsprogs

  2. Brug ddrescue til at lave en imagefil af den døde partition (tålmodighed - det tager tid!):
    sudo ddrescue /dev/sdb1 ./partition1.img

  3. Så i med et flash kort der fungerer (min. samme størrelse eller større) - eller et andet disk medie (f.eks. USB flash/harddisk, SD kort)

  4. Slet alt indhold på mediet og opret en ny NTFS partition med "Diskredskab" (eller GParted)

  5. Brug dd for at lægge partition i imagefilen tilbage på det fungerende medie:
    sudo dd ./partition1.img /dev/sdb (sdb hos mig - det kan være sdc eller andet hos andre)

  6.  Brug ntfsfix til at rette op på filsystemet:
    sudo ntfsfix /dev/sdb (igen - det kan være sdc eller andet hos andre)

  7. Sync mediet (sudo sync), tag det ud og sæt det i igen

  8. Voilà - partitionen mounter og man kan hive de filer ud man mangler (dem der ikke er ødelagt i hvert fald)


Man kan også bruge ntfsfix, hvis man har været ude for at skulle mounte en USB disk (taget ud af en Windows maskine), som ikke er fjernet korrekt - normalt får man at vide at man skal sætte den tilbage i en Windows maskine og bruge fdisk -f til at reparere - møg irriterende (når nu man kører linux!).

Ekstern kilde: William Markito's blog - How to fix ‘$MFTMirr does not match $MFT (record 0)’

Ingen kommentarer:

Send en kommentar