Cómo mover la carpeta /home a una nueva partición
Volviendo a las nerdeadas, ahora que tengo una PC nueva volví a la carga con cuestiones de instalación y tuneo de Linux. El método que les presento a continuación lo probé bajo Kubuntu 12.04 pero en principio debería ser posible realizarlo con cualquier distribución.
Tener la carpeta /home en una partición (o disco rígido) diferente de donde se tiene el resto de las carpetas es bastante útil al momento de querer cambiar de distribución, hacer un backup, etc. Para aquellos a quienes nos gusta jugar compilando kernels y probando otras distribuciones, tener la carpeta /home a salvo de los errores es fundamental para no perder los documentos, fotos y música que hayamos recopilado durante años.
La idea general es cambiar el tamaño de la partición actual, si fuera necesario; copiar los archivos a la nueva dirección, renombrar la carpeta anterior, editar el archivo fstab, reiniciar. Aquellos que quieran pasar los archivos a un disco rígido nuevo o una partición existente podrán ver los últimos pasos de este tutorial.
Como en Linux se puede cambiar el tamaño de las particiones que no estén montadas, el primer paso es conseguir una copia de Ubuntu (Kubuntu o cualquier de sus variantes también sirven) en su forma LiveCD; en mi caso lo más cómodo es siempre usar unetbootin y un pendrive. Esto permitirá iniciar Ubuntu sin montar el disco rígido; una vez que tengamos nuestro LiveCD, se reinicia la PC teniendo en cuenta que tenemos que hacer que bootee desde donde hayamos cargado la imagen de Ubuntu (pendrive, CD, etc.).
Una vez que se haya abierto Ubuntu, buscamos el gestor de particiones que viene cargado por defecto. En general se trata de GParted, pero puede ser diferente en otras distribuciones o versiones. Se elige la partición a la que se le desea cambiar el tamaño y se la reduce. Esto generará espacio en el disco rígido que no pertenece a ninguna partición y que deberemos generar para usarlo como /home.
Todo este procedimiento puede ser tan sencillo y claro como mover unas barras de colores si es que estamos usando un programa como GParted. Abajo dejo algunas imágenes de como puede llegar a lucir (dependerá de la versión y del programa, pero la idea es la misma):

Una vez hecho todo esto, se deben montar ambas particiones para poder copiar los datos. Es importante en el paso anterior notar los nombres de las nuevas particiones, generalmente se trata de cosas como /dev/sda1 /dev/sda2 ... Abrimos una terminal (en general basta con apretar Alt + F2 , escribir terminal y enter) y en ella ejecutamos los siguientes comandos:
sudo mkdir /viejo
sudo mount /dev/sda5 /viejo
sudo mkdir /nuevo
sudo mount /dev/sda6 nuevo
En este caso sda5 y sda6 deben ser reemplazados por los nombres asignados a las particiones (donde estaba la carpeta /home y donde estará, respectivamente). Se verá que dentro de la carpeta viejo se tiene toda la estructura de archivos del sistema operativo. Lo que se quiere es pasar la carpeta /home a la nueva partición. Para ello ejecutamos los siguientes comandos:
cd /viejo/home
find . -depth -print0 | cpio --null --sparse -pvd /nuevo/
sudo mv /viejo/home /viejo/home_backup
sudo mkdir /viejo/home
Es importante que el código se copie tal cual se ve aqui. La segunda linea es la que hace todo el trabajo de copiar los archivos a la nueva partición. En la tercera se le cambia el nombre al directorio /home por si fuera necesario recuperarlo en el futuro. En la última linea se crea el directorio /home para que pueda ser montado en el la nueva partición.
Una vez terminado todo este proceso, se debe cambiar el archivo fstab que es donde se define cómo el sistema operativo monta los discos rígidos por defecto. Lo más simple es usar el editor de texto de la línea de comandos, por ello ejecutamos:
sudo cp /etc/fstab /etc/fstab_backup
sudo nano /etc/fstab
Se deberá ver algo más o menos así:

