sábado, 16 de marzo de 2013

#14 Sectores dañados

Cuando un ordenador: se lleva un golpe o una sacudida mientras estaba en marcha, se atasca sin razón aparente, da errores al intentar abrir un archivo, el SMART nos indica fallos o simplemente tiene comportamientos extraños es probable que tenga sectores defectuosos.

Si esto es así, lo primero que debemos intentar hacer es una copia de seguridad, ya que este disco tiene una sentencia de muerte muy próxima. Existen varias herramientas que tratan de magnetizar correctamente esos sectores sin pérdidas de información, en mi caso he probado:

- HDDRegenerator, (es de pago), y al principio me sacó unos 20 sectores defectuosos, y curiosamente tuve que pasarlo varias veces porque algunos persistían. Al cabo de un tiempo el disco duro se volvió a comportar de manera extraña lo pasé y en una zona se atascaba, así que probé...

- Hiren's Boot CD, tiene 3 aplicaciones, una no me iba porque no se cargaban bien los drivers de SATA, y las otras 2 no encontraban nada. Cabe mencionar que hay una que hace sonar la campana del ordenador cada vez que quiere avisar de algo, muy divertido si lo estás haciendo a las 2 de la mañana.

- Finalmente me enteré que muchas distribuciones contienen una aplicación, disponible desde muchos live CD, llamada badblock. Así que me dispuse a ejecutar el badblock desde un CD (ya que el disco no tiene que estar montado y no tenía linux instalado) podéis hacer un man del badblock o ejecutar directamente:

# badblock -s -v -n -f /dev/sda1

Si el disco tiene varias particiones (consultad # fdisk -l), por ejemplo 2, tendréis que hacer también un: 

# badblock -s -v -n -f /dev/sda2

El proceso puede que tarde muchas horas, a mí, (640 GB) me tardó 9 horas, me sacó 541 sectores dañados, no se atascó, pero al volver a pasar el HDDRegenerator se volvió a atascar donde siempre. Pero aún así puede que sea útil si sólo tenéis unos pocos sectores dañados. Ahora me dispongo, con una aplicación del fabricante, desde el Hiren's Boot CD a poner todo el disco a 0. Esto tardará unos 4'8 días ininterrumpidos, editaré para contar el final de esta historia.

Lo más curioso de todo es que el portátil no se ha llevado golpes (lleva un año y medio sin moverse de la mesa) y se está rompiendo porque sí, ¿para cuándo estarán los SSD al mismo precio?

NOTA: Es muy probable que tengas que cambiar el funcionamiento del disco desde la BIOS al modo IDE ya que, por ejemplo, HDDRegenerator no puede trabajar si no está en ese modo. 

Saludos y lamento mucho lo de vuestro disco. ¡No somos nada!

FINAL: Al final, como me temía, el disco está demasiado dañado. Toca comprar otro. Supongo que habrá algún programa para detectar sectores dañados o con alto tiempo en respuesta y marcarlos para que no los use, pero está claro que no me puedo fiar de este disco ¡Qué ganas tengo de ver SSD a precios razonables, señor!

viernes, 25 de enero de 2013

#13 Locate: Encontrar archivos rápidamente

mlocate es un programa para la terminal que crea una base de datos con los archivos del disco duro (del estilo del neopunk pero en cuestión de pocos minutos).
En otras distribuciones está preinstalado, en ArchLinux no. En Arch se encuentra en los repositorios "core".

$ sudo pacman -S mlocate

Para crear la BD basta un:

$ sudo updatedb

Y para encontrar, por ejemplo, dónde se esconde java se haría un:

$ locate java

Es muy útil sobretodo si vienes de otras distribuciones en las que los archivos de configuración están en otros sitios y no te apetece/acuerdas de hacer un find.

Nota: También sería interesante añadir el updatedb al cron, o un alias al .bashrc, pero eso ya os lo dejo a vosotros ;).

Hasta otra!

viernes, 2 de noviembre de 2012

#12 Caja debora la CPU

Si usas MATE y últimamente no visualizas correctamente las miniaturas de las imágenes, vídeos y además ves que el administrador de archivos de mate, Caja consume CPU como un poseso, no te preocupes, aquí tienes la solución que he visto en no sé qué blog mientras corrigen el buggie:


$ mkdir $HOME/.cache/thumbnails
$ cd ~
$ rm -r .thumbnails/
$ ln -s .cache/thumbnails .thumbnails

Después de esto todo y reiniciar (si el comando $ caja -q no funciona) irá perfecto. Saludos.

domingo, 14 de octubre de 2012

#11 Arreglar reinicio en Acer Aspire One Happy 2

Hola chapuzeros,

si tenéis la suerte de tener un feliz netbook "Acer Aspire One Happy 2" y el reinicio se os cuelga en ArchLinux, he aquí la solución mientras aplican de una fruta vez el parche:

$ sudo nano /boot/grub/grub.cfg

y añadir (yo sólo lo cambio en la primera configuración del núcleo, la otra casi nunca la he tenido que usar) lo que está en negrita subrayado:

