viernes, 30 de mayo de 2008

Comando dd

Introducción:

El comando dd (duplicate disk) es un comando bastante útil para transferir datos desde un dispositivo/archivo hacia un dispositivo/archivo/etc.
En este mini-howto vamos a ver las diferentes utilidades que se le pueden dar al comando

La sintaxis básica del comando es la siguiente:

dd if=origen of=destino

donde if significa "input file", es decir, lo que querés copiar y
of significa "output file", o sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser dispositivos (lectora de CD, diskettera, etc.), archivos, etc.


Copiando Diskettes:
primero insertamos el diskette origen y escribimos lo siguiente en una consola:
dd if=/dev/fd0 of=~/diskette.img

después insertamos el diskette destino (en blanco) y escribimos lo siguiente:
dd if=~/diskette.img of=/dev/fd0

nos queda eliminar la "imagen" que creamos y listo...
rm -f ~/diskette.img

NOTA: El ~ significa "tu directorio home", es similar a escribir $HOME


Manejo de errores durante la copia:
Es posible que durante la copia o duplicación de un diskette se encuentren errores en la superficie del mismo. Para evitar que este error nos impida copiar los datos "buenos" del disco podemos hacer lo siguiente:

dd conv=noerror if=/dev/fd0 of=~/imagen_disco_con_errores.img

NOTA: la opción noerror hace que se continúe con la copia aunque se produzcan errores de lectura


Haciendo imágenes ISO de un CD:
La forma mas fácil y efectiva de crear nuestras "imagenes" de CD es la siguiente:

dd if=/dev/cdrom of=micd.iso


El comando dd también sirve para copiar particiones o discos completos unos sobre otros. Básicamente podemos decir que mediante dd podemos "clonar" particiones o nuestro disco rígido completo. Para hacer esto hacé lo siguiente:

dd if=/hdxa of=/hdyb (copia una partición en otra)
dd if=/hdx of=/hdy (copia de un disco duro en otro)

donde: x: disco rígido origen, y: disco rígido destino, a: partición origen, b: partición destino.

NOTA: Es necesario que sepas como se definen los discos y particiones en Linux antes de mandarte con estos comandos


RECOMENDACIONES:
* Tener mucho cuidado con lo que haces porque los datos de la partición o disco destino serán destruidos por completo.
* Tienes que tener en cuenta también que la partición o disco destino debe ser igual en tamaño (o en todo caso mayor) que la partición o disco origen.
* Es conveniente que hagas una copia de seguridad de los datos importantes y tener a mano un disco de arranque de linux por si las moscas (je je! 1-grin ).

Por último:
Tener presente que el tamaño de la imagen resultante va ser exactamente el mismo que el del dispositivo original. Es decir: dd te guarda también el espacio no utilizado.
Podés redirigir la salida con una tubería (pipe) y comprimirlo con gzip, bzip o bzip2, pero aún así vas a necesitar bastante espacio libre para poder guardar las imágenes que generes.

Mas información:

man dd
San Google!

Arrancar MS-DOS desde una memoria USB

Valiéndonos del comando ms-sys desde Linux la tarea es muy sencilla. Partimos con una memoria USB completamente vacía, cosa de la que nos aseguramos llenando el dispositivo de ceros con el comando dd:

