¿Qué puede causar que el fs pase a readonly?

Ayer por la noche dejé emergiendo un montón de paquetes. Cuando me levanté por la mañana, ví que había parado la compilación por la mitad, de madrugada, con un error de que el sistema de ficheros (el raíz) era de sólo lectura. Y efectivamente, no podía escribir en él, y el comando mount mostraba un hermoso "ro" en la partición raíz.

¿Cuáles creéis que pudieron ser las causas? No quiero que me vuelva a pasar. No tengo nada en cron que lo haya podido hacer, sólo makewhatis y slocate.

Antes de que me preguntéis por el log... lo borré [ayay].

Graciassss...

(edit)

Bueno, me ha pasado otra vez. Estaba haciendo un rm -Rf de usr/src/linux y, de repente: No se puede borrar el archivo: readonly fs.

Esta vez no me he cargado el log XD. Ésta es la salida de dmesg:

EXT3-fs error (device hda8): ext3_free_blocks: Freeing blocks in system zones - Block = 16, count = 1
Aborting journal on device hda8.
ext3_free_blocks: aborting transaction: Journal has aborted in __ext3_journal_get_undo_access<2>EXT3-fs error (device hda8) in ext3_free_blocks: Journal has aborted
EXT3-fs error (device hda8): ext3_free_blocks: Freeing blocks in system zones - Block = 16, count = 1
ext3_free_blocks: aborting transaction: Journal has aborted in __ext3_journal_get_undo_access<2>EXT3-fs error (device hda8) in ext3_free_blocks: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device hda8) in ext3_truncate: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device hda8) in ext3_orphan_del: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
EXT3-fs error (device hda8) in ext3_delete_inode: Journal has aborted
ext3_abort called.
EXT3-fs abort (device hda8): ext3_journal_start: Detected aborted journal
Remounting filesystem read-only
ext3_abort called.
EXT3-fs abort (device hda8): ext3_remount: Abort forced by user
ext3_abort called.
EXT3-fs abort (device hda8): ext3_remount: Abort forced by user


Parece una medida de seguridad del fs ante un fallo. Lo que me preocupa es que me haya pasado ya dos veces en 2 semanas y media... Lo bueno es que haciendo un fsck.ext3 sólo me ha encontrado un zero dtime. La medida de seguridad parece que viene bien :).
¿Dejas vacío el campo del fstab donde se ponen las opciones del punto de montaje? Es decir:

/dev/hda2       /               reiserfs        (opciones)                 0 1


Postea el fstab por si acaso.

Saludos.
bpeople escribió:¿Dejas vacío el campo del fstab donde se ponen las opciones del punto de montaje?


Para la partición raíz sólo tengo la opción "noatime". No me digas que si no se pone explícitamente "rw" puede cambiar a ro por alguna razón. Suponía que si no se pone nada, se monta con las opciones de "defaults" (que incluye rw). Bueno, ahí va
/dev/hda1 / ext3 noatime 0 1
/dev/hda8 /usr ext3 noatime 0 2
/dev/hda9 /usr/portage reiserfs notail 0 2
/dev/hda10 /usr/local ext3 noatime 0 2
/dev/hda11 none swap sw 0 0
/dev/hda2 /mnt/winc vfat noauto,user 0 0
/dev/hda3 /mnt/winh ntfs noauto,ro,user 0 0
/dev/hda5 /mnt/wind vfat noauto,user 0 0
/dev/hda6 /mnt/wine ntfs noauto,ro,user 0 0
/dev/hdb /mnt/dvd iso9660 noauto,ro,user 0 0
/dev/hdc /mnt/dvdr iso9660 noauto,ro,user 0 0
/dev/hdd /mnt/cdr iso9660 noauto,ro,user 0 0


Saludos.
Si dejas las opciones en blanco (cosa que no has hecho) pueden ocurrirte esas cosas. Yo tengo una "reiserfs" y sólo tengo "noatime" también. Prueba a poner "defaults, noatime" o "noatime, rw" por si acaso. No se me ocurre otra cosa.