linux /boot/vmlinuz-linux root=UUID=5c60c19e-b16a-4367-8b1e-5bf3b435e7fa ro reboot=kbd quiet

Este cambio no es persistente, si sale otro núcleo adiós reinicio, para hacerlo persistente había que tocar otro archivo (seguramente en /etc). Si algún día lo busco y lo hago actualizaré esto, mientras se queda así, hecho una chapuza que es lo que toca.

¡Hasta otra arch-marineros! :v

martes, 4 de septiembre de 2012

#10 Debug-Cout

Hola archapuceros,
está entrada va dirigida a programadores, que supongo que serán bastantes de los que usen este SO.
Mirando por aquí y por allá buscaba una manera de al depurar a mano un programa activar o desactivar determinadas salidas por pantalla, así que cree los "dcout", debug-cout. Poniendo el código en la cabecera, si está definido DEBUG se activarán, si comentamos esa definición o lo hacemos más bonito poniendo NDEBUG se desactivaran.

Código:


#define DEBUG

#ifdef DEBUG
#define dcout cout
#else
#define dcout NULL && cout
#endif

Creo que no hace falta ninguna explicación del código, así que me despido. Espero que esto os lleve a buen puerto, hasta otra ¡arch marineros!

jueves, 9 de agosto de 2012

#9 Arranque dual con Grub2

Visto que de ahora en adelante usaremos Grub2, apuntaré cómo configurarlo para que podamos arrancar Windows 7.

Lo primero es anotar en qué partición está el Loader de Windows, para esto se puede usar gparted, que al verlo gráficamente nos sudarán menos las manos, en mi caso, el Loader está en /dev/sda2:


Montamos la partición:

$ sudo mount /dev/sda2 /mnt


Obtenemos el uuid (un identificador), este comando devolverá el identificador:

$ sudo grub-probe --target=fs_uuid /mnt
2CE4997AE49946CC


Editamos éste archivo en el que podemos poner nuestras configuraciones personalizadas y serán incluidas en el grub.cfg:

$ sudo nano /etc/grub.d/40_custom 


Añadimos, sin eliminar la primera línea, el texto siguiente con el uuid obtenido anteriormente:

menuentry "Microsoft Windows 7" {
    insmod part_msdos
    insmod ntfs
    insmod search_fs_uuid
    insmod ntldr
    search --fs-uuid --no-floppy --set=root 2CE4997AE49946CC
    ntldr /bootmgr
}


Generamos el grub.cfg:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Desmontamos el Loader:

sudo umount /mnt 


That's all folks!

PD: Sí, no tengo partición SWAP, vivo al límite.

martes, 31 de julio de 2012

#8 Cómo conectarse por terminal a una red WiFi

Esto es muy importante al instalar el sistema desde 0, ya que si de normal nos conectamos por WiFi es mucho más cómodo seguir haciéndolo, y el problema está en que si la seguridad de nuestra red es WPA no es trivial, no lo era hasta ahora. De todas formas pondré la WEP también, y de la WPA sólo en el caso más simple, es decir, sin claves personales.

  · WEP:
# iwconfig wlan0 essid "Nombre de la red" key s:contraseñaenascii

Nótese que si la red no tiene espacios, no hacen falta las comillas, y que si la contraseña no es una cadena (string) no es necesario poner s:.

Por último, para obtener automáticamente la IP y no tener que configurar IP/Máscara, Puerta de enlace y DNS:

# dhcpcd


  · WPA:
Este es el método más rápido que sé me ha ocurrido. Primero hacemos una copia del archivo de configuración a una ruta sencilla:

# cp /etc/wpa_supplicant/wpa_supplicant.conf/w.conf

Ahora editamos la copia, si es con nano recomiendo pasar páginas con [Ctrl] + [v] hasta que lleguemos a la primera definición de una red:
network={
ssid="simple" 
psk="very secret passphrase" 
priority=5 
}

La editamos cambiando los parámetros por los de nuestra red:
network={
ssid="Mi Red"
psk="Póngase la contraseña"
priority=5 
}

Bajamos el curso abajo, debajo de la llave que cierra la definición de esta red y con la opción de cortar lineas de nano [Ctrl] + [k] borramos el resto del archivo, que contiene ejemplos más complejos para otro tipo de redes. Cerramos [Ctrl] + [x], y guardamos los cambios [y].

Ahora ejecutamos el siguiente comando, proporcionado por Aetsu (he aquí su blog, muy recomendado):

# wpa_supplicant -Dwext -i wlan0 -c/w.conf -K -B

Nótese que: -D es el driver, -i la interfaz a usar, entre -c y /w.conf no hay espacio alguno, y -B es que se ejecute en el fondo.

Y por último ejecutamos el dhcpcd:

# dhcpcd

Después de acabar todas las tropelías, es muy recomendable borrar /w.conf, ya que ahí tendremos nuestra contraseña de la red sin cifrar (o ¡sin encriptar, wey! (sic)) en texto plano:

# rm -f /w.conf

¡Saludos, Ar-chapuceros!