# dd if=/dev/zero of=/dev/sdi
dd: writing to `/dev/sdi': No space left on device
492545+0 records in
492544+0 records out
252182528 bytes (252 MB) copied, 192.376 seconds, 1.3 MB/s

A continuación creamos la tabla de particiones y el sistema de ficheros FAT32:

# fdisk /dev/sdi
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1009, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1009, default 1009):
Using default value 1009

Command (m for help): a
Partition number (1-4): 1

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))

Command (m for help): p

Disk /dev/sdi: 252 MB, 252182528 bytes
8 heads, 61 sectors/track, 1009 cylinders
Units = cylinders of 488 * 512 = 249856 bytes

Device Boot Start End Blocks Id System
/dev/sdi1 * 1 1009 246165+ c W95 FAT32 (LBA)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

# mkfs.vfat -F 32 /dev/sdi1
mkfs.vfat 2.11 (12 Mar 2005)

Y ahora escribimos un MBR y un sector de arranque para la par

tición:

# ms-sys -w /dev/sdi
DOS/Windows NT master boot record successfully written to /dev/sdi

# ms-sys -w /dev/sdi1
FAT32 DOS boot record successfully written to /dev/sdi1


# ms-sys -p /dev/sdi1
Start sector (nr of hidden sectors) successfully written to /dev/sdi1
Physical disk drive id 0x80 (C:) successfully written to /dev/sdi1

El ms-sys con la opción -p es importante porque de otro modo, en muchos casos, el MS-DOS no consigue arrancar del disco, tal y como explica la página de manual del ms-sys:

-p, –partition
Write partition info (hidden sectors and drive id) to boot record. This might be
needed on some partitions depending on which program was used to create the file
system.

[...]

BUGS
There have been reports about unbootable FAT32 partitions created with “mformat -F c:”.
One workaround is to use gnu parted to create the partition instead. Since version 1.1.3
ms-sys has the switch -p which is supposed to fix this problem. The problem has also been
reported on partitions formatted with mkdosfs and mkfs.vfat.

El último paso es copiar a la memoria los ficheros de arranque de MS-DOS necesarios (si no los tenemos, más abajo explico de dónde podemos obtenerlos), el IO.SYS, MSDOS.SYS y COMMAND.COM, y también podemos poner ya todos los que vayamos a necesitar según el fin que tengamos pensado para este MS-DOS (especialmente interesantes pueden ser el HIMEM.SYS, el EMM386.SYS, el DBLBUFF.SYS y el IFSHLP.SYS):

# mount /dev/sdi1 /mnt/usb

# cd /path_a_ficheros_de_ms-dos/

# cp io.sys msdos.sys command.com /mnt/usb/

# cp himem.sys emm386.exe ifshlp.sys dblbuff.sys /mnt/usb

# umount /mnt/usb

En este punto la memoria USB ya está lista para arrancar MS-DOS.


Los archivos de MS-DOS podemos tomarlos de cualquier disco de rescate o instalación que tengamos de Windows 98 o Windows ME (o de las últimas versiones de Windows 95 (OSR2) que también soportaban FAT32). Si no tenemos ninguno a mano pero sí un Windows XP, hemos de saber que el Windows XP es capaz de crearnos discos de rescate de MS-DOS de la versión que llevaba el Windows ME (en la Wikipedia se puede ver qué versiones de MS-DOS llevaba cada Windows). Para ello sólo tenemos que ir al diálogo de formatear disquetes y marcar la casilla de “Create an MS-DOS startup disk”:

Windows XP - Create an MS-DOS startup disk

Esta operación nos dejará los siguientes ficheros en el disquete que podremos usar para nuestra memoria USB:

A:\>dir /a
Volume in drive A has no label.
Volume Serial Number is 2A87-6CE1

Directory of A:\

07/04/2001 13:40 9 MSDOS.SYS
15/05/2001 18:57 116.736 IO.SYS
08/06/2000 17:00 58.870 EGA2.CPI
08/06/2000 17:00 58.753 EGA3.CPI
08/06/2000 17:00 58.870 EGA.CPI
08/06/2000 17:00 21.607 KEYB.COM
08/06/2000 17:00 34.566 KEYBOARD.SYS
08/06/2000 17:00 31.942 KEYBRD2.SYS
08/06/2000 17:00 31.633 KEYBRD3.SYS
08/06/2000 17:00 13.014 KEYBRD4.SYS
08/06/2000 17:00 29.239 MODE.COM
08/06/2000 17:00 93.040 COMMAND.COM
08/06/2000 17:00 17.175 DISPLAY.SYS
29/06/2007 10:53 95 AUTOEXEC.BAT
29/06/2007 10:53 33 CONFIG.SYS
15 File(s) 565.582 bytes
0 Dir(s) 888.320 bytes free

Si trabajamos en un sistema sin unidad de disquete, podemos usar el excelente emulador de disquetera para Windows Virtual Floppy Drive 2.1 que nos permite que el Windows XP formateé uno de sus disquetes virtuales dejándonos los ficheros de MS-DOS listos para usar.

Es necesario matizar que MS-DOS usa los ficheros MSDOS.SYS y el IOS.SYS pero, por ejemplo, el PC-DOS y el DR-DOS usaban los ficheros IBMBIO.COM y IBMDOS.COM y el FreeDos usa el KERNEL.SYS (fuente: documentación del comando sys del FreeDos) y que el comando ms-sys no escribe sectores de arranque adecuados para estas variantes de DOS.

Si no queremos usar Linux, hay un camino todavía más rápido para llegar a este punto basado en la utilidad de HP HP USB Key ROMPAQ Setup Utility que nos instala un comando de nombre HPUSBFW.EXE con este aspecto:

HP USB Format Utility

que nos permite, proporcionándole un directorio donde estén los fichero de MS-DOS requeridos que comentábamos antes, tener rápidamente una memoria USB lista para arrancar MS-DOS. En el foro del BartPE, donde estuvieron durante bastante tiempo hablando sobre cómo conseguir botar de USB (algo que usaremos en posteriores entradas), encontramos un interesante análisis sobre qué hace de especial dicha utilidad: Boot Bartpe From Usb Flash Drive, please try this!

The bootsectors of the Windows and HP formats had only 5 differences:
Locations 024-02A: HP=80 00 29 3C AC 48 68, Win=00 00 29 E9 3B 52 00

Igual que hicimos con el Knoppix, en este punto resulta muy interesante ver cómo instalar el GRUB en la memoria USB y configurarlo para que que cargue el MS-DOS. Para ello, desde un Linux con GRUB, hacemos:

# mount /dev/sdi1 /mnt/usb/

# mkdir -p /mnt/usb/boot/grub/

# vi /mnt/usb/boot/grub/device.map

# cat /mnt/usb/boot/grub/device.map
(hd0) /dev/sdi

# /usr/sbin/grub-install --no-floppy --root-directory=/mnt/usb/ '(hd0)'
Installation finished. No error reported.
This is the contents of the device map /mnt/usb//boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0) /dev/sdi

Y ahora ya sólo nos queda crear un menú adecuado para arrancar el MS-DOS de esta unidad en /mnt/usb/boot/grub/menu.lst:

default 0
fallback 1

title MS-DOS
rootnoverify (hd0,0)
makeactive
chainloader +1

Pero esta configuración usa el sector de arranque que está al principio de la partición, mientras que lo que puede resultarnos mucho más interesante para nuestros propósitos futuros de arrancar varios sistemas operativos desde una memoria USB es almacenar dicho sector de arranque a un fichero y que GRUB use dicho fichero:

# cd /mnt/usb/

# dd if=/dev/sdi1 of=bootsect.dos bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.003348 seconds, 153 kB/s

Y ahora ya podemos poner una alternativa en el menú que nos permita usar dicho sector para arrancar:

default 0
fallback 1

title MS-DOS
rootnoverify (hd0,0)
makeactive
chainloader +1

title MS-DOS bootsector en fichero
rootnoverify (hd0,0)
makeactive
chainloader /bootsect.dos



Para finalizar, comentar el tutorial Boot from USB Flash drive basado en la utilidad mkbt que nos permite coger el sector de arranque de un disquete de arranque y ponerlo en la unidad USB. Sin embargo, hay que comentar que seguir ese tutorial en un filesystem FAT32 lo daña y queda inaccessible, mientras que al hacerlo en uno FAT16 no parece que se rompa nada pero sin embargo a mi no me ha funcionado bien. En cualquier caso, está bien conocer otra alternativa más.

Fuente: Blog de Vicente Navarro Jover

miércoles, 28 de mayo de 2008

Instalación de Knoppix 5.1 desde memoria USB

A casi todos nos gustaría llevar encima todas las aplicaciones que nos gustan para poder trabajar en casi cualquier máquina. Veamos a continuación los pasos para crear desde windows una memoria USB (o pendrive) de arranque con Knoppix 5.1 y poder ejecutarla en cualquier máquina que permita el arranque desde USB.

Elementos necesarios:


  • - Un stick, pendrive, lápiz (o como se deba llamar) USB de 1 GB o superior

  • - Herramienta para formatear "HP-USB"

  • - Distribución Knoppix 5.1 comprimida

Pasos a seguir:

Importante: NO EJECUTAR makeboot.exe (que descargaremos a continuación) desde ninguna unidad local. Este debe de ser ejecutado SÓLO desde la Memoria USB

  • 1. Descargar el software HP-USB, herramienta para dar formato a la memoria en FAT o FAT-32.

  • 2. Descargar la distribución comprimida de Knoppix 5.1

  • 3. Descomprimir el archivo anterior dentro de la memoria USB

  • 4. Ejecutar DESDE LA MEMORIA USB el archivo Makeboot.exe

  • 5. Seguir los pasos que aparecen en pantalla

  • 6. Reiniciar el PC cambiando el arranque de forma que le de prioridad al un USB-HD

Es necesario disponer de Net framework para ejecutar la aplicación Makeboot.exe, por tanto el windows desde el que se realicen estos pasos ha de tenerlos instalado.

Traducido del original: http://www.pendrivelinux.com

Otra manera:

Necesitarás los siguiente para crear tu Knoppix portable:

  • Memoria USB 1GB o mayor
  • Plataforma Windows PC (XP or Vista)
  • Knoppix Linux ISO
  • fixkp2.exe
  1. Download fixkp2.exe y ejecutarlo, se creará una carpeta USB-Knoppix
  2. Download el ISO Linux de Knoppix y moverlo a la carpeta USB-Knoppix
  3. Doble Click fixkp2.bat desde la carpeta USB-Knoppix y seguir las instrucciones de pantalla
  4. Reiniciar tu PC y configurar tu sistema BIOS o Boot Menu para arrancar desde el dispositivo USB, guardar los cambios y reiniciar
  5. Una vez reiniciado, deberías tener acceso al sistema Knoppix desde tu memoria USB.

Nota: Si necesitas cualquier ayuda adicional, verifica la sección tus opciones de arranque BIOS o la Sección de Herramientas (sólo que están en inglés).


Otra manera:

¡Al fin lo conseguí!

He instalado una versión modificada de Konppix (Linux de autoarranque) para que arranque desde una memoria USB. ¡Es genial! Ahora junto con las llaves llevo una barrita USB que conecto a cualquier equipo y arrancando cargo un entorno gráfico Linux, con Firefox, gestor de correo, NMAP, Gaim, Ethereal, VNC…

Les cuento porque el procedimiento es bien sencillo, aunque puede no funcionar siempre, depende del modelo de memoria usb de que dispongas y de la PC en el que se cargue. Se hace así:

1) Descargar Feather Linux. Es una versión modificada de Knoppix para USB. Me he bajado la 0.7.4
2) Descomprimir Feather Linux y tras formatear la memoria USB (ha de ser mínimo de 128 megas) copiar todos los ficheros a ella.
3) Descargar Syslinux. Yo me he bajado la 3.11
4) Descomprimir Syslinux, entrar en la carpeta WIN32 y ejecutar desde el prompt de comandos: SYSLINUX G: (G es la letra de la memoria USB en mi equipo, en el tuyo puede ser otra). Eso hace que el USB sea de autoarranque.

¡Terminado!

Conecta el USB y reinicia el equipo, si tienes bien configurada la BIOS para que arranque desde el USB debería funcionarte. Recuerda que es un Knoppix, por lo que puedes usar los parámetros de arranque de Knoppix. Yo, para tener el teclado en spanish, pongo: knoppix lang=es

martes, 27 de mayo de 2008

Ubuntu Server: Instalación y configuración básica

UbuntuEmpezamos con el proceso de instalación, sencillo e intuitivo. Supongamos que dispongo de un disco duro de 320 GB el cuál particiono de la siguiente forma:
  • 20 GB en ext3 montado como raíz
  • 3 GB de partición de intercambio
  • 290 GB en ext3 para el directorio /home (aquí van los directorios de todos los usuarios y será la carpeta que se exportará con NFS)
  • 7 GB en ext3 montado como /www donde guardaré mis páginas webs

phpDurante el proceso de instalación, elijo el nombre de mi host como LINUXSERVER y escojo la opción de instalar el servidor LAMP y el servidor SAMBA. Y dejo continuar la instalación…

Me he tomado la molestia de mirar la hora de inicio y fin de todo el proceso de instalación, y han sido sólo 14 minutos desde que metí el CD hasta que se reinicia el servidor (contando que estuve unos 4 o 5 minutos deliberando qué particiones me convenían). Tras esos 14 minutos, dispongo de un servidor en linux, corriendo Apache, MySQL, PHP y Samba. Así de sencillo… Ahora es el momento de configurar el servidor a mi gusto.

Antes de nada, actualizo la lista de paquetes con

# sudo apt-get update

Empiezo por definir el nombre del servidor para Apache. En el fichero /etc/apache2/apache2.conf añado la siguiente línea:

ServerName localhost

El siguiente punto es cambiar el directorio de trabajo de Apache, ya que por defecto trabaja en /var/www pero yo quiero trabajar sobre la partición /www. En /etc/apache2/sites-available/default tan solo hay que buscar la línea

Document Root /var/www

y cambiarla por:

Document Root /www

Con la opción de LAMP server, se instala el servidor de MySQL (versión 5) y, para ayudarme a la hora de gestionar mis bases de datos, nada mejor que phpMyAdmin, el cual se instala y configura directamente con la instrucción:

# sudo apt-get install phpmyadmin

Ahora ya puedo administrar mis bases de datos entrando directamente en http://LINUXSERVER/phpmyadmin desde cualquier equipo de la red.








miércoles, 21 de mayo de 2008

Alternativas frente al nuevo DOCX y el conocido PDF

No todos contamos con la nueva suite de Microsoft Office 2007, pero ya son varios los usuarios de esta plataforma, en especial de Microsoft Word 2007, que elaboran sus trabajos por medio de ella. La novedad de la nueva versión de Office, entre otras cosas, es la aparición de los nuevos formatos DOCX (Word); XLSX (Excel); PPTX (Power Point). Esto puede convertirse en un problema, cuando nos envían un documento en estos formatos y contamos con versiones anteriores a Office 2007, o bien con la suite gratuita OpenOffice.org, ya que se hace imposible la lectura de este tipo de archivos. Por suerte existen varias alternativas de solución:


El Paquete de Compatibilidad de Microsoft
Para quienes poseen alguna versión de Office, Microsoft tiene disponible un Paquete de compatibilidad para los archivos de Word, Excel y Power Point 2007 que pueden descargar desde aquí siguiendo las instrucciones en pantalla.

Un Plug-in para OpenOffice.org
Para quienes prefieren la alternativa libre y poseen OpenOffice.org existe un plug-in que nos permite procesar documentos en estos formatos; se trata del OpenOffice.OpenXML Translator 1.1.0 de Novell.

DOCX Converter.com
Por último, para quienes viajan mucho y recurren a PC’s en cibercafés y locutorios, o simplemente no desean instalar nada, existe DOCX Converter.com, un potente conversor online gratuito de archivos DOCX a varios formatos.

Puede ver el artículo completo en el Blog "Alternativas frente al nuevo DOCX y el conocido PDF".


viernes, 16 de mayo de 2008

Comandos DOS para redes

Video que explica los comandos PING e IPCONFIG:



A continuación algunos otros comandos que requieren que los experimentes:

ipconfig/all: Muestra la configuración de las conexiones de red
ipconfig/displaydns: Muestra la configuración sobre las DNS de la red
ipconfig/flushdns: Borra la caché de las DNS en la red
ipconfig/release: Borra la IP de todas las conexiones de red
ipconfig/renew: Renueva la IP de todas las conexiones de red
ipconfig/registerdns: Refresca DHCP y registra de nuevo las DNS
ipconfig/showclassid: Muestra información de la clase DCHP
ipconfig/setclassid: Cambia/modifica el ID de la clase DHCP
control netconnections: Abre las Conexiones de red
netsetup.cpl: Abre Asistente de conexión de red
ping dominio.tld: Comprobar conectividad a un servidor
tracert: Tracear la ruta de una dirección IP (Mas Información)
netstat: Mostrar la sesión del protocolo TCP/IP (Mas información)
route: Mostrar la ruta local (Mas Información)
arp: Muestra la dirección MAC
hostname: Muestra el nombre de la computadora

A continuación otro video que explica el comando NET SEND:



Como siempre la recomendación de seguir investigando y ampliando esta pequeña lista porque existen muchísimos comandos más.

lunes, 12 de mayo de 2008

Acceder al usuario root en Ubuntu

En el terminal digitar:

sudo passwd root


para asignar un password al usuario root

Luego, entramos como usuario root:

su