Recuperar memoria USB inservible

Julio 3rd, 2008

Si tienes una de esas memorias USB que están tan dañadas que tu Linux ya ni las reconoce, intenta hacer lo siguiente antes de tirarla y quizás te dure algún tiempo más.

En mi caso el problema era que la memoria tenía la estructura lógica tan corrupta que no había forma de que el sistema se aclarara con lo que había dentro. El dmesg suele mostrar algo similar a lo siguiente en este caso:

sdb: rw=0, want=39712621, limit=2009088
attempt to access beyond end of device
sdb: rw=0, want=39712622, limit=2009088
attempt to access beyond end of device
sdb: rw=0, want=39712623, limit=2009088
attempt to access beyond end of device
sdb: rw=0, want=39712664, limit=2009088
attempt to access beyond end of device
sdb: rw=0, want=39712665, limit=2009088
attempt to access beyond end of device

En estas circunstancias el fdisk es incapaz de reorganizar la memoria de manera adecuada:

# fdisk /dev/sdb
No se puede buscar en /dev/sdb

Así que lo primero es poner a cero nuestro dispositivo:

# dd if=/dev/zero of=/dev/sdb

Después de esto ya podemos usar el fdisk y el mkfs:

# fdisk /dev/sdb

[.,,]

# mkfs.ext3 /dev/sdb1

[...]

Y ya tenemos nuestra memoria lista para ser usada.

Categorías: Tips&Tricks | 2 comentarios

Dual Monitor en Linux

Mayo 20th, 2008

En esta receta voy a explicar un método muy sencillo para tener nuestro Linux conectado a dos monitores. Una advertencia, puede que no funcione en todo tipo de tarjetas de video. Yo la he probado con una Intel 945GM/GMS (driver i810), pero he leído que también funciona perfectamente con las ATI Radeon. Bien, manos a la obra.

1. Conectamos los dos monitores (obviamente)

2. Editamos el xorg.conf

Editamos el fichero de configuración de las X (/etc/X11/xorg.conf) y añadimos la directiva Virtual dentro de los sitios adecuados de la sección Screen, así es como quedaría:

Section “Screen”
Identifier “Default Screen”
Device “Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller”
Monitor “Monitor genérico”
DefaultDepth 24

SubSection “Display”
Depth 24
Modes “1440×900″ “1024×768″ “800×600″ “640×480″
Virtual 2880 900
EndSubSection
EndSection

Los valores de la sección virtual corresponden al tamaño total de la pantalla cuando activemos el modo multimonitor. En este caso mis monitores están conectados uno al lado del otro, por eso he duplicado el tamaño horizontal. Si los monitores estuvieran uno encima del otro, duplicariamos el tamaño vertical. Por supuesto, no es necesario que tengan la misma resolución los dos monitores, pero yo los configuraré con la misma.

3. Reiniciamos las X

4. Consultamos los monitores conectados

$ xrandr -q

Screen 0: minimum 320 x 200, current 1440 x 900, maximum 2880 x 900
VGA connected (normal left inverted right)
640×480        60.0
LVDS connected 1440×900+0+0 (normal left inverted right) 304mm x 190mm
1440×900       60.0*+
1280×800       60.0
1280×768       60.0
1024×768       60.0
800×600        60.3
640×480        59.9
TV disconnected (normal left inverted right)

5. Añadimos y activamos nueva resolución para el monitor

Si no nos gusta la configuración que nos ha detectado por defecto para el nuevo monitor (en mi caso 640×480), siempre podemos añadir nuevas resoluciones. Yo voy a configurarlo con una resolución de 1440×900. Veamos cómo se hace:

Obtenemos los parámetros necesarios para la configuración:

$ cvt 1440 900

# 1440×900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline “1440×900_60.00″ 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsyn
c

Creamos el nuevo modo:

$ xrandr –newmode “1440×900_60.00″ 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync

Asociamos el nuevo modo al monitor externo

$ xrandr –addmode VGA 1440×900_60.00

