Restaurarea informațiilor de pe hard disk după HDD-ul de marcare

Ieri am greșit. Am fost la Hackerspace locală, și WiFi nu au de lucru acolo. Am fost într-o grabă și a fost dezamăgit, așa că a tras stick-ul și a încercat să-l ștergeți. Este suficient să spunem că unitatea USB Flash nu este definit ca / ​​dev / sda. Am curățat GPT-înregistrare pe laptop-ul meu. Discul a fost criptat, datorită tampon toate rula pentru un timp, apoi dintr-o dată pâlpâiau utilizator invitație rădăcină și. nimic mai mult.

După ce am șters transpirația rece, am împachetat în liniște și a plecat. În continuare va fi povestea cum am recuperat de la ea cu ajutorul sfaturi Jake Watkins (: dividehex). Sistemul nu a fost date iremediabilă. Toate lucrările mele sunt stocate în versiunea de control, și eu, desigur, de pre-postate toate sursele de pe GitHub. Chiar și casa mea dotfiles de director este în github (depozit privat). Dar am petrecut câteva săptămâni stând la acest laptop (Linux ca sistem de operare desktop poate fi utilizat numai pe termen foarte lung!). Din păcate, unul dintre puținele lucruri care nu erau in depozit - notele mele. Recuperarea de la zero va dura câteva săptămâni.

Complica sarcina. În notebook-ul ThinkPad X1 Carbon este nici un port Ethernet. Numai Wi-Fi.

Back-up

OK, ai nevoie pentru a opri „sangerarea“.

Am pornit sistemul de pe stick-ul live-USB. Am folosit pentru a instala sistemul „de la zero“. În acest sens, am încercat să găsească disc lipsă prin intermediul desktop Sistem de operare:

Căutarea a durat aproximativ 8 ore, dar mi-a dat timp pentru a face unele alte studii, au o bere Baltică Porter (multi-tasking!) Și de somn.

Căutarea șters datele de pe un hard disk

Deci, situația este că am o tabelă de partiții cu o singură dimensiune volum de 256 GB cu FAT32. Undeva pe disc toate datele mele este probabil să rămână intacte. Dar unde sunt ei?

Jake a sugerat de căutare de rezervă tabelul de partiții GPT, care se află la sfârșitul discului. În consola gdisk opțiuni avansate mi-a permis să exploreze acest tabel, dar era prea goală. Al doilea sfat Jake: Încercați să găsiți Luks semnătură kriptokonteynera.

În cele din urmă, intrarea de masă a fost găsit la începutul acestei secțiuni, este 05364000000 (735051776 zecimală) octeți pe disc. 512 - dimensiunea sectorului, acest sector este 1435648.

În gdisk consola am creat o secțiune care începe în acest loc și următorul până la sfârșitul discului.

Se pare că am găsit informația a dispărut.

Cu toate acestea, nu a funcționat. Ea nu format partiție ext4 - un volum LVM fizic. Udev a lansat deja pvscan, asa ca am nevoie doar pentru a activa grupul de volum:

În acest moment, este timpul pentru a crea o altă copie de rezervă. Am folosit TAR, pentru a reseta conținutul ambelor partiții, salvați fișierul pe calculatorul meu desktop-ul. A fost nevoie de aproximativ o oră. Acum mă simt mult mai bine, am notițele mele, a supraviețuit setările de sistem, și orice altceva. Dar eu nu pierd datele - le pot restaura complet?

restructurare

Am reinițializat cu o unitate USB flash de vii, doar pentru a pierde tot ce am făcut cu discul înainte. Am înțeles că / dev / sda1 - acest lucru, probabil, nu este numărul corect de partiție pentru sistemul de fișiere plin, asa ca m-am mutat la / dev / sda3 (eliminarea și re-create cu aceleași primele / ultimele sectoare). O altă repornire.

După aceea, am încercat să ruleze programul de instalare și a instala peste datele existente. Cred că pot face o instalare minimală în spațiu liber, mai ales după Anaconda ma asigurat că este nevoie de doar 3.1 GB.

Pe scurt, a fost o minciună. Anaconda - o bucată teribil și buggy de software. De exemplu, dacă setați dimensiunea partiției - în schimb va selecta în mod aleatoriu o altă dimensiune. Ugh.

