Rianimare o reinstallare ?

Nell’articolo “La Mac-izzazione di PostgreSQL (parte I)” eravamo rimasti al panico totale: un MacOSX privo di utenti!

La directory /users del dominio / di netinfo era stato erroneamente rimosso, ed il sistema aveva smesso di accedere a servizi sotto autorizzazione, ivi compreso lo shutdown, che è stato “forzato” mediante spegnimento diretto della macchina.

“Who are You?” era la costante richiesta del Terminale.

Iniziano minuti concitati per trovare una strada per il ripristino: o dovremmo parlare di rianimazione?

La prima ovvia soluzione è l’avvio da DVD di installazione (upgrade) di Tiger, sperando nell’esistenza di un qualche tool di ripristino (ricordavo un “Riattiva Password”, o qualcosa di simile)… ed in effetti un tool esiste, ma sul volume ove è installato Tiger non esiste più un database con utenti, e dunque questo tool è del tutto incapace di lavorare, non trovando utenti su cui riattivre la password.

Proviamo a utilizzare i comandi della suite netinfo da un terminale: pensiamo di lavorare in chroot per gestire da “dentro” l’ambiente da ripristinare. Ma invano. Ben presto ci rendiamo cono di come netinfo sia uno strumento di rete anche nella gestione del database locale, grazie ad un demone denominato netinfod, una cui istanza è già operativa, responsabile delle autenticazioni delle sessioni per l’istanza di sistema che ha fatto boot da DVD e che ci offre il terminale correntemente utilizzato. Inutile dialogare (apparentemente) con questo demone per ripristinare il database corrotto.

Allora cerchiamolo questo database: dal manuale capiamo che si deve trattare di un file .nidb: con il nostro fidato find cerchiamo e troviamo in /var/db/ del volume del sistema danneggiato una directory di nome inequivocabile: netinfo. Ci gettiamo al suo interno sperando di vederci chiaro: ma i file sono binari. Plasma TV . Nulla da fare. Lo sconforto. La rianimazione serve a noi.

Poi un lampo di genio, mestiere, furbizia o forse solo disperazione: il database da ripristinare in effetti è irrimediabilmente danneggiato: come danneggiarlo di più? Se ricopiamo questo con un qualche database integro, forse… e dove lo troviamo un database integro? La risposta è sotto di noi: nel RAM-disk che mantiene in vita il sistema che ha fatto boot da CD: anche questo sistema ha una directory netinfo in /var/db, e sappiamo che ha almeno un utente root (amministratore di sistema) funzionante. Atlanta SEO . Proviamo: non abbiamo altre scelte. Facciamo per sicurezza un backup della directory netinfo danneggiata, e poi la sovrascriviamo con quella presente nel sistema attivo. Proviamo subito a far ripartire il programma che reimposta le password utenti (dobbiamo però per questo disattivare il terminale: incrociamo le dita), e questo ora è capace di leggere la presenza di un utente amministratore anche nel volume del sistema danneggiato.

Impostiamo dunque una password a questo utente e riavviamo sul volume del sistema danneggiato.

Volete sapere come va a finire la storia? Distruggete anche voi la directory /users sul vostro sistema e poi ne riparliamo.

Posicionamiento web SEO