Așadar, după ce am încercat fără rezultat soluția propusă de @vanadium, m-am gândit că, în absența șocului unității sau a zgomotelor scârțâitoare, și având în vedere faptul că întrerupisem o actualizare de Windows, acesta a fost probabil o defecțiune logică cauzată de un Eroare I/O.
Am ars un stick USB live cu SystemRescueCD, o distribuție Linux cu scop special, care vine cu utilități utile atunci când încerc să repar o instalare.
Am folosit prima dată ddrescue cu opțiunea -n pentru a copia partiția deteriorată pe un hard disk extern pe care îl numesc copie curată. -n permite o primă trecere rapidă și minimizează deteriorarea capului de citire. După cum am presupus, am putut citi 100% din octeții din partiție.
Am folosit apoi dd pentru a copia copia curată pe un al doilea hard disk extern, copia de lucru. Acest lucru asigură că, dacă orice activitate pe care o fac asupra copiei de lucru este distructivă, pot reveni la copia curată fără a fi nevoie să o copiez de pe o unitate care poate eșua.
Apoi am rulat TestDisk pe partiția situată pe copia de lucru. Urmând meniul, am selectat partiția, iar TestDisk mi-a oferit o listă cu superbloxk-urile din sistemul de fișiere eșuat.
Superblocuri sunt blocurile din memorie care conțin metadatele despre structura sistemului de fișiere. TestDisk a detectat că sistemul de fișiere era un sistem de fișiere ext4 și a propus o comandă pentru a remedia sistemul de fișiere:
fsck.ext4 -p -b <începutul superblocului> -B <dimensiunea superblocului> /cale/la/în lucru/copiere
Argumentele <start of superblock> și <size of superblock> au fost preluate din rezultatul TestDisk.
După rularea acestei comenzi, primul superbloc care fusese corupt a fost remediat, iar fișierele au fost accesibile în întregime. Apoi le-am făcut copii de rezervă pe un al treilea hard disk pe care îl foloseam de obicei pentru backup-uri Windows.
Cost total: aproximativ 200 USD pentru achiziționarea hard disk-urilor externe. O companie de recuperare de date mi-a cotat 800 USD pentru a face această treabă.