De fapt, Anaconda are nevoie de aproximativ 15 GB pentru procedura de instalare. Așa că am nevoie să taie din nou pe / dev / sda3. Am schimbat dimensiunile de volume logice, tot timpul, dar funcționează exact opusul - am nevoie pentru a comprima volumul fizic. Acest lucru sa dovedit a fi un pic mai complicat. Inițial, după deschiderea volume Luks, am alerga pvresize comanda:

A apărut o eroare, îmi spune că există un spațiu pentru nou creat spațiu trecut. Acesta trebuie să fie scăzute din ultima distanța pe care ultimul grad este numit $ limita. Lansarea folosind pvdisplay / dev / mapper / echipa secreta - obținem spațiul fizic totale si suna-l total de $. Apoi, utilizați pvmove pentru a transfera:

și reporniți pvresize comanda.

Acum trebuie să schimbați dimensiunea containerului Luks, care se află în PV. Acest lucru va necesita un pic de aritmetică. LVM folosește „GiB“ - este o unitate de măsură normală, nu o fabrică de instrument de măsurare prostie. Prin urmare, 210g - este de 225 485 783 040 bytes, care (împărțit la 512), constituie 440 401 920 sectoare de pe hard disk.

OK, am stors PV, precum și containerul LUKS, iar acum am nevoie pentru a stoarce mai mult și se separă. Aceasta înseamnă îndepărtarea și readăugarea secțiune prin gdisk konsoleuyu utilitate. Sectorul inițial rămâne neschimbat, în timp ce ultimul sector este calculat ca startingsector $ + 440 401 920 - 1. O valoare de -1 este important, am _lastsector, nu primul sector al secțiunii următoare. Ar fi trist să-și piardă 512 octeți de date, atunci când am aștepta cel mai puțin. Tipul de sistem de fișiere nu conteaza - am folosit sistemul de fișiere implicit, dar am observat că anaconda utilizează 0700.

Repornește computerul și executați din nou instalarea. Să Anaconda își face treaba, pentru că ea nu ar asculta-mă, dacă încerc să-l adapteze. Anaconda a ales un alt nume (fedora_ramanujan) pentru noul grup de volum. Dacă ea nu a făcut, mi-ar trebui să se redenumiți. Reboot - și eu conduc un sistem proaspăt.

Dacă aș fi fost inteligent, aș dori să rulați „yum upgrade“, dar există. Aceasta este ceea ce voi vorbi despre mai jos.

Ideea este că am acum am instalat și toate partițiile UEFI boot necesare, dar partiția este criptat. Schimbarea vine în fișier de editare /boot/efi/EFI/fedora/grub.cfg. înlocuind noul VG VG cu vechiul și noul LUKS UUID pentru vechiul LUKS uuid-ID ( „dumpLuks cryptsetup“). Reboot, introduceți parola, și. „Bine ați venit în modul de urgență“. Un pic de săpat, am dat seama că toate partițiile sunt montate corect, dar revista surprinde eșecul de instalare / boot / EFI. pentru că nu există nici un modul pentru vfat.

complexitatea kernel-ului

Kernel-ul și initrd desigur, sunt pe / boot, și în versiunea care a fost instalat cu stick USB Live. module sunt module în / rădăcină, precum și versiunea actualizată câteva luni mai târziu. Ele nu sunt la fel.

Quick fix este de a instala un nou LUKS container și copiate în / lib / module peste un / lib / module pe container vechi. Mă face să copii ale tuturor modulelor pe care Anaconda a fost instalat, și-mi permite să boot-eze în sistemul de operare. aproape. Internet nu funcționează.

Acest lucru se datorează faptului că, probabil, eu sunt, folosind o versiune mai veche a kernel-ul cu sistem actualizat. Actualizarea la cea mai recentă versiune a kernel-ului este corectă. Este dificil în absența WiFi, așa că mă uit la pachetele de pe desktop-ul meu, copiați-le pe o unitate flash USB (fiind foarte atenți să nu repartiționarea mea hard disk pe desktop în proces!), Și rulați comanda

pe un laptop după montat USB-drive. Reboot - și înapoi la normal. Acest lucru nu este cele mai interesante activități în ultimele 20 de ore. Dar a fost o aventură distractiv.