Aquesta tarda ha estat moooolt productiva, enganxo el portatil men vaig al local, l'encenc i al cap de 10 minuts plof! el conector IDE ha fallat. Tinc el portatil (x86) un pel atrotinat i el conector IDE falla de cop en quant, i quan falla...normalment l'apago, l'apreto una mica pels costats, li dono dos copets i apa, ja torna a funcionar.
Pero aquest cop no ha sigut tant maca la historia, he seguit el mateix ritual de sempre pero al arrencar. El kernel deia que la particio reiser (l'arrel) era inmuntable, usease que no podia arribar al /sbin/init i no podia tampoc interpretar l'arbre de fitxers...genial.
A mes just avui havia estat parlant sobre lo inestable que es el ext3 i els pocs problemes que m'ha donat reiser (...)
Estic fent servir reiser3, el tuxi m'ha comentat abans que el 3 es molt inestable i que millor tirar de 4..encara que a mi el 3 mai m'havia donat problemes..pero ja se sap que les versions senars...
He trucat a un colega perque em portes una ubuntu o algo que pogues llegir reiser i mentres venia he compilat el wip/reiserfsprogs desde la NetBSD que tinc en una altre particio...desgraciadament el fsck per les tools userlevel de reiserfs no esta encara implementat aixi que quan ha vingut el colega he fet un dd cap al seu ibook/osx:
console:
$ cat /dev/wd0f | netcat -l -v -p 9999
--
osx$ nc 192.168.0.88 9999 > root.reiserfs
Despres de copiar els 5GB he rebotat amb la ubuntu i he fet els següents pasos:
console:
$ reiserfsck --check /dev/hda2
Aquesta comanda es totalment *safe*, ja que no modifica res del sistema, simplement checkeja de que estigui be i et diu quins son els errors que troba (com el -n del fsck).
He pogut veure com havia perdut uns quants fitxers

...pero cap del meu home, encara que la majoria eren fitxers de /lib (libc, libwrap, ld.so, ...). Aixi que com que tenia un backup fet l'he fotut a rascar:
console:
$ reiserfsck --rebuild-tree /dev/hda2
Aixo el que fa es:
pass 0 : comproba els superblocks, i els intenta arreglar comparant-los amb els del costat i els bitmap. De pas ens detecta el hash que hem utilitzat per indexar les fulles (leaves). En el meu cas "r5". (7474 segons)
pass 1 : busca els blocks "allocated", que es on guarda la metadata amb punters cap a els 'leaves' (que son nodes que no tenen fills, es a dir els nodes d'ultim nivell de l'arbre. (349 segons)
pass 2 : Inserta les fulles de nou una a una per tal d'arreglar possibles fallos en estructures internes. (63 segons)
pass 3 : "semantic". Comproba que els punters dels entries apuntin cap a un lloc correcte, a partir de hashos. Aquest pas ha sigut el fatidic, ja que es el que ha trobat que tenia mig /lib perdut i alguns fitxers no importants del /etc. La catastrofe s'ha emportat per davant a 48 fitxers, un symlink trencat i 9 fitxers que tenien un tamany incorrecte i que ha corregit (?) (N segons)
pass 3a : busca fitxers i directoris perduts i els indexa a /lost+found. En el meu cas ha trobat algun entry ".." que apuntava malament i l'ha corretgit i ha pogut referenciar 7 objectes. (52 segons)
Despres de tota aquesta mandanga he provat de muntar el sistema de fitxers:
console:
$ mount -t reiserfs /dev/hda2 /mnt
I bingo! podia muntar el sistema de fitxers...amb el nautilus feia les miniatures, aixi que m'he emocionat i dic..pos ale. ara un chroot i pim pam...
console:
$ cd /mnt & chroot .
chroot: cannot run command `bin/bash': No such file or directory.
Lo curios es que /mnt/bin/bash existeix i si l'executo funciona...pero l'error de
"No such file or directory" es un error generic que retorna ld, i clar, no es que el fitxer no existeixi sino que es una de les llibreries que depen que no la pot enllaçar bé.
Per trobar la llibreria in question he fet en plan guarro:
console:
$ for A in /lib/* ; do echo $A ; cat $A > /dev/null ; done
La libc i ld.so eren ilegibles, el kernel no reportava cap error, pero a la lectura es quedaven penjats. Aixi que rm i scp desde una maquina que tinc a casa amb bluewall. Després he fet un
ldd /mnt/bin/bash i he anat mirant que existissin totes les libs que depenia. Al no estar dins del chroot els paths a les libs no eren els del sistema aixi que he anat mirant una a una dins de /mnt/lib, i em faltaven la libnss, he tornat a correr el
chroot /mnt/ i BINGO
Ja tenia acces a la shell, ara em faltava que el sistema funcionés. Aixi que he mirat que no faltessin més llibreries aixi:
console:
$ for A in `echo $PATH | sed -e 's,:, ,g'`; do
ldd ${PATH}/* 2>&1 | grep "not found"
done
Aixi he trobat que no tenia la libproc i libresolv. Les he copiat i ale a rebotar

.
The end..
El primer boot ha sigut un pel catastrofic, ja que la glibc es ultraputa i acostumen a ser bastant tiquismiquis amb els canvis de ABI entre versions i algunes aplicacions no arrencaven. Perque la glibc la havia copiat desde la ubuntu (i porta una 2.3.5) i la bluewall porta una 2.3.6.
He copiat la llibreria i he pogut arrencar el sistema pero no les X. Despres de toquetejar alguns ln's que estaven broken he conseguit arrencar amb
startx, pero no amb GDM, pero per tornava a tenir un entorn amigable amb wmii i aterms x)
Per desgracia alguns programes com gdm o firefox peten amb aquesta escusa:
console:
Inconsistency detected by ld.so: ../sysdeps/i386/dl-machine.h: 657: elf_machine_rel_relative: Assertion `((reloc->r_info) & 0xff) == 8' failed!
Epoca de destruccio magnetica..
Aquests ultims messos, al principi de la primavera, les maquines es tornen un pel tontes, al igual que alguns humans, i per misteris desconeguts s'acaben moltes garanties i peten molts discs durs.
Tant a nivell fisic com a nivell logic. Puc certificar al menys 6 persones en 2 mesos que han perdut tot el disc sencer o part d'ell.
Us rulo un script que vaig fer inspirant-me amb el de
Txepo, aqui el teniu:
>>
harvest.pl
Aquest script ens pot servir per quan el gpart no ens funcioni i estiguem desesperats O:), el que fa un losetup de cada 512 bytes (1 cluster de disc) per tal de intentar muntar amb un sistema de fitxers especific i treu un report quan acaba amb tot el disc. (30GB = 4 hores aproximadament)
Per acabar volia fer un comentari sobre les casualitats casuals de la vida amb una noticia de
barrapunto en la que parla d'un tal Jakub JEMAR que ha fet un sistema que es diu HELENos...sense comentaris :"(
[add comment] [view comments] (5)