Saludos.

Editado: Comprueba con fsck que la partición no tiene errores.
bpeople escribió:Editado: Comprueba con fsck que la particion no tiene errores.


No, errores no tiene, la compruebo en cada arranque (para eso el "2" en el ultimo campo). Aun asi force la comprobacion y nada, sin problemas.

De todas formas ahora estoy bastante convencido de que fue un fallo aleatorio de gentoo. Llevo varios dias intentando instalar gentoo sin errores (soy un maniatico, si se produce un error durante la instalacion, empiezo de nuevo XD) y es imposible. Por una u otra razon, falla. O falla al compilar algun paquete con un coredump, o falla el emerge con un error extranho, o se corrompe algun fichero .tar.bz2 (pero al reiniciar y hacer un bzip2 --test lo pasa sin problemas), o falla el grub y se queda colgado al reiniciar, o se pone en readonly el sistema de ficheros, etc. Siempre errores aleatorios: si repito todos los pasos EXACTAMENTE IGUAL (vamos, tienen que ser exactamente los mismos porque uso mis scripts para la instalacion), el error desaparece, pero aparece en otro sitio.

Mis CFLAGS son muy poco agresivas:

-march=athlon-xp -O3 -pipe -fomit-frame-pointer


asi que no entiendo que demonios puede pasar. Lo del grub si creo que es por motivos de las CFLAGS, al grub no le gustan las optimizaciones. Lo emergere con CFLAGS="" emerge grub. Pero y el resto? Estoy por ponerle un simple "-march=athlon-xp -O2 -pipe" y dejarme de zarandajas...
No, si cuanto antes lo digo... estaba emergiendo en estos momentos el firefox y, oh sorpresa, fallo de sintaxis EN ZLIB.H. Por Dios, como cojones va a haber un fallo de sintaxis ahi. Cuando el firefox lo he compilado 10 veces sin problemas.

En fin, me parece que voy a probar a dejar las cflags con O2 y pipe, y nada mas.
¿No puede ser que se te haya llenado la partición / y por eso te la marque como solo lectura? En cuanto a los errores de gentoo, pues que quieres que te diga, la mayoria son bugs reportados y puedes encontrar solucion a ellos echando mano de los foros de gentoo o de su bugzilla. De hecho, en la actualidad, y pese a ser una de las distros mas activas, a diario gentoo recibe mas bugs que resuelve (y no son pocos) :O
Pero no reinstales macho, que esto no es windows XD

Saludos
Raharu escribió:¿No puede ser que se te haya llenado la partición / y por eso te la marque como solo lectura?


No, no puede ser :P. Fue lo primero que se me ocurrió mirar, pero de todas formas es imposible: 1º me dio un error "read only filesystem" y no "no space left on device" o "full disk", 2º el mount mostraba la partición como "ro", y 3º tengo 200MB ocupadas de 2GB, compilar el xfree ni de lejos supone 1.8GB.

Raharu escribió:En cuanto a los errores de gentoo, pues que quieres que te diga, la mayoria son bugs reportados y puedes encontrar solucion a ellos echando mano de los foros de gentoo o de su bugzilla. De hecho, en la actualidad, y pese a ser una de las distros mas activas, a diario gentoo recibe mas bugs que resuelve (y no son pocos) :O


Los foros de gentoo son mi segundo hogar XD y te aseguro que cuando pregunto aquí es porque después de bucear por allí no encontré nada. De todas formas ya dije que son errores aleatorios, es imposible que haya soluciones por los foros. Por ejemplo, el error de sintaxis que me dio ayer al compilar el firefox no me volvió a salir hoy, repitiendo EXACTAMENTE los mismos pasos, y no me había salido tampoco anteayer.

Raharu escribió:Pero no reinstales macho, que esto no es windows XD


Bueno, lo de instalar linux se puede decir que es una adicción mía XD. Si sumase las veces que he instalado un linux desde hace 6 años hasta hoy... posiblemente pasase de 200 XD. Tenía la manía de probar todas las versiones de todas las distros (digo tenía porque desde que probé gentoo ni me planteo pasar a otra) + me gusta DEMASIADO trastear + soy un maniático de la perfección = reinstalaciones casi cada semana :P.

