Traductor: Dardo A. Valdez.
Este artículo explica como acceder, usando un Knoppix, a un sistema Linux que no se puede arrancar normalmente, cómo conseguir permiso de lectura-escritura para los archivos, cómo administrar particiones y sistemas de archivo y cómo copiar archivos a distintos medios de almacenamiento y a locaciones en red. Se puede usar Knoppix para detectar y configurar hardware y para crear particiones y sistemas de archivos y puedes hacerlo todo desde las excelentes herramientas gráficas de Knoppix o desde la línea de comando.
Knoppix, un Linux completo y arrancable desde un CD se ha vuelto mi disco de rescate favorito. Una excelente introducción a Knoppix apareció un par de meses atrás en el artículo de DeveloperWorks "Knoppix gives bootable, one-disk Linux" de Cameron Laird.
Mis herramientas de rescate anteriores eran el disquete Root Boot de Tom, 'lo mejor de GNU/Linux en un solo disquete' y el CD SuperRescue de Peter Anvin 'un CD de rescate sobrecargado'. Ambos discos de rescate basados en Linux, de los primeros que aparecieron. Uno de mis trucos favoritos para hacer demostraciones es una reconstrucción completa desde cero del sistema, usando solo el disco Root Boot de Tom y una conexión a Internet.
Desde que los CDROMS se volvieron el estándar en PCs, siempre cargo varios Cds 'SuperRescue' que está basado en Red Hat 7.2 y es muy bueno, pero algo viejo, y no tiene soporte para hardware como USB o dispositivos wireless que sí están presentes en versiones más nuevas de las últimas distribuciones.
Nace una estrella
Knoppix, el chico nuevo del barrio, ofrece algunas características impresionantes:
Soporte y Autodetección de lo más nuevo en hardware (incluyendo PCMCIA, USB, y wireless)
Lo mejor y más nuevo de Debian y KDE
Arranque rápido, en 5 minutos o menos
Se vende por un precio mínimo si alguien quiere comprarlo
La última característica es muy importante para mi, ya que estoy en un área donde no está disponible la conexión de banda ancha, solo dial-up, lo que hace que bajar 700 mb se vuelva impráctico.
Knoppix viene con lo mejor de Debian y KDE, además de sus propias herramientas. En este artículo, vamos a ver cómo hacer ciertas cosas, tanto desde la línea de comando como con las herramientas gráficas. Tendrás que adecuar los valores que uses a tu propio sistema, como por ejemplo, números de partición, nombres de archivo y de hosts de red.
Comenzando
Si quieres ejecutar KDE u otro entorno gráfico y/o administrador de ventanas, necesitarás al menos 96 MB de RAM y un procesador Pentium o equivalente. En modo texto, se necesitan 20 MB para desenvolverse tranquilamente, incluso si estamos en un viejo 486. Un detalle: se va a usar la partición swap que ya tengas en el disco.
Opciones de Booteo
Luego de bootear el CD, Knoppix va a hacer una pausa de 30 segundos en el prompt,
antes de continuar. Hay muchas opciones de booteo disponibles; si quieres ver
cuales son, pulsa F2. Esta es la línea que usé en mi sistema:
knoppix lang=es knoppix wheelmouse knoppix desktop=icewm
El idioma de teclado configurado por defecto es alemán, así que
siempre arranco con la opción lang=es. Por defecto Knoppix
arranca en el entorno KDE, knoppix 2 hace que bootee en modo texto,
sin iniciar X, failsafe inicia el sistema haciendo una mínima
detección de hardware (mucho menos propensa a cualquier fallo, justamente).
Knoppix se ejecuta completamente en la memoria de la computadora, o si esto te suena poco técnico, en un ramdisk. De hecho, puedes ver el ramdisk en el árbol de archivos del sistema. Recuerda que a veces puede ser lento ya que tiene que bajar los ejecutables desde CD, que es mucho más lento que un disco duro. Puede también ser instalado al disco duro (dejamos eso para otro día).
Rescatando un sistema Linux que no puede arrancar
Este sería el escenario más común de rescate. A veces algo sale mal y boom!, tu Linux ya no arranca. No hay problema: arranca Knoppix y te encuentras con todas tus particiones locales listas para ser accedidas desde íconos en el escritorio del último KDE (o navegando en el árbol de directorios, en /mnt). Haz un clic en cualquiera de esos íconos y verás todos tus archivos; pero, sabiamente, están montados solo para lectura. De nuevo, no hay problema: pulsa con el botón derecho en el ícono apropiado para ver la opción 'Cambiar a modo lectura/escritura'. Esto monta el sistema de archivos de la partición en modo lectura/escritura y ahora ya podrás editar cualquier archivo en él.
El usuario por defecto es knoppix. Para operaciones que requieran
privilegios de root vas a necesitar hacer su y asignar una clave:
knoppix@ttyp0[knoppix]# su
root@ttyp0[knoppix]# passwd
Para montar un sistema de archivos desde la línea de comandos:
root@ttyp0[knoppix]# mount -t reiserfs -o rw /dev/hda5 /mnt/hda5
Para desmontar:
root@ttyp0[knoppix]# umount /mnt/hda5
Si obtienes un mensaje de error 'No se pudo desmontar dispositivo, el dispositivo está ocupado' ("Could not unmount device, device is busy"), algo está leyendo esa partición (un proceso), así que cierra tantos archivos y programas como puedas (si es que no sabes exactamente cual es el que está bloqueando el desmontaje).
Como sabes que punto de montaje y sistema de archivo especificar ? Mira en /etc/fstab:
root@ttyp0[knoppix]# cat /etc/fstab
...
# Added by Knoppix
/dev/hda5 /mnt/hda5 reiserfs noauto,users,exec 0 0
Detección del Hardware
Antes de empezar a editar y revisar archivos como loco, es a menudo provechoso
examinar la información que pueda obtenerse acerca del hardware. Knoppix
es excelente para esto ya que tiene las últimas versiones de las buenísimas
herramientas de sistema fdisk, lspci, iwconfig, ifconfig, dmesg, /proc, y otras.
Comprobar la información del hardware es muy útil para ver que
tan compatible es con Linux antes de comprar un PC. Especialmente con placas
de sonido, softmodems, y placas de red ya que los fabricantes a menudo cambian
los chipsets manteniendo el nombre del producto. Knoppix tiene también
varios archivos de sonido, para un testeo rápido del audio (como el sonido
de apertura de la pantalla de bienvenida).
fdisk -l muestra todas las particiones existentes en todos
los discos duros.
lspci -v brinda información detallada acerca de cada
dispositivo y chipset conectado al bus PCI.
cat /proc/cpuinfo te dice exactamente que CPU está
instalada.
ifconfig muestra, y también permite manejar, ajustes
de dispositivos de red. Más comunmente placas de red y ppp, la interfaz
de modems.
iwconfig igual que el anterior pero para placas de red wireless.
dmesg es interesante. man dmesg no te ayuda demasiado
si no eres un hacker del kernel, pero hacer dmesg | grep <device>
es útil para descubrir problemas y como herramienta de investigación
del sistema. Para ver todo ejecuta dmesg sin más opciones.
Y por supuesto KDE provee una muy buena GUI para hacer todo lo anterior; en System > Info Center.
Rescatando archivos de datos
Usualmente la primera tarea de rescate es copiar archivos fuera del disco con
problemas. Este es mi método favorito cuando hay un gran número
de archivos: instalar un segundo disco duro, arrancar Knoppix, y luego copiar
los archivos desde el disco en problemas al recién instalado. Incluso
si no tienes uno de esos espectaculares discos cambiables en caliente o esas
cajas para hacer removibles discos 'normales', no vas a tardar demasiado en
sacarle la tapa a la máquina y enchufar uno. tienes un disco nuevo en
blanco o uno viejo que hay que borrar y reformatear ? Ningún problema,
lo hacemos todo desde Knoppix.
Particionando y formateando
Primero instala el segundo disco duro. Luego arranca Knoppix y abre un shell
root. Si ya hay particiones en el segundo disco, simplemente reformatea las
que necesites. Ten en cuenta que los discos SCSI comienzan con sd,
y los IDE con hd. Este comando muestra las particiones existentes
en el disco (usá los valores apropiados para tu sistema):
root@ttyp0[knoppix]# fdisk -l /dev/hdb
Para formatear una partición del disco:
root@ttyp0[knoppix]# mkfs.ext2 -c /dev/hdb1
Esto creará un sistema de archivo ext2 normal en tu partición.
-c comprueba la partición en busca de bloques malos. Claro
que puedes crear el tipo de sistema de archivo que quieras: ext3, ReiserFS:
root@ttyp0[knoppix]# mke2fs -j -c /dev/hdb1
root@ttyp0[knoppix]# mkreiserfs /dev/hdb1
Qué ¿ No tienes particiones ? Bueno aquí está el procedimiento para crearlas con el comando fdisk desde la línea de comando. Es una manera segura de hacerlo ya que los cambios no se escriben al disco hasta que ingreses el comando para que sea así. Así que puedes probar diferentes opciones y ver como quedaría la tabla de particiones sin correr el riesgo de cometer errores y sin hacer ningún cambio. Esta secuencia de comandos crea una partición:
root@ttyp0[knoppix]# fdisk /dev/hdb
Escribe "m" en cualquier momento para ver una lista de los comandos de fdisk.
Luego, escribe "n" para crear una nueva partición. Ahora escribe "p"
para crear una partición primaria. Presiona Enter dos veces para aceptar
los ajustes por defecto o si no quieres usar el disco entero para la partición,
acepta el ajuste por defecto (para el punto de inicio), una sola vez y luego
selecciona el tamaño que quieres:
+1000M
Pulsa "p" en cualquier momento para previsualizar la nueva tabla de particiones.
Cuando te parezca que todo está bien, pulsa "w" para grabar los cambios
al disco. Por defecto, fdisk crea una partición "type 83",
que quiere decir 'Linux'. Para ver la lista de tipos de partición pulsa
"l". Para cambiar el tipo de partición pulsa "t". ¿Quieres borrar
una partición? Tan fácil como presionar "d" y seguir las instrucciones.
QTParted
Más fácil aún es en KDE, usando QTParted (System >
QTParted). QTParted crea, borra, y mueve y redimensiona no destructivamente
particiones (incluso NTFS). Así puedes hacer espacio para copiar tus
datos sin perder nada.
Copiando archivos desde la GUI
Me gustan los administradores de archivos gráficos. Es mucho más
simple hacer drag n' drop que escribir una larga línea de caracteres
de comandos. Pulsa los íconos en el escritorio de KDE que representan
el disco 'destino' y el disco 'origen', cada uno se abrirá y solo tienes
que seleccionar con el ratón los archivos que quieras copiar y arrastrarlos
desde el disco 'origen' al disco 'destino´ (aseguráte que el disco
'destino' esté montado en modo lectura/escritura).
Copiando archivos en la línea de comando
Recuerda crear primero, el directorio hacia donde vas a mover los archivos:
# mkdir /mnt/hdb1/home/carla/backup
# cp -r /mnt/hda5/home/carla /mnt/hdb1/home/carla/backup
Clonando un disco entero
Vas a necesitar dos discos duros del mismo tamaño o que el disco 'destino'
sea más grande que el disco 'origen'. Aseguráte de no tener particiones
montadas en ningún disco. En este ejemplo /dev/hda es el disco 'origen',
y /dev/hdb el disco 'destino'. El comando dd hace una copia exacta,
byte por byte, incluyendo el MBR (master boot record):
# dd if=/dev/hda of=/dev/hdb
Confusión de Montaje
Si no sabes qué es lo que está montado y donde, no hay problema,
/proc te ayuda:
# cat /proc/mounts
Esto te mostrará todos los sistemas de archivo montados, el tipo, el
status lectura/escritura y otras informaciones. Cuantos discos duros hay en
el sistema ? Uno de estos comandos te lo dirá ( y recuerda que los discos
SCSI son sd, y los IDE, hd):
# fdisk -l
o
# dmesg | grep hd
o
# dmesg | grep sd
Copiando datos a un CD
KDE y Knoppix te lo hacen fácil. Asumiendo que tienes una grabadora de
Cds, simplemente haz un clic con el botón derecho sobre el ícono
de la partición que contiene tus archivos, y pulsa la opción 'Crear
CD de Datos con K3b'. Ve a Archivo > Nuevo Proyecto y arrastra los archivos que quieras copiar al
CD, luego Mira en el ícono correspondiente de la barra para iniciar la
grabación. K3b es muy bueno para auto-detectar/configurar dispositivos
y debería hacerlo prácticamente sin tu ayuda. Mira en el artículo
de developerWorks, "Burning
CDs on Linux" ('Grabando Cds en Linux'), que te enseña a hacerlo
desde la línea de comando.
Copiando a otros medios
Discos Zip, disquetes, y dispositivos USB de almacenamiento serán automáticamente
reconocidos por Knoppix y sus respectivos íconos colocados sobre el escritorio.
Simplemente monta en modo lectura/escritura el medio al que quieres copiar y
arrastra los archivos al ícono.
Copiando sobre la red
Puedes configurar Knoppix para que se conecte a una red, igual que cualquier
otro Linux. Knoppix tiene su propia herramienta de configuración gráfica:
en el menú principal buscá Knoppix > Network/Internet. De
nuevo la excelente autodetección de hardware de Knoppix entra en juego,
funciona incluso con placas wireless (asumiendo que tenga soporte en Linux).
Simplemente contesta las preguntas del asistente y luego todo estará
funcionando.
Es tan simple como escribir como root, desde la línea de comando:
# netcardconfig
Una vez que tus parámetros de red estén configurados, hay varias
opciones para transferir archivos. cp es perfecta para sistemas
de archivos montados localmente, pero para copiar archivos sobre una red no
confiable se suele usar scp (secure copy – copia segura),
y de hecho Knoppix no te dejará usar otra cosa que no sea scp.
Este usa ssh para transferencias encriptadas de archivos y te permite mover
archivos sin levantar (ni tener que configurar), NFS o Samba. Vas a necesitar
un servidor ssh corriendo en algún lugar de la red para poder transferir
los archivos. Este comando, por ejemplo, copia un directorio completo:
# scp -rp /mnt/hda5/home/carla 192.168.1.5:/home/carla/tmp
Introducción rápida a SSH
Qué ¿ No tienes un servidor ssh? Si realmente todavía no
tienes instalado ssh, aquí tienes una rápida introducción
para aprender algo de ssh. Pero antes de entrar en la rutina de la administración
de tareas remotas, deberías estudiar ssh más en detalle. Ten en
cuenta que un número importante de problemas de seguridad se encuentran
(y se solucionan), regularmente.
OpenSSH está incluído en todas las distribuciones populares de
Linux y la tuya ya debe incluirlo desde hace tiempo. puedes ver si la tienes
instalada escribendo locate sshd. Si no es así bajala e
instalala. No necesitas una máquina especialmente rápida, cualquier
PC que corra Linux puede correr SSH (incluso la que estás usando de hecho,
para recibir los archivos de la máquina Knoppix). Para iniciarlo escribe:
# /etc/init.d/ssh start
Luego todo lo que necesitas tener son cuentas para el mismo usuario en ambas
máquinas. Usar la de root es lo más fácil, pero es potencialmente
peligroso. Y por supuesto, puedes crear cuentas de usuario en Knoppix según
necesites con useradd y passwd. Luego ejecuta el comando
scp como en el ejemplo antes mencionado y listo.
La primera vez que te conectes vas a recibir un mensaje: 'La autenticidad del host X no puede establecerse...estás seguro que quieres continuar conectándote?' ( "The authenticity of host X can't be established...are you sure you want to continue connecting?" ). Contesta 'yes' (sí). Te preguntará luego por la clave root del servidor SSH y luego puedes empezar a hacer lo que necesites. Para mover archivos como usuario no-root:
# scp -rp /mnt/hda5/home/carla carla@192.168.1.5:/home/carla/tmp
Abrir un shell root en el sistema host
Esto te permite operar sobre el sistema host como si estuvieras logeado en una
cuenta local, aunque estés remotamente logeado en él. Identifica
la partición sobre la que está el sistema host, luego abre una
terminal root en Knoppix y móntala así:
root@ttyp0[knoppix]# mount /dev/hda1 /mnt/hda1
root@ttyp0[knoppix]# chroot /mnt/hda1
root@Knoppix:/
Pasos en falso de Knoppix
Ejecutar programas desde un CD puede hacer problemáticas las cosas, especialmente
en portátiles. Es común que la característica de ahorro
de energía arruine una sesión de Knoppix ya que cuando la máquina
'retorna', Knoppix ya no responde. La única solución que conozco
es deshabilitar la característica de ahorro de energía o simplemente
rearrancar y empezar de nuevo.
A veces, Knoppix se congela durante el arranque y lo hace a medio camino de
iniciar KDE (o cualquier sesión X). Cambia a la primera consola virtual
(Ctrl + Alt + F1), para ver los mensajes de sistema; estos te dirán donde
está el problema. Presiona Alt + F5 para volver a la sesión X.
Por ejemplo, uno de mis sistemas de prueba se congelaba haciendo la detección
SCSI. ¿Por qué? Quien sabe. Deshabilité la detección
añadiendo la línea knoppix no scsi al comando de
arranque y luego todo funcionó bien.
El fermento creativo de Knoppix
Linux siempre ha inspirado una asombrosa creatividad. Knoppix ha habilitado
un amplio y nuevo sendero en este aspecto, y hay muchos proyectos basados en
él. Por ejemplo: Inside Security Rescue Toolkit, OpenGroupware Knoppix,
Damn Small Linux, y Overclockix. Lee la sección de Recursos
justo abajo, para obtener más información y enlaces hacia howtos
de como hacer tu propia distribución Knoppix.
Como siempre, páginas man, que aunque no son lo más legible del mundo, contienen listados completos de opciones y parámetros para los comandos. Las siguientes son las más útiles en operaciones de rescate.:
man fdisk
man mkfs
man fstab
man ifconfig
man mount
man proc
man dmesg
man iwconfig
man chroot
man scp
man sshd
man dd
man lspci
"Knoppix gives bootable, one-disk Linux" (developerWorks, Febrero 2003) de Cameron Laird es una excelente introducción a Knoppix.
Knoppix.org es el sitio oficial, mantenido por el creador de Knoppix, Klaus Knopper.
El recurso primo del anterior, Knoppix.net, tiene foros de usuarios (en inglés), Wikis, how-tos, y enlaces a docenas de proyectos inspirados en Knoppix – por ejemplo, como hacer su propio Linux Live CD personalizado, consejos para ejecutar Knoppix desde el disco duro, usos creativos de dispositivos USB de bolsillo, etc.
Knoppix Customizations ('Personalizaciones de Knoppix') son modificaciones no oficiales de Knoppix, incluyendo: Oralux, que trae muchos controladores para dispositivos braille, SkoleKNOPPIX orientado al lenguaje noruego, y muchos más.
El tutorial "Build a Linux test network" ('Construya una red Linux de prueba') - (developerWorks, Mayo 2003) incluye buenos consejos de uso de GRUB; refiérete a él para obtener ayuda en cuanto a problemas de arranque.
"Burning CDs on Linux" ('Grabando Cds en Linux) - (developerWorks, Abril 2003) te enseña como grabar Cds desde la línea de comando.
Si eres nuevo en programación en lee "Basic tasks for new Linux developers" ('Tareas básicas para nuevos desarrolladores en Linux') - (developerWorks, Enero de 2003), uno de los numerosos artículos introductorios de la página "Speed-start your Linux app" ('Acelerando tu aplicación Linux') de developerWorks, el recurso para desarrolladores de aplicaciones Linux sobre middleware IBM.
El Manual para el administrador de redes en Debian GNU/Linux es un invaluable recurso.
También recomendamos Recursos sobre Wireless LAN para Linux, una guía detallada sobre redes inalámbricas. Este sitio cubre todo lo necesites saber acerca de conexiones inalámbricas en Linux, así que tómalo como referencia si tienes que resolver algún problema al hacer una conexión inalámbrica durante una operación de rescate.
El CD salvavidas de Carla antes de Knoppix fue el Tom's Root Boot (o tomsrtbt) y también el SuperRescue CD de Peter Anvin.
El Centro de Coordinación del CERT en la Carnegie Mellon University tiene un mecanismo de búsqueda sobre información de vulnerabilidades de varias implementaciones de SSH y otro software. ¡Muy buen recurso!
Encontrarás todas las respuestas en el Secure Shell FAQ.
OpenSSH es una implementación libre y de código abierto de ssh.
Miembros del Centro de Tecnología Linux de IBM (IBM Linux Technology Center – LTC ), contribuyen a varios proyectos relativos a diversos dispositivos incluyendo el driver para el APC Modem (Mwave), BlueDrekar Middleware transport driver, el Hotplug Project, y USB on Linux, entre otros. Encontrarás una lista completa de los proyectos apoyados por el Centro de Tecnología Linux de IBM en el sitio web de LTC.
Vas a encontrar más artículos y tutoriales relacionados con Linux en la sección Linux de developerWorks.