Externí disk s daty hlásí, že musí být naformátován

Stalo se vám někdy, že vám externí disk s vašimi daty po připojení napsal: Disk v jednotce X: musí být před použitím naformátováno. Chcete provést formátování?
Tato hláška vyděsí a nepotěší. Příčin může být mnoho a předpokládejme, že vyděšený uživatel zkusil běžné pokusy jako:
– připojit externí disk k jinému počítači
– vyměnit kabel
– vyjmout disk z externího boxu a připojit ho přímo k počítači, abychom ověřili, že není vadná elektronika externího boxu
A že všechny pokusy selhaly? Co dál? Zkusme připojit disk k počítači, na kterém běží nějaké linuxová distribuce – Ubuntu, Suse, cokoli.
Systém nám disk automaticky nerozpozná a nepřipojí.
Zjistíme pod jakým názvem zařízení se disk do systému připojuje, pak spustíme opravu a uvidíme. Pravděpodobnost úspěchu je vysoká v případě, že disk není příliš fyzicky poškozen. Záleží na tom, jak moc disk podivně chrochtá a rachtá při pokusech o přístup.
1. odpojíme disk
  zjistíme jaké disky v linuxovém systému máme
  cat /proc/partitions
  vypíše něco jako:
     major minor  #blocks  name
       8    0    8388608  sda
       8    1    1211392  sda1
       8    2    7176192  sda2
      11    0    1048575  sr0
2. připojíme disk
  znovu vypíšeme seznam připojených zařízení
  cat /proc/partitions
  připojený disk přibude jako další v seznamu
    major minor #blocks   name
      8     0   8388608   sda
      8     1   1211392   sda1
      8     2   7176192   sda2
     11     0   1048575   sr0
      8    16   488386584 sdb <-- náš připojený disk
      8    17   488384001 sdb1 <-- vadná partition k opravě
3. pokus o přimountování disku
  vytvořme si v aktuální složce/adresáři novou složku pro připojení disku - např. mujdisk
    sudo mount /dev/sdb1 mujdisk
  disk se nepřipojí a systém nahlásí:
      mount: /dev/sdb1: superblok nelze přečíst
      mount: /dev/sdb1: can't read superblock
  můžeme se pokusit připojit přímo zvolený souborový systém, jestli víme, jaký byl a pro další obnovu je to nezbytné. Ve windows to bude obvykle vfat nebo ntfs. Nevíme to, zkusíme
    sudo mount -t ntfs /dev/sdb1 mujdisk
      NTFS signature is missing. 
      Failed to mount '/dev/sdb1': Nepřípustný argument 
      The device '/dev/sdb1' doesn't seem to have a valid NTFS...
  tak ntfs to není
    sudo mount -t vfat /dev/sdb1 mujdisk
      mount: /dev/sdb1: superblok nelze přečíst
4. zkoumání disku a oprava
  pro zjištění, co vlastně s diskem je použije fsck, více v manuálových stránkách
    sudo fsck.msdos /dev/sdb1
  pro vlastní opravdu, automatickou se zápisem změn na disk
    sudo fsck.msdos /dev/sdb1 -a -w
5. hotovo
  jestli pokus o připojení proběhne korektně
    sudo mount /dev/sdb1 mujdisk
  máme z části vyhráno. A je možné, že se disk bude dát připojit i do Windows.
6. kopírujme data dokud to jde
  to že se na disk dá dostat neznamená, že se to ještě někdy jindy podaří. Vykopírujme pro jistotu data ještě v linuxu.
7. jak ve Windows kopírovat data z disku, který možná chybuje
  ve Win není dobrý nápad kopírovat data z disku, který může být vadný třeba v Total Commanderu nebo v Průzkumníkovi. Lepší je použít příkazový řádek a postupně kopírovat pomocí
    xcopy zdroj cíl /E /C

Jiné možnosti?
V linuxu se dá snadno pořídit otisk celé partition do souboru a pak přes loopback připojit, případně měnit velikost disku a jiná kouzla, která google bez problémů doporučí.

Někdy je potřeba disk rozebrat a pomoct mu ručně, viz. [1]