En cambio windows apenas lo reinstalo. Lo instalé una vez, y al momento hice una imagen con Ghost. Recuperarla me lleva 4 minutos. Como no hay más que un windows (windows 2000 prof, el resto ni los considero) y no hay nada que toquetear... lo tengo fijo desde hace una burrada.

A todo esto, al final logré instalarla sin un solo error durante la compilación de ningun paquete (¡por fin!). Pero sólo gracias a que hice varios "stage4". En cuanto compilaba unas cuantas cosas "gordas", tar cjpf al canto. Hoy lo tengo todo instalado sin fallos, todo va como la seda, y yo soy feliz :D. Bueno, no feliz del todo; todos esos fallos (y algunos kernels panics que me olvidé de nombrar) me hacen sospechar de fallos en placa, micro o memoria.

No hace falta decir que esta vez he hecho un "stage5" con todo instalado y que lo tengo guardado como oro en paño XD.
quickpkg -> Busca un post que puse sobre cosas 'ocultas' de gentoo

Salu2.Ferdy
Ferdy escribió:quickpkg -> Busca un post que puse sobre cosas 'ocultas' de gentoo


Cagüenlaleche... esto pasa por no leerse el man XD. Bueno, sí lo había leído, pero me olvidé de la opción -b. En fin, después de esta experiencia, el -b va a ser un fijo en mis emerges.

Ahora estoy en la duda de recurrir a quickpkg para hacerme unos cuantos paquetes o quedarme con mi "stage5". El stage5 es más rápido y cómodo a la hora de reinstalar, pero ocupa casi 500 megas (quién me mandaría comprar el disco de 80GB en lugar del de 120... va a ser cierto eso de que por mucha capacidad que tengas en el HD siempre se queda pequeño).

Haga lo que haga, gracias [oki]. Ese miniman de las utilidades de emerge ya está en mi disco duro.
Narf escribió:3º tengo 200MB ocupadas de 2GB, compilar el xfree ni de lejos supone 1.8GB.
Si no recuerdo mal en Debian compilar las X eran más de 2.4GB laaaaaaaaaargos.
NetVicious escribió:Si no recuerdo mal en Debian compilar las X eran más de 2.4GB laaaaaaaaaargos.


Mmmmm... me da a mí que tienes que recordar mal XD. Las fuentes son unos 40 ó 50 megas comprimidos. Descomprimidos le calculo unos 300 megas como mucho. De ahí a generar más 2.4GB de objetos... me parece demasiado. Copilar el OpenOffice sí supone una barbaridad (eso no lo haré en la vida), pero las X no tanto.

Bueno, de hecho lo he compilado varias veces sin problemas en mi partición semiocupada de 2GB ;). La próxima me fijaré en el espacio máximo ocupado.

Saludos.
Recuerdo más o menos que ocupaban la del cristo (más de 2.4GB). Por ejemplo las libc que acabo de compilar ocupan 1.6GB, así que las X hazte la idea.

[xXx:/home/compilations/bin/libc/glibc-2.3.2.ds1]# du -hs
1,6G .
Bueno, lo único que he encontrado es esto:

http://www.fr.linuxfromscratch.org/view/blfs-1.0/x/xfree86.html

Download location (HTTP):
Download location (FTP): ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/
Version used: 4.3.0
Package size: 137 MB
Estimated Disk space required: 633 MB
Estimated build time: 75m (667 MHz)


Y está claro que esas 633 megas no son del sistema una vez instalado (que ocupa unas 150), así que tiene que referirse al espacio de compilación ;). Lo único que necesita gigas para compilarse es OOfice.

Saludos.

(edit) Cuando digo "lo único" me refiero a programas habituales, claro. Las glibc no me extraña que necesiten tanto espacio para compilarse.
No sé no sé.