Con la excepción de que la linea que comienza con /dev/sda6 no debería estar presente y es justamente la que se deberá escribir. Recordando los nombres de las particiones (recordar que sda5 y sda6 son los nombres usados en este ejemplo) se debe escribir algo similar a lo siguiente:
/dev/sda6 /home ext4 errors=remount-ro 0 1
Prestando particular atención a dos cosas: una es el nombre, que se deberá reemplazar por el asignado en el momento de crear la partición y la otra es el tipo de sistema de archivos elegido en el momento del particionado, que en este ejemplo es ext4.
Reiniciamos la computadora y todo debería estar funcionando de forma transpartente (es decir, que se hubiera más de un usuario de la PC, no debería notar que se realizó algún cambio). Por supuesto, si en algún momento escasea el espacio en la partición raíz (aquella donde solía estar la carpeta /home) se puede ejecutar simplemente:
sudo rm -rf /home_backup
Mucho quidado con este último comando ya que puede borrar todo el sistema operativo.
Si hubiera algún problema al iniciar la PC es fácil restaurar las cosas al punto de partida. Se deberá iniciar de nuevo con el LiveCD y en una terminal se ejecutarán los siguientes comandos:
sudo mkdir /recuperacion
sudo mount -t ext4 /dev/sda5 /recuperacion
sudo cp -R /recuperacion/home_backup /recuperacion/home
sudo cp /recuperacion/etc/fstab_backup /recuperacion/etc/fstab
Luego se reinicia y listo.
Las ideas para hacer salieron de Psychocats
Gnome 3, visión después de 2 semanas de uso

