lunes, marzo 19, 2007

Usando la partición NTFS de Windows en VMWare desde Ubuntu Linux

Básicamente, tras buscar durante algún tiempo y leerme la información dedicada al tema que VMware tiene en su site oficial, he optado por traducir artículo de manera más o menos libre, documentando mi caso real y comentando algunos cambios.

Comencemos: este artículo trata sobre la posibilidad de ejecutar en una máquina virtual la partición que de Windows se tenga en el equipo. Es decir, caso de tener configurado un arranque dual por la necesidad de ciertas aplicaciones propietarias, siguiendo este pequeño how-to se podrá correr el Windows de la partición NTFS directamente en Linux a través de una máquina virtual.

Comentar primero que VMWare no documenta ningún caso de éxito con la Windows XP, por lo que aquél que decida seguir estos pasos deberá ser consciente de que su partición de Windows podrá resultar dañada. Personalmente, llevo ya varias semanas usándolo sin problemas, pero aun así me creo en el deber de comunicarlo para no inducir a error.

Antes de comenzar, y dando ya por terminado este pesado preámbulo, citaré las fuentes:
  1. Running a Windows Partition in VMware
  2. Configuring a Dual-Boot Computer for Use with a Virtual Machine
  3. Configuring Dual- or Multiple-Boot SCSI Systems to Run with VMware Workstation on a Linux Host

1. Qué necesitamos
  1. Obviamente, un disco particionado con una instalación de Windows XP funcionando sin problemas, aunque más adelante veremos que no tiene porqué estar instalado.
  2. VMWare Player, será nuestro software de virtualización. Además incluiremos los paquetes para el kernel (linux-headers-`uname -r`, build-essentials, gcc, etc. los ).
  3. Un editor de textos, ya sea jed, vi, gedit o cualquiera.
  4. GNU Parted, herramienta de consola que usaremos para obtener información de nuestros discos físicos y modificar la tabla de partición si es necesario.
Para conseguir esto, en Ubuntu bastaría con la siguiente instrucción:
$ sudo apt-get install jed vmware-player vmware-player-kernel-modules parted


2. Configurando un disco duro virtual

lunes, septiembre 11, 2006

Ver código fuente seleccionado

En mi trabajo diario me veo en la obligación de pasar campos que serán usados en consultas SQL. Recientemente tuve un error en el envío de un parámetro acentuado, pensé que sería el típico problema de htmlentities() o htmlspecialchars(), pero mi código era correcto; entonces, ¿por qué la consulta no funcionaba bien? Enervado por tal disfunción ilógica, decidí realizar pruebas directamente con la sentencia SQL, imprimiéndola en la página HTML y luego copiando y pegando la consulta para ver si arrojaba los resultados esperados. Mi sorpresa llegó cuando las filas obtenidas eran las que debían ser.

Entonces caí en cuenta de un pequeño detalle: el navegador Mozilla Firefox, del que soy fan acérrimo, tiene un menú contextual que en caso de haber seleccionado texto (o cualquier cosa) con el ratón permite mostrar el código HTML que lo ha generado, el práctico 'Ver código fuente seleccionado'. Esa opción era la que estaba usando para ver la sentencia SQL y ejecutarla independientemente y esa era la raíz del problema, ya que dentro de la cadena que formaba la consulta había una palabra con tilde. Firefox no funciona de la misma manera cuando deseamos ver el código fuente de una página completa o un extracto de la misma. Ejemplificando, supongamos el siguiente extracto de una página HTML.
<body>

B&eacute;same mi brillante culo met&aacute;lico, cacho carne.

</body>
El resultado en el navegador será el siguiente.
Bésame mi brillante culo metálico, cacho carne.
Ahora, si con el ratón seleccionamos la palabra 'Bésame' o ' metálico' y elegimos 'Ver código fuente seleccionado' del menú contextual obtendremos 'Bésame mi brillante culo metálico, cacho carne.'; en cambio, su vamos al menú 'Ver' -> 'Código fuente de la página' (o pulsamos Ctrl. + U) se nos mostrará correctamente 'B&eacute;same mi brillante culo met&aacute;lico, cacho carne.', puede parecer una sutileza insignificante, pero personalmente me ha costado un quebradero de cabeza que puede evitarse.

