L’altre dia, provant d’instaŀlar al meu ancià iBook G4 el GRUB2 (que, per cert, no funciona), vaig matxucar per accident la partició on tinc el Mac OS X que encara mantinc per a poder vore vídeos en streaming (no hi ha Flash per a Linux sobre PowerPC i Gnash no sembla rutllar —encara no he provat Swfdec). Afortunadament tenia una còpia de la partició, feta des de la meua Debian amb rdiff-backup combinat amb Backupninja mitjançant uns scripts que vaig escriure fa un temps (i que podeu trobar a aquest repositori de Bazaar), però mai havia provat a fer una restauració i no sabia si funcionaria. I vaja que ho vaig aconseguir! Gràcies a rdiff-backup i a eixa meravella que és Open Firmware.
Vaig començar reinstaŀlant Mac OS X sobre la partició interfecta per a recuperar‐la (però podria haver sigut suficient amb crear un nou sistema de fitxers HFS+ buit des de l’eina Utititat de discos del disc d’instaŀlació). Com que Linux no pot escriure a una partició HFS+ que tinga el registre actiu (necessari per a restaurar OS X sobre la instaŀlació neta), vaig haver d’inhabilitar‐lo executant sota OS X:
$ sudo diskutil disableJournal /Volumes/macosx_root
On macosx_root
és el nom del volum a restaurar. Ara el problema era com iniciar Debian per a restaurar el contingut de la partició, ja que després de
reinstaŀlar l’OS X arrencava aquest directament sense mostrar el menú d’inici
de Yaboot (no es podia esperar menys d’Apple!). Més tard vaig aprendre que
podria haver emprat el selector gràfic d’Open Firmware —prement Alt durant la
campanada d’inici—, però durant la instaŀlació de GRUB2 vaig aprendre a
llançar manualment diferents gestors de càrrega i sistemes operatius des de la
consola d’Open Firmware. De veres, si teniu un ordinador amb Open Firmware
(p.ex. un Mac PowerPC), recomane encaridament llegir Understanding the yaboot bootstrap process per a comprendre com funciona: vos pot salvar el dia!
El truc està en saber a quina partició i directori es troba i quin fitxer
conté el carregador que volem llançar. Per exemple, al meu ordinador Yaboot
es troba a la partició 2 del disc intern, al directori principal, fitxer
yaboot
. Així, després d’entrar a Open Firmware (Alt+Logo+o+f durant la
campanada d’inici) vaig escriure:
> boot hd:2,yaboot
(Com a apunt diré que el carregador de Mac OS X al meu ordinador seria
hd:3,\System\Library\CoreServices\BootX
.) Una volta a Linux i amb la partició
del Mac OS X (amb el registre inhabilitat, recordem) muntada a /mnt
, ja podia
restaurar la còpia de seguretat a l’últim estat conegut, sobreescrivint el
contingut existent i esborrant allò que ja no existia:
# rdiff-backup -r now --force còpia/de/macosx_root /mnt
Després d’una bona estona de raca‐raca de discos durs, la partició de Mac OS X ja estava restaurada, però quedava el detall de tornar a fer OS X arrencable, perquè rdiff-backup no sap copiar i restaurar els atributs d’HFS+ necessaris com el directori beneït i el tipus de fitxer (vegeu l’article anterior). Vaig fer açò emprant el disc d’instaŀlació de Mac OS X i l’eina Discos d’arrencada. Després ja vaig poder tornar a arrencar OS X, que per a la meua alegria estava exactament igual que abans del desastre. Visca! Ja posats, vaig aprofitar per a tornar a habilitar el registre del sistema de fitxers:
$ sudo diskutil enableJournal /Volumes/macosx_root
Finalment, vaig tornar a arrencar Debian emprant el procediment anterior, per
a restaurar l’arrencada de Yaboot executant ybin
com a root. Alehop, sistema
restaurat! Tant de maldecap per a recuperar un sistema propietari que a penes
use, però volia comprovar que podia restaurar una còpia realitzada amb
rdiff-backup i… ja sabeu, havia de fer‐ho! ;)