Hace unas semanas decidí abandonar Ubuntu y probar Fedora. Más que nada me había cansado de los metapaquetes que me obligaban a tener instalado soporte para Bluetooth en una PC que no lo tiene, etc. (buscaba una excusa para hacerlo y la encontré así.) Por defecto Fedora 15 viene con Gnome 3, la versión más reciente del gestor de escritorio para Linux. Después de más de casi tres semanas de uso acá van algunas de mis opiniones.
A primera vista puedo decir que es lindo y sobrio. Una sola barra no muy ancha en la parte superior con el reloj al medio; a la derecha vemos algunos íconos (conexiones de red, estado del chat, batería) y a la izquierda un texto que dice "Actividades". El resto del escritorio es utilizable (una ventaja con respecto a la versión anterior, en la que se perdía mucho espacio con una barra superior y una inferior).
Al llevar el ratón arriba a la izquierda (no hace falta clicar) se nos muestran mini-ventanas de todas las aplicaciones que tenemos abiertas (como en la imagen que abre el post). A la izquierda una barra personalizable nos muestra links a los programas que queramos. Desde ese menú se puede navegar a través de las aplicaciones y las herramientas del sistema (no es un menú desplegable como los de antes sino que ocupa toda la pantalla).
La integración con el chat (aunque no la probé demasiado) es bastante útil y bien fluida. Las conversaciones nos aparecen desde la parte inferior, como pequeños globos, lo cual nos permite verlas sin tener que cambiar de ventana o con el riesgo de que no veamos que alguien nos escribe. De alguna manera me da esta sensación de que logro trabajar de una manera un poco más ordenada.
La primera impresión que tuve al comenzar a interactuar con Gnome 3 fue que, si bien el cambio es inmenso, resulta bastante intuitivo en el momento de romper el hielo y una vez que se comienzan a aprender atajos del teclado y a organizar el trabajo en base a la nueva propuesta, todo es más cómodo y eficiente. Hacer una búsqueda rápida es fundamental para aprendernos las cosas útiles. Podemos organizarnos en áreas de trabajo rápidamente arrastrando las ventanas; podemos hacer zoom en las vistas previas de las aplicaciones que corren, en fin, todo me resultó simplemente cómodo.
Sin embargo no todo es color de rosas. La primera cosa que me llamó la atención es que no encontraba una forma gráfica de apagar la PC sin desloguearme; como tengo la costumbre de hacer casi todo desde la consola, no lo había notado hasta que presté la PC; sólo se permite suspender. Googleando un poco, encuentro que si se presiona la tecla alt luego de clicar sobre el nombre de usuario (desplega un menú con posibilidades de la sesión) el mensaje de "suspender" se transforma a "apagar"; pero de todas maneras no deja hibernar.
Lo mismo con los botones de maximizar y minimizar ventanas; simplemente no aparecen. De nuevo, mi costumbre es maximizar haciendo doble clic sobre la barra, así que no fue un impedimento hasta que me lo mostraron. Lo que sí me resutló molesto es que la ventana que permite ejecutar comandos (Alt+F2) es más simple de lo que esperaba; no autocompleta en base a comandos ingresados anteriormente y no permite ejecutar en la terminal.
Las opciones de configuración son realmente básicas. Por ejemplo si ejecutamos el gestor de energía, no tenemos opciones para notebook (qué pasa cuando se cierra la tapa, si estamos con batería o enchufados, etc.) Tampoco da muchas opciones para una PC de escritorio, pero convengamos que el ahorro de energía es crucial en una notebook mientras que en una desktop se tratará más de una actitud verde.
Primero, para un usuario intermedio (es decir, aquel que se preocupa por configurar la PC como le gusta, etc.), que quizás está dando sus primeros pasos fuera de Windows, creo que Gnome 3 se le presentará a primera vista con grandes obstáculos. No digo que no sea nada que no encuentre solución con una pequeña búsqueda en Google (ya iré escribiendo pequeñas guías a medida que me vayan surgiendo problemas), pero es una primera impresión negativa: yo esto lo hacía antes en 4 clics, ahora tengo que buscar, instalar paquetes, reiniciar Gnome, etc. etc.
Segundo, tuve la oportunidad de prestar mi computadora a gente acostumbrada a Windows. El hecho de que no hubiera un botón con un ícono en la parte inferior izquierda ya generaba un poco de desconcierto. Y una vez que lograba desplegar la ventana de aplicaciones, sobre todo si ya había aplicaciones corriendo (y que aparecen en un preview bastante simpático), pude notar que no les resultaba realmente trivial darse cuenta de dónde apretar para lanzar el navegador.
Mi veredicto final es mixto. Como usuario regular de Linux (en diferentes distribuciones, casi siempre con Gnome, ocasionalmente con LXDE o XFCE) creo que esta versión de Gnome es un gran paso hacia adelante. Sin efectos visuales despampanantes (no se trata de un cubo donde cada cara muestra un escritorio diferente y va rotando, etc.) creo que logran generar un área de trabajo más ordenada y donde es fácil interactuar y darse cuenta de lo que hay que hacer. Para usuarios muy acostumbrados al tema de las ventanas, la barra de tareas y demás, quizás pueda ser un salto de paradigma demasiado grande (no quiero decir que no se pueda dar). Quizás la nueva versión de Windows 8 apunte también en esta misma dirección, aunque desconozco completamente.
Consejo de supervivencia, crea una partición diferente para el /home
Después de mi primer acercamiento a Linux me di cuenta de que no había nada más importante que tener la carpeta /home en una partición diferente del disco rígido. La flexibilidad que esto nos permite es infinita; por ejemplo podemos reinstalar tantas veces como queramos nuestro sistema operativo sin perder nunca nuestras preferencias ni documentos. Además, nos permite tener diferentes distribuciones instaladas y que todas compartan las mismas preferencias, como el fondo de escritorio, las aplicaciones favoritas, etc.
Si estás instalando desde 0 tu nueva distribución, la tarea es sencilla; simplemente sigue los pasos de tu instalador (en Ubuntu y Debian aparece una opción de determinar las particiones manualmente). El problema es determinar el tamaño de la partición. Para usuarios hogareños que no emplean infinidad de aplicaciones diferentes, la distribución no ocupará más que algunos GB. En mi caso, yo tengo un disco de 160GB, al SO le destiné una partición de 20GB y el resto será para el Home.
Ubuntu recién instalado (más algunas aplicaciones extra) ocupa unos 3GB. El resto del espacio, aunque parezca inútil, se te irá llenando a medida que instales paquetes o programas adicionales (por ejemplo, la instalación de Matlab se lleva algunos GB, etc.). Por supuesto, puedes reducir el tamaño de la partición para la carpeta raiz tanto como creas que sea necesario. El espacio que le dediques a la carpeta home será cuestión de ver cuántos archivos quieres guardar (fotos, MP3, videos, etc.) eso dependerá de cada usuario.
El iPad es más popular que Linux
En la imagen que abre este post se puede ver un gráfico de torta sobre el sistema operativo con el que los usuarios acceden a internet en los Estados Unidos. Seguramente esta noticia ya la pudieron ver en otro lados (I y II, por ejemplo), pero como este es mi blog, escribo sobre lo que quiera, cuando quiera.
En el gráfico lo que se puede ver es que el 91% del mercado está acaparado por Windows; en el 9% restante, donde compiten todos los demás sistemas operativos, el iOS (el sistema operativo del iPad, iPhone, etc.) tiene el 1,36% del mercado, mientras que Linux tiene tan solo el 0.93%. Ni siquiera combinando Linux y Android se llega al porcentaje del iOS. Según apuntan en Microsiervos, a nivel mundial el sobrepaso de iOS frente a Linux+Android se dio en Noviembre.
Yo creo que los números van a cambiar apenas las tablets con Android lleguen al mercado en forma masiva, de todas formas se tiene que destacar que son las iniciativas de empresas enormes las que tienen la mayor parte del mercado. Linux, gratis, desarrollado por la comunidad, etc. etc. no logra venderse; tampoco se si le hace falta hacerlo. Quizás si algún día Canonical, por ejemplo, firmara un convenio con un fabricante de celulares o tablets, podríamos ver el ascenso de Linux en el mercado... ¿O se habría transformado en un Android financiado por alguien más?
Yo por lo pronto uso Debian en la PC de mi casa y en la de la oficina. En mi netbook tengo Lubuntu (y sí, es una Aspire One que no se puede bancar mucho más). Así que estoy dentro de ese ínfimo porcentaje de acceso a la red que utiliza Linux, mire como se mire.
Cómo instalar el plugin de Java para Firefox en Debian/Ubuntu
No me había dado cuenta de que hacía falta hasta que intenté subir fotos a Facebook. Es mucho más fácil de lo que pensé (gracias Linux!):
sudo apt-get install sun-java6-plugin
Descuentos para DreamHost
Ya desde hace como un año el servidor de todos mis blogs y sitios es DreamHost. La verdad que la instalación, la dada de alta, etc. etc. fue súper rápido y fácil, así que ahora, después de suficientes testeos, puedo recomendarlo y qué mejor que ofreciendo descuentos.
Para acceder al descuento, debes poner como código promocional AQUILES_DESCUENT
1 mes de hospedaje cuesta U$60,90, con el código se te descuentan 50U$
1 año de hospedaje cuesta U$119,40, con el código se te descuentan 90U$
2 años de hospedaje cuestan U$214,80, con el código se te descuentan 90U$
¡Hey! Fue lo mejor que pude conseguirles.
Ya saben, en DreamHost usando el descuento AQUILES_DESCUENT
En BASH: Cómo hacer un for con nombres de archivo con espacios
Una vez escribí un artículo sobre cómo cambiarle la resolución a un grupo de imágenes y todo se basaba en usar el FOR, el problema es que falla si los archivos tienen algún espacio en su nombre; afortunadamente todo tiene una solución: lo que debemos hacer es crear la variable llamada IFS, en la que se establece cuál es el separador entre un elemento y el otro (por ejemplo un espacio, etc..) a continuación dejo un ejemplo sencillo:
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for f in *
do
echo "$f"
done
IFS=$SAVEIFS
Si ejecutamos ese comando dentro de una carpeta que tiene archivos cuyos nombres contienen espacios, veremos una lista del contenido (es lo que hace el echo.) De aquí es fácil adaptarlo a nuestras necesidades.
Más ejemplos en Ciberciti
Cómo hacer un timelapse en Linux
Últimamente se ven muchos videos de time-lapse, una técnica que consiste en tomar fotos cada un determinado intervalo y luego transformarlas en un video; de esta forma logramos condensar en pocos segundos la construcción de un edificio, una puesta de sol, etc. En este pequeño instructivo planeo explicarles cómo hacer rápidamente un time-lapse a partir de una serie de imágenes en Linux (yo uso Debian, pero es igual para cualquier otra distribución.)
Lo primero que hacemos es instalar lo que necesitamos: Camstream y Mencoder:
# apt-get intall camstreamr mencoder
El primero, camstream no es súper necesario, es para controlar a la cámara web (si es que se dispone de una) y nos permitirá capturar imágenes periódicamente; de esta forma podemos colocar la cámara mirando a una flor, y hacemos que tome una captura cada 30 minutos. Luego de algunos días, podremos animar el crecimiento. Mencoder, por el otro lado, es el que hace toda la magia para poner en un video a todas las fotos. Camstream es súper intuitivo así que lo dejo y me dedico al otro.
Supongo que hay un directorio lleno de imágenes (ordenadas según queremos que aparezcan en nuestro video):
$ ls
image000.jpg image003.jpg image006.jpg image009.jpg image012.jpg image015.jpg image018.jpg
image001.jpg image004.jpg image007.jpg image010.jpg image013.jpg image016.jpg
image002.jpg image005.jpg image008.jpg image011.jpg image014.jpg image017.jpg
Entonces, guardamos el nombre de todas las imágenes en un archivo con el siguiente comando:
ls -1tr > files.txt
Así nos queda un archivo txt con el nombre de todas las imágenes, con un archivo por renglón (1), ordenadas por fecha de modificación (t), en orden inverso (r).
Y ahora con el mencoder hacemos el video:
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o test.avi -mf type=jpeg:fps=20 mf://@files.txt
Voilá, ya hicimos el primer time-lapse en menos de 1 minuto. El comando va a crear un archivo llamado test.avi a 20 cuadros por segundo, sin sonido y usando el formato mpeg4.
Eso para empezar; jugando con el mencoder se pueden lograr millones de cosas. Además se puede hacer el video primero y luego editarlo, por ejemplo con el futuro VideoLan Movie Creator
Vía | Cenolan
Cómo añadir soporte para magnet links en Firefox (con Linux)
Con todo el revuelo que está teniendo el casi-cierre de The Pirate Bay y el paso a la tecnología DHT (nota a mi mismo: explicarla en algún momento) surge el primer problema que es cómo hacer para que se abra nuestro programa favorito para poder manejar los "magnet links." Si uno hace una búsqueda rápida en Google, los resultados que aparecen dan sugerencias para versiones antiguas de Firefox y por consiguiente no funcionan en general, así que les dejo las dos posibilidades.
Primero probar con esta (para firefox 3.5):
Escribir en la barra de direcciones
about:config
Así podemos manejar la configuración de Firefox. Hacemos click con el botón derecho, nuevo, lógico (en inglés es Boolean) y de nombre escribimos network.protocol-handler.expose.magnet y le asignamos el valor false. Así, la próxima vez que hagamos click en un enlace de magnet nos preguntará qué aplicación queremos usar y podremos navegar a la que tengamos instalada (les recomiendo Vuze y cuando naveguen para buscarla es probable que la encuentren en /usr/bin/vuze )
La segunda opción es esta (para firefox hasta 3.0):
- Escribimos about:config en la barra de direcciones.
- Click con el botón derecho -> Nuevo -> Lógico (boolean en inglés) -> Nombre: network.protocol-handler.external.magnet -> Valor: True
- Click con el botón derecho -> Nuevo -> Cadena (string en inglés) -> Nombre: network.protocol-handler.app.magnet -> Valor:
/usr/bin/vuze(o el camino a donde hayan instalado su gestor de enlaces magnet) - Hay que asegurarse de que network.protocol-handler.expose-all tiene valor true
Agregar repositorios en Debian
Ya hace unos meses que vengo usando Debian así que es hora de empezar a contarles algunas cosas sobre este sistema operativo (más que nada soluciones a los problemas que se me fueron cruzando.) Para los usuarios de Ubuntu, el paso a Debian es instantáneo, ya que el primero está basado en el segundo, así que la mayoría de las aplicaciones se ven exactamente igual y lo más importante de todos, el gestor de paquetes (vía consola) sigue siendo el apt-get.
Así que la primera dificultad con la que me encontré fue sobre cómo configurar correctamente el gestor de paquetes. A diferencia de Ubuntu, en Debian no vienen precargados repositorios y por defecto guarda al CD como fuente de paquetes, por lo que tendremos que configurarlos a mano. Entonces, lo primero que hacemos es ir a la página de repositorios de Debian; allí vemos una lista de "mirrors", es decir lugares desde los que podremos descargar los paquetes. En general lo más inteligente es elegir alguno que esté geográficamente cerca de nosotros, ya que serán los que más rápido funcionen.
Una vez que lo hayamos elegido (igualmente mejoraremos nuestra elección más adelante) escribimos lo siguiente en la terminal:
sudo gedit /etc/apt/sources.list
Ahí irá la lista de repositorios que queramos usar. Lo primero que hacemos es comentar (con un # al principio) los renglones en los que dice deb cdrom. De esta manera nos evitamos que nos pida introducir el CD de Debian cada vez que usemos el apt-get. Luego, agregamos la siguiente linea:
deb http://NUESTRO-MIRROR-ELEGIDO testing main.
Debemos recordar que tenemos que poner la dirección del repositorio que hayamos elegido y cambiar testing por stable si es que estamos usando la versión estable de Debian. Una vez hecho esto, guardamos y cerramos y en la consola hacemos:
sudo apt-get update
Así se actualiza la lista de repositorios. Y voilà, ya tenemos configurado el apt-get con el mirror que hayamos elegido. Lo más prudente sería hacer un upgrade ahora con:
sudo apt-get upgrade && sudo apt-get dist-upgrade para tener nuestro sistema actualizado.
¿Cómo saber qué mirror conviene?
Hay una aplicación que nos permite determinar cuál es la alternativa más rápida y se llama netselect. Escribimos lo siguiente en la terminal:
sudo apt-get install netselect
(por eso era importante instalar un repositorio al principio, así podemos instalar este programa luego). Es bastante sencillo de usar, se escribe
sudo netselect mirror1 mirror2 mirror3 ...
donde mirror1, etc. son las direcciones que queramos chequear de la lista del sitio de Debian. Lo que nos devuelve es el mirror que más rápido se conecta a nosotros (hace diferentes chequeos, como latencia, etc.) Una vez que sepamos cuál es (yo elegí todos los mirrors que aparecían de américa del sur, y el más rápido resultó ser http://sft.if.usp.br/debian ) volvemos a editar el archivo sources.list como se indica arriba y listo.
Mi sources.list luce como esto:
deb http://security.debian.org/ squeeze/updates main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib
deb http://www.backports.org/debian lenny-backports main contrib non-free
deb http://ftp.br.debian.org/debian squeeze main
deb http://sft.if.usp.br/debian testing main
Estos repositorios permitirán instalar la mayoría de los paquetes que necesitemos, inclusive aquellos propietarios como Flash (ya escribiré sobre ello también.)