Desconozco si los desarrolladores de Firefox están al tanto de estas características, pero en mi actual versión 1.5.0.6 el problema continúa.

sábado, agosto 26, 2006

Extensiones imprescindibles para Firefox

He aquí una lista de lo que para mi resultan extensiones sin las que el uso del navegador Mozilla Firefox no sería tan intensivo, eficaz y satisfactorio. Espero no dejarme ninguna en el tintero, de cualquier manera, si eso sucede intentaré mantener esta entrada actualizada.
Otras menos importantes
Y por supuesto, los motores de búsqueda
Y otros menos importantes

miércoles, agosto 23, 2006

Linux-NTFS: Conseguido (ntfs-3g)

Lo cierto es que aun no he realizado pruebas intensivas con esta nueva capacidad de mi Ubuntu, pero al menos relataré cómo lo he conseguido, pues ha sido de la forma más sencilla. Tras mucho buscar e investigar, descubro gracias a meneame.net un sitio en el que enumeran las 11 mejores aplicaciones para Ubuntu (a juicio del autor, claro), y por suerte para mí, una de ellas era el driver ntfs-3g que permite leer y escribir en particiones NTFS, pero todo se hace desde el maravilloso apt-get. La emoción me embarga, iré por pasos traduciendo del original, disponible en los foros de Ubuntu en inglés.

Lo primero es avisar de que ntfs-3g es aun una beta, por lo que no se recomienda su uso en máquinas dedicadas a la producción. Si es inevitable trabajar con Windows, es preferible usar fs-driver.org para montar las particiones ext3 desde el SO de Microsoft.

Dicho esto, me gustaría mencionar que es bastante estable y seguro. Una prueba de ello (además de los casi 2 años de test del creador del driver) la pueden encontrar en un post del mismo autor del HOWTO en los foros de Ubuntu.

Llegados a este punto, debería explicar la problemática existente de tiempo atrás con las particiones Windows y Linux y comentar las alternativas existentes. Lo siento mucho pero no lo haré, solo diré que nosotros usaremos FUSE y ntfs-3g.

1. Instalación

Lo primero que se necesita es añadir uno de los dos siguientes repositorios a nuestro sources.list, para lo cual tecleamos.
$ sudo gedit /etc/apt/sources.list
Y añadimos al final del fichero lo siguiente
## Linux-NTFS Givre's repository (ntfs-3g & fuse 2.5.3)
deb http://givre.cabspace.com/ubuntu/ dapper main
deb-src http://givre.cabspace.com/ubuntu/ dapper main
o bien
## Linux-NTFS (ntfs-3g & fuse 2.5.3)
deb http://flomertens.keo.in/ubuntu/ dapper main
deb-src http://flomertens.keo.in/ubuntu/ dapper main
Actualizamos nuestro sistema
$ sudo apt-get update
$ sudo apt-get upgrade
E instalamos todo con una sola orden
$ sudo apt-get install ntfs-3g
2. Configuración

Para este paso asumiremos que no hay ninguna partición NTFS en modo sólo lectura previamente montada en el sistema, por lo que si la tiene es necesario que la desmonte, bien con el botón derecho del ratón sobre el icono de la unidad en el escritorio y pulsando en 'Desmontar volumen', bien mediante la correspondiente orden umount.

Cuando esté todo instalado correctamente, necesitaremos configurar la partición NTFS para que sea montada mediante ntfs-3g. Por tanto, hemos de saber el nombre de la tal partición.
$ sudo fdisk -l | grep NTFS
Lo que nos dará al menos una línea con un aspecto similar al siguiente
/dev/hda1 1 3902 31342783+ 7 HPFS/NTFS
Por tanto, nuestra partición será hda1, y la montaremos en /media/winXP, para lo cual hemos primero de crear dicho directorio (si no estuviese ya creado)
$ sudo mkdir /media/winXP
Ahora modificaremos el fichero /etc/fstab para que monte la partición en cada reinicio
$ sudo gedit /etc/fstab
Y añadimos la línea
/dev/hda1 /media/winXP ntfs-3g silent,umask=0,locale=es_ES.utf8,no_def_opts,allow_other 0 0
Si ya existiese una orden para montar en /media/winXP la partición /dev/hda1 con nfs habría que sustituirla por la anterior.