Yo sólo sé que para compilarlo me chupaba más de 2.4GB porque era lo que tenía libre en esa partición y me petó la compilación.
Solución: quedamos y nos partimos la cara XD.

Bueno, ¿alguien que lo haya compilado que nos saque de dudas? Porque yo estoy por reemergerlo... XD
No creo que haga falta ;-), igual es porque Debian aglutina más fuentes en un sólo paquete que Gentoo. O que Gentoo hace limpieza según va generando .o
Bueno, me ha pasado otra vez. Estaba haciendo un rm -Rf de usr/src/linux y, de repente: No se puede borrar el archivo: readonly fs.

Esta vez no me he cargado el log XD. Ésta es la salida de dmesg:

EXT3-fs error (device hda8): ext3_free_blocks: Freeing blocks in system zones - Block = 16, count = 1
Aborting journal on device hda8.
ext3_free_blocks: aborting transaction: Journal has aborted in __ext3_journal_get_undo_access<2>EXT3-fs error (device hda8) in ext3_free_blocks: Journal has aborted
EXT3-fs error (device hda8): ext3_free_blocks: Freeing blocks in system zones - Block = 16, count = 1
ext3_free_blocks: aborting transaction: Journal has aborted in __ext3_journal_get_undo_access<2>EXT3-fs error (device hda8) in ext3_free_blocks: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device hda8) in ext3_truncate: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
EXT3-fs error (device hda8) in ext3_orphan_del: Journal has aborted
ext3_reserve_inode_write: aborting transaction: Journal has aborted in __ext3_journal_get_write_access<2>EXT3-fs error (device hda8) in ext3_reserve_inode_write: Journal has aborted
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
__journal_remove_journal_head: freeing b_committed_data
EXT3-fs error (device hda8) in ext3_delete_inode: Journal has aborted
ext3_abort called.
EXT3-fs abort (device hda8): ext3_journal_start: Detected aborted journal
Remounting filesystem read-only
ext3_abort called.
EXT3-fs abort (device hda8): ext3_remount: Abort forced by user
ext3_abort called.
EXT3-fs abort (device hda8): ext3_remount: Abort forced by user


Parece una medida de seguridad del fs ante un fallo. Lo que me preocupa es que me haya pasado ya dos veces en 2 semanas y media... Lo bueno es que haciendo un fsck.ext3 sólo me ha encontrado un zero dtime. La medida de seguridad parece que viene bien :).
¿Te pasa siempre en hda8 o en particiones con EXT3? Si buscas con Google alguno de tus mensajes de error parece que puede ser un bug del kernel 2.6 en las primeras versiones (y de test) con EXT3.

Saludos.
bpeople escribió:¿Te pasa siempre en hda8 o en particiones con EXT3? Si buscas con Google alguno de tus mensajes de error parece que puede ser un bug del kernel 2.6 en las primeras versiones (y de test) con EXT3.

La otra vez fue compilando las X, así que debió ser en la raíz (/var lo tengo en la part. raíz), también ext3. Acabo de buscar en google y sí aparece gente con ese error, pero no sólo con el kernel 2.6.0-test, sino con el 2.4.X. Y el mío es 2.6.3-gentoo-r1, también estable. No me gusta mucho esta respuesta a alguien con el mismo problema, pero es lo que yo había pensado que podría ser:

https://listman.redhat.com/archives/ext3-users/2002-December/msg00108.html

> I've got serious troubles - I posted a while back about experiencing
> ext3 errors using 2.4.18, at the time I put the problems down to
> harddisk failure, but these problems are occurring more and more - not
> all of our systems are having this problem but 3 systems have now shown
> this problem.
...

> Thu 12/12/02 15:50:37.315 [KMSG:<2>EXT3-fs error (device ide0(3,10)):
> ext3_free_blocks: Freeing blocks in system zones - Block = 128, count =
> 1]

99% of the time, this is a hardware fault. You probably won't be happy
to hear that, but it is almost always the case.


Sólo espero que si el disco se jode no se lleve por delante datos importantes.
19 respuestas