Activamos el nuevo modo, fijaos que le decimos al xrandr que el monitor está a la izquierda de la pantalla principal, otras opciones disponibles son (–right-of, –above, –below y –same-as)

$ xrandr –output VGA –mode 1440×900_60.00 –left-of LVDS

Y listo… ya tenemos nuestro Linux sobre dos monitores.

Categorías: Tips&Tricks | No hay comentarios

Tuneles SSH

Febrero 12th, 2008

Para inaugurar la sección de Tipos&Tricks explicaré que son los tuneles SSH y cómo realizarlos.

Bien, imaginemos una situación como la que ilustra el siguiente esquema. Tenemos una máquina cliente que tiene acceso a un servidor SSH remoto. Ese servidor es la puerta de entrada a una red interna y la única máquina de dicha red que puede ser accedida desde internet. Nuestro equipo cliente desea acceder a una aplicación web situada en el servidor web local de la red interna.

Diagrama SSH

La solución clásica al problema sería redireccionar el puerto 80 (web) desde el equipo SSH al servdidor web, lo que haría que ese servicio esté disponible desde Internet. Sin embargo, en esta ocasión no queremos que ese servidor sea accedido desde fuera, ya que es una aplicación dirigida a empleados de la empresa y no es deseable que sea consultada por terceros.

Pues bien, para casos como este y otros similares la solución está en los tuneles SSH. Mediante este mecanismo podemos pedir a un servidor SSH remoto que establezca una conexión entre nuestro equipo cliente y un servicio al que él tenga acceso. Para el caso concreto que hemos descrito, tendríamos que pedir al servidor SSH que nos abriera una conexión entre nuestro equipo y el servicio Web del servidor web interno. Lo que se haría con el siguiente comando:

$ ssh -L 9080:ip.privada.servidor.web:80 usuario@servidor.ssh

Este comando abre una sesión SSH con el host ‘servdior.ssh‘ como usuario ‘usuario‘ (tras poner correctamente la contraseña de inicio de sesión, por supuesto). Simultáneamente, crea un tunel SSH entre el puerto local 9080 y el servicio web remoto que se encuentra en el servidor web de la red privada.  A partir de este momento bastará poner en el navegador del equipo cliente la dirección ‘http://localhost:9080/‘ para acceder  al servidor remoto, ya que gracias al tunel que hemos creado todo lo enviado por ese puerto llegará hasta esa máquina inalcanzable de manera directa desde Internet.

Este concepto se puede aplicar de muchas maneras posibles y en muy diversas situaciones, y también hay otras opciones adicionales para crear los tuneles, pero no quiero convertir el post en un listado de comandos. Mi intención es que sirva de partida para que exploreis las posibilidades de este mecanismo.

Categorías: Tips&Tricks | 2 comentarios

Tips & Tricks

Febrero 11th, 2008

Tengo el blog un poco descuidado y os voy a contar por qué. Podría caer en la tentación de decir que me falta tiempo, lo que es en parte cierto. Mi tiempo libre no es mucho, pero cuando lo tengo no me apetece demasiado ponerme a escribir uno de esos artículos que tengo en la lista de pendientes. Y eso es porque son artículos largos y laboriosos, entre ellos se encuentra un howto sobre cómo realizar ataques de DNS Spoofing a nivel local y una revisión del artículo sobre como romper claves WEP, he recibido algunos comentarios acerca de este último y parece que necesita un enfoque más simple y práctico.

Así que visto lo visto, y cómo no sé cuando tendré tiempo y ganas para escribir esos artículos, he decidio crear una sección llamada Tips & Tricks en donde comentaré (de manera breve) diferentes utilidades, métodos o formas de hacer las cosas que he ido descubriendo a lo largo de estos años y que creo que pueden ser de interés para todos. Posiblemente muchas de ellas ya las conozcáis, pero la idea es crear una recopilación de trucos que nos faciliten o ayuden en nuestro trabajo.

Si tenéis algún truco que queráis compartir, dejad un comentario en este post.

Categorías: Tips&Tricks | No hay comentarios