Las localizaciones que podemos usar a la hora de montar la unidad se corresponden con la salida de este comando, en nuestro caso hemos usado es_ES.utf8
$ sudo cat /var/lib/locales/supported.d/local
Para termirnar, necesitamos cargar fuse en cada reinicio, para lo cual hemos de añadir una línea con la palabra fuse al final del fichero /etc/modules. Por tanto
$ sudo gedit /etc/modules
Y añadimos fuse al final. Ya está listo, si queremos verlo en acción bastará con teclear
$ sudo modprobe fuse
$ sudo umount -a
$ sudo mount -a
Más fácil imposible.

4. Usando NTFS en dispositivos USB

Puede que tengamos algún dispositivo de almacenamiento que trabaje con NTFS pero que estemos conectando y desconectando con asiduidad, por lo que no podremos añadirlo al /etc/fstab. Para ello una solución puede ser añadir un script en Nautilus que permita montar esos dispositivos con ntfs-3g, en lugar del driver habitual con el que lo hace Ubuntu, de manera que al pulsar con el botón derecho del ratón sobre el dispositivo USB, nos aparecerán dos opciones en Scripts, Scripts -> mount_with_ntfs-3g para re-montar la unidad con permisos de lectura y escritura, y Scripts -> unmount_ntfs-3g para desmontarla.
$ sudo apt-get install ntfs-3g-nautilus-tool
$ nautilus-script-manager enable mount_with_ntfs-3g
$ nautilus-script-manager enable unmount_ntfs-3g
Y esto es todo, no dejen de pasarse por al artículo original en caso de experimentar algún problema.

jueves, agosto 17, 2006

Audacity y libmp3lame.so

Suele ser un problema habitual que cuando deseamos convertir una canción a formato MP3 con cualquier finalidad y usando para ello el software Audacity, éste nos muestra un mensaje pidiéndonos que indiquemos la ruta de libmp3lame.so, pero cuando buscamos este archivo en nuestro sistema de ficheros no lo encontramos.
$ sudo updatedb
$ locate libmp3lame.so
No obstante, en su lugar obtenemos libmp3lame.so.0 ó incluso libmp3lame.so.0.0.0, por tanto, para resolver el problema basta con crear un enlace al archivo.
$ sudo ln -s /usr/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so
Y listo, elegimos el nuevo enlace en Audacity y debe funcionar sin problemas.

RAR, ACE y 7zip (7z) en Ubuntu

Ubuntu trae una gran variedad de formatos soportados por File Roller, el administrador de ficheros comprimidos, pero en las redes P2P es bastante habitual encontrar extensiones .rar o .ace, ambos formatos propietarios pero que resultan insprescindibles para el día a día.

Para poder abrir y extraer el contenido de estos archivos es necesario instalar los paquetes rar, unrar y unace.
$ sudo apt-get install rar unrar ace
Pero también existe un formato de alta compresión que cada día se va haciendo un hueco en el Red, el formato 7-zip. Está liberado bajo GNU GPL y su código ha sido portado a C, C++, C#, Java, gracias a lo cual desarroladores independientes han desarrollado una versión de línea de comandos para Linux, p7zip. Descargamos los binarios de la siguiente dirección
http://sourceforge.net/project/showfiles.php?group_id=111810&package_id=120924&release_id=420561

Descomprimimos y navegamos en un terminal hasta el directorio en cuestión.
$ sudo sh install.sh
Y ya dispondremos de una aplicación de línea de comandos para comprimir y descomprimir en formato 7zip.
$ 7z a -r actual.7z *.*
La instrucción anterior comprimiría el contenido del directorio actual de forma recursiva (con todos sus subdirectorios) al archivo.

Además, la instalación nos ha agregado un nuevo tipo de archivador a File Roller, el formato .7z, por lo que ahora podremos crear y abrir de manera más cómoda ese tipo de ficheros.

miércoles, agosto 16, 2006

Linux-NTFS: 1er Intento

Bueno, como soy de esas personas tozudas que no paran hasta resolver el problema que se les plantea, he decidio instalar Linux-NTFS, que como ya indiqué, permite la escritura en el sistema de archivos NTFS desde Ubuntu. Para ello, lo primero es actualizar el sistema mediante los comandos:
$ sudo apt-get update
$ sudo apt-get upgrade
El primero actualiza la lista de paquetes desde los respositorios; y el segundo descarga e instalas las últimas versiones de los paquetes que hayan sido actualizados. Mencionar también que los repositorios se encuentran en /etc/apt/sources.list o utilizando la herramienta gráfica Synaptic, en el menú Configuración - Repositorios. De cualquier manera, aunque no sean los mejores, aquí dejo mis lista:
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://es.archive.ubuntu.com/ubuntu/ dapper-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ dapper-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://archive.ubuntu.com/ubuntu/ dapper universe main restricted multiversedeb-src http://es.archive.ubuntu.com/ubuntu/ dapper universe

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://es.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
# deb-src http://es.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
# deb http://security.ubuntu.com/ubuntu dapper-security universe
# deb-src http://security.ubuntu.com/ubuntu dapper-security universe
A partir de este momento consideraré que el sistema está completamente instalado, si le administrador de paquetes os avisa de que quiere descargar e instalar casi 100 MB, no os preocupéis, es normal si nunca habéis actualizado paquetes.

Lo siguiente es descargarse la las cabeceras para el kernel y module-assistant, para ello usamos las siguientes instrucciones, si no se fia de mí (y hace bien) n e arriesgue a crashear su sistema. Pero si ama el riesgo, teclee los siguientes comandos
$ sudo apt-get install fuse-source module-assistant
$ sudo module-assistant clean fuse
$ sudo module-assistant prepare
$ sudo module-assistant install fuse
Y además, por si acaso, instalamos los build-essentials necesarios para compilar.
$ sudo apt-get install build-essentials
Es momento ahora de descargar la última versión del driver, en este momento, disponible en http://mlf.linux.rulez.org/mlf/ezaz/ntfs-3g-20070811-BETA.tgz, la bajamos al escritorio y la extraemos pulsando sobre 'Extraer aquí' del menú del botón derecho del ratón o mediante el correspondiente comando tar que jamás me funciona como es debido. Ahora hemos de tener un directorio en nuestro escritorio llamado ntfs-3g-20070811-BETA, pues desde una consola accedemos a él y tecleamos lo siguiente.
$ sudo ./configure
Si todo ha salido bien, no debe dar ningún error, pero en mi caso sigue saliendo el mensaje
checking for fuse >= 2.5.0... configure: error: ntfs-3g requires FUSE version >= 2.5.0. See http://fuse.sourceforge.net/ how to install FUSE.
Por lo que instalaré FUSE otra vez, ahora desde la página que me indican. A ver si la para la próxima consigo activar el condenado NFTS sobre Ubuntu.

miércoles, agosto 09, 2006

Particiones: OK

Finalmente fui sobre seguro y la partición para datos compartidos entre Windows y Ubuntu la formateé con FAT32, por lo que el fichero /etc/fstab, que es de donde Ubuntu monta las unidades sobre el árbol de directorios, queda de la siguiente manera.

#
proc /proc proc defaults 0 0
/dev/hda1 /media/winXP ntfs defaults,nls=utf8,umask=007,gid=46 0 1
/dev/hda2 / ext3 defaults,errors=remount-ro 0 1
/dev/hda3 none swap sw 0 0
/dev/hdb1 /media/data vfat gid=1000,umask=0007,fmask=0117,utf8 0 0

La partición tipo AF (MacOS Plus) no está accesible desde Linux. Mencionar también que conseguí que el Mac OS arrancara, para lo cual sólo tuve que añadir un chainloader en el grub, tal y como pensaba, de manera que con la adición de las líneas siguientes a /boot/grub/menu.lst se arregló el problema.

# Para la partición Mac OS
title Mac OS X
rootnoverify (hd0,3)
makeactive
chainloader +1


Por supuesto, en lugar de (hd0,3) tendrán que poner su partición.