Archivo de la Categoría “Gentoo GNU/Linux”
Todo las cosas que se me van ocuriendo hacer con Gentoo GNU/Linux
Pues LVM es un sistema para administrar volúmenes lógicos, esto es una capa (por llamarlo de alguna forma) que creamos por encima de las particiones que queremos usar en nuestro sistema, de modo que podemos aumentar el tamaño de los volúmenes con más particiones, o incluso quitar particiones a nuestro antojo.
No voy a explicar en profundidad qué es LVM, pues hay muchos sitios en la web que lo hacen. Pero sí como lo he puesto en marcha para un caso práctico.
Desde hace unos meses necesito algo más de espacio en disco para mi /home que lo tengo en /dev/sda4. Así que decidí comprar un disco grandote, y usar LVM2 para unir /dev/sda4 con las particiones del nuevo disco /dev/sdb y montarlo en /home.
- Lo primero es preparar mi nuevo disco creando particiones de tipo 8e (Linux LVM). Podemos usar
cfdisk /dev/sdb por ejemplo, o el particionardor de disco que prefieras, o en su defecto, el que más coraje te de ;-). Personalmente hice 10 particiones de 50GB cada una, 3 primarias y 7 lógicas.
# emerge lvm2
No podemos olvidarnos de las herramientas que necesitamos para hacer uso de LVM2, con esto conseguiremos las herramientas para poder crear volúmenes físicos, crear grupos de volúmenes y añadir volúmenes físicos, aumentar y exterder el tamaño de los grupos de volúmenes… Todo esto me recuerda que quizás deba explicar un poco al menos a modo de glosario qué es cada cosa.
# nano -w /etc/lvm/lvm.conf
Buscamos la línea filter = [ "a/.*/" ] y la substituimos por filter = [ "a|/dev/sd[ab]|”, “r/.*/” ]. Lo que conseguimos es que al escanear en busca de particiones LVM rechace todos los dispositivos pero que acepte /dev/sda y /dev/sdb. Deberías modificar esta línea para tus propias necesidades, si fuera necesario.
# vgscan
Buscamos grupos de volúmenes, volúmenes físicos LVM y demás que ya estuvieran preparados en el sistema.
# vgchange -a y
Hacer disponible otros grupos de volúmenes que ya estuvieran configurados.
# pvcreate /dev/sdb*
Preparar las particiones para poder ser usados como volúmenes físicos.
# vgcreate vg /dev/sdb1
Crear un grupo de volúmenes llamado vg que inicialmente estará formado solo por el volumen físico /dev/sdb1.
# vgextend vg /dev/sdb2
Añadir el volumen físico /dev/sdb2 al grupo de volúmenes vg, hacer lo mismo con todos los volúmenes físicos que queramos añadir añadir.
# lvcreate -L400G -nhome vg
Crear un volumen lógico inicial de 400 GiB llamado home, esto creará un dispositivo llamado /dev/vg/home el cual usaremos en el fstab para montarlo en /home del mismo modo que lo hacía antes con /dev/sda4.
# lvextend -L+5G /dev/vg/home
Podemos incrementar el tamaño del volumen lógico /dev/vg/home pues aún tenemos espacio libre sin asignar en nuestro grupo de volúmenes físicos vg.
# mkfs.ext3 /dev/vg/home
Una vez asignado el tamaño para nuestro volumen lógico, debemos crear un sistema de ficheros en él, sí, al igual que hacemos con una partición normal. Más tarde, cuando añadamos /dev/sda4 al grupo de volúmenes, aumentaremos el tamaño del sistema de ficheros también, ya veremos como.
# mkdir /root/vghome
# mount /dev/vg/home /root/vghome
# cd /home
# cp -r -p lista_de_carpetas_de_cada_usuario /root/vghome/
Copiar los datos que hay en /dev/sda4 actualmente montado en /home a /dev/vg/home, para ello primero debemos montar /dev/vg/home en algún directorio, como por ejemplo /root/vghome. Es importante asegurarnos de que no copiamos el directorio lost+found. Al usar el comando cp la opción -r hace una copia recursiva y la opción -p conserva los propietarios y permisos de cada archivo. Asegúrate de que has copiado bien todos tus datos, si quieres puedes dejar los siguientes paso para más adelante o para unos días después, hasta asegurarte de que tu Home está en perfecto estado.
- Debemos cerrar todas las sesiones que tengamos abiertas como usuario antes de proceder con los siguientes pasos. Ir a una consola virtual y entrar como root, o bien entrar en una sesión gráfica como root, si tu sistema lo permite.
# umount /home /root/vghome
# cfdisk /dev/sda
Eliminar la partición /dev/sda4, ¡ojo! No toques las demás particiones, solo elimina esta. Vuelve a crear una de tipo 8e (Linux LVM) .
# pvcreate /dev/sda4
Marcamos /dev/sda4 como volumen físico.
# vgextend vg /dev/sda4
Y la añadimos al grupo de volúmenes vg.
# lvextend -L+138G /dev/vg/home
Como ahora disponemos de más espacio en el grupo de volúmenes vg, podemos aumentar el tamaño del volúmen lógico home.
# fsck.ext3 -f /dev/vg/home
# resize2fs /dev/vg/home
Sin embargo el sistema de ficheros contenido en el volumen lógico no ha cambiado de tamaño, así que en la práctica no tenemos más espacio. Primero debemos hacer un chequeo forzado del sistema de ficheros y luego redimensionar el sistema de ficheros al tamaño del volumen lógico. Ni qué decir tiene que el sistema de ficheros que uso es ext3 tanto para / (Sistema Raíz) como para /home.
# mount /dev/vg/home /home
- Editamos /etc/fstab y substituimos /dev/sda4 por /dev/vg/home para que nos monte el volúmen lógico en /home.
- Cerrar sesión y volver a iniciar sesión con nuestro usuario y disfrutar de nuestra «CASA» recién ampliada.
Si queremos ver cuánto espacio libre y otros datos de interés, de un grupo de volúmenes debemos usar el comando vgdisplay nombre_grupo_volumenes, en este caso sería vgdisplay vg, así sabremos cuanto añadir al volumen lógico con el comando lvextend.
1 Comentario »
Nunca antes había instalado Qemu en Gentoo de forma satisfactoria, porque cuando quise probarlo Gentoo ya usaba GCC Versión 4 para construir los ebuilds mientras que Qemu necesita GCC Versión 3.4, y nunca se me apeteció pararme a instalarlo correctamente. Sin embargo en el portátil con Ubuntu sí que lo tengo instalado. Bueno, hoy sí me he levantado con ganas de instalarlo, mi sistema de sobremesa es mucho más potente que el portátil, por lo que conseguiré construir un sistema huésped mucho más rápidamente para un proyecto que quiero hacer.
Lo primero es instalar GCC Versión 3.4.6 ya que Qemu no compila con la versión 4, después instalaremos todo lo necesario, y pasaremos a la configuración y demás.
- # emerge =sys-devel/gcc-3.4.6-r2
- # gcc-config -l
Lista las versiones de gcc de las que disponemos.
- # gcc-config x86_64-pc-linux-gnu-3.4.6
Con esto hacemos que el sistema use el gcc-3.4.6.
- # source /etc/profile
Para que tenga efecto en la sesión de consola actual.
- # emerge qemu qemu-softmmu qemu-user kqemu
- # gcc-config x86_64-pc-linux-gnu-4.1.2
Volvemos a usar nuestro gcc versión 4 que teníamos por defecto.
- # source /etc/profile
- # gpasswd -a USUARIO qemu
Añadimos a nuestro usuario al grupo qemu.
- # echo “kqemu” >> /etc/modules.autoload.d/kernel-2.6
Para que siempre cargue el módulo kqemu al arrancar el sistema.
- # modprobe kqemu
No Hay Comentarios »
Sí, con nspluginwrapper es posible. Tan fácil como instalarlo y ya te funcionarán todos los plugins de 32Bits que estabas usando con Firefox de 32 bits (mozilla-firefox-bin en Gentoo).
En Gentoo:
# emerge nspluginwrapper
A mí por ahora me funciona perfectamente, pero aún tengo que probarlo más tiempo. Pero vamos, lo dicho, ahora mismo estoy muy contento con el resultado. Es lo más cercano a usar el navegador completo en 64Bits que podemos tener por ahora.
Por supuesto, lo ideal sería no usar flash, o usar un plugin libre, pero eso es otra historia…
No Hay Comentarios »
Antes, en mi instalación de Gentoo de mi antiguo Athlon Thunderbird, todo usuario al ser creado pertenecía al grupo users, en esta instalación, mis usuarios pertenecen por defecto a un grupo primario con GID=UID y nombre de grupo igual al nombre de usuario. Esto es así para facilitar la gestión de grupos de usuarios gracias a UPG, aquí se explica con detalle en qué consiste.
Lo que a mi me interesa es que mi usuario pueda borrar ficheros del usuario p2p, así podré borrar las decargas después de copiarlas a DVD o bien moverlas a otra ubicación. La idea es que cada usuario del sistema perteneza a un grupo primario con GID igual a su UID y con el mismo nombre que el usuario. De este modo el usuario p2p pertenecería al grupo primario p2p.
# grep p2p /etc/passwd
p2p:x:103:100:added by portage for mldonkey:/home/p2p:/bin/bash (Para ver el UID del usuario p2p y su grupo principal, 103 y 100 respectivamente, marcado en negrita.)
# groupadd -g 103 p2p (Si no existe el grupo p2p lo creamos.)
# usermod -g p2p p2p (El grupo principal de p2p es p2p.)
# gpasswd -a usuario p2p (Esto sólo si el usuario no pertenece al grupo p2p.)
# usermod -g grupo usuario (Cambia el grupo principal, grupo debe coincidir con el nombre de usuario, si no existiera ese grupo, lo creamos como hicimos antes con el grupo p2p)
Ahora tenemos que modificar el fichero /etc/profile y cambiar umask 022 por umask 002.
Es recomendable que reinicies la sesión para que los cambios tengan efecto.
No Hay Comentarios »
Con esto lo que quiero conseguir es que mi AMD64 ayude en los procesos de compilación al instalar o actualizar paquetes en un Pentium II que uso como servidor.
Debemos tener instalado distcc en todas las máquinas que participen en la compilación, tanto la que ejecuta emerge como las que reciben las tareas de compilación ditribuida, y, a ser posible, la misma versión de distcc en todas las máquinas. Ejecutamos en todas las máquinas:
# emerge --sync
# emerge distcc
Equipo que lanza emerge (arquitectura i686):
# cd /usr/lib/distcc/bin
# rm -f cc gcc c++ g++
# echo '#!/bin/bash' >i686-pc-linux-gnu-gcc-wrapper
# echo 'exec /usr/lib/distcc/bin/i686-pc-linux-gnu-g${0:$[-2]} “$@”‘ \
>> i686-pc-linux-gnu-gcc-wrapper
# chmod a+x i686-pc-linux-gnu-gcc-wrapper
# ln -s i686-pc-linux-gnu-gcc-wrapper cc
# ln -s i686-pc-linux-gnu-gcc-wrapper gcc
# ln -s i686-pc-linux-gnu-gcc-wrapper c++
# ln -s i686-pc-linux-gnu-gcc-wrapper g++
- Ver versiones exactas de binutils, gcc, linux-headers, y glibc:
*** Si no tienes el comando eix: emerge eix && update-eix
# eix -c sys-devel/binutils$
# eix -c sys-devel/gcc$
# eix -c sys-kernel/linux-headers$
# eix -c sys-libs/glibc$
- Añadir los equipos que participan en la granja de compilación:
# distcc-config --set-hosts "nombre_equipo_64bits localhost"
- Configurar portage para que haga uso de distcc añadiendo “distcc” a FEATURES en /etc/make.conf y ajustar MAKEOPTS para que se lancen más procesos de compilación:
FEATURES="distcc parallel-fetch"
MAKEOPTS="-j6"
Equipo que asiste a la compilación (arquitectura x86_64):
- Instalamos crossdev y creamos el compilador cruzado usando las versiones que vimos del equipo i686 (punto 2 del apartado anterior):
# emerge crossdev
# crossdev -t i686-pc-linux-gnu --b 2.16.1-r3 --g 4.1.2 --k 2.6.17-r2 --l 2.5-r3
Significado de las opciones: –b <versión de binutils> –g <versión de gcc> –k <versión de linux-headers> –l <versión de glibc>
Editar /etc/conf.d/distccd para permitir recibir compilaciones dentro de equipos de nuestra red, por ejemplo:
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 192.168.0.0/24"
- Lanzar distcc siempre que vayamos a ejecutar emerge en el equipo al que asistimos (arquitectura i686):
# /etc/init.d/distccd start
Diferencias de tiempo de compilación antes de distcc y después de distcc:
- PHP:
Fri May 11 07:27:57 2007 >>> dev-lang/php-5.2.2-r1
merge time: 1 hour, 25 minutes and 13 seconds.
Mon Jun 11 14:06:41 2007 >>> dev-lang/php-5.2.2-r1
merge time: 59 minutes and 24 seconds.
- cURL:
Tue Mar 27 02:17:02 2007 >>> net-misc/curl-7.15.1-r1
merge time: 7 minutes and 26 seconds.
Mon Jun 11 13:07:17 2007 >>> net-misc/curl-7.15.1-r1
merge time: 6 minutes and 41 seconds.
Enlaces de interés: Gentoo Documentation y Gentoo-Wiki.
No Hay Comentarios »
Supongo que será válido para cualquier distribución, salvo por el comando emerge paquete que es propio de Gentoo, en caso de Ubuntu o Debian sería apt-get install paquete.
# emerge mkfontdir mkfontscale
# cd /usr/share/fonts
# mkdir myfonts
# cp /ruta/a/fichero.ttf myfonts/
# mkfontscale myfonts/
# mkfontdir myfonts/
# mkfontdir -e encodings/ myfonts
Añadimos la línea FontPath “/usr/share/fonts/myfonts/” al fichero de configuración de xorg /etc/X11/xorg.conf:
Section “Files”
RgbPath “/usr/share/X11/rgb”
FontPath “/usr/share/fonts/misc/”
FontPath “/usr/share/fonts/100dpi/”
FontPath “/usr/share/fonts/75dpi/”
FontPath “/usr/share/fonts/freefonts/”
FontPath “/usr/share/fonts/corefonts/”
FontPath “/usr/share/fonts/arphicfonts/”
FontPath “/usr/share/fonts/baekmuk-fonts/”
FontPath “/usr/share/fonts/default/ghostscript/”
FontPath “/usr/share/fonts/myfonts/”
# ModulePath “/usr/lib/modules”
EndSection
Paquetes de fuentes TrueType que tengo instalados de portage:
- media-fonts/arphicfonts
- media-fonts/baekmuk-fonts
- media-fonts/corefonts
- media-fonts/freefonts
- media-fonts/gnu-gs-fonts-std
No Hay Comentarios »
Hoy trinux me ha dicho que estaba usando Pando, y que le iba bien. Ya había intentado usarlo antes en Gentoo 64Bits, pero no lo conseguí. Hoy he googleado y me he ayudado de una web que me puso sobre la pista.
- Empezamos bajando pando.
- Descomprimimos en donde nos plazca. Por ejemplo, creamos un directorio llamado pando en nuestro home. /home/usuario/pando y ahí lo descomprimimos todo.
- Creamos un enlace a la librería de 32Bits:
$ cd /home/usuario/pando/pandodl/lib
$ ln -s /usr/lib32/libexpat.so.0 libexpat.so.1
$ cd /home/usuario/pando/pandodl
Creamos un fichero texto llamado pando con permisos de ejecución que contenga:
#!/bin/bash
export PANDO_HOME="/home/usuario/pando/pandodl"
exec $PANDO_HOME/pandodl
- Y por último ejecutar pando:
$ cd /home/usuario/pando/pandodl
$ ./pando
6 Comentarios »
Usar bash-completion en gentoo es una gozada, permite autocompletar las opciones de los comandos típicos de gentoo como genkernel, emerge, equery y otros. Además de mostrar una lista de las coincidencias para autorrellenar.
Para instalarlo basta con:
# emerge bash-completion
Además debemos añadir esta línea de código al fichero /etc/bash/bashrc, teniendo en cuenta que hay que ponerla siempre antes de la ejecución de cualquier sentencia alias:
[[ -f /etc/profile.d/bash-completion ]] && source /etc/profile.d/bash-completion
Si queremos ir probándolo ya, en la sesión bash actual, debemos ejecutar # source /etc/profile.d/bash-completion.
Si queremos dar soporte a otras utilidades y programas para bash-completion hemos de añadir la USE=”bash-completion”, en /etc/make.conf o algún otro sitio válido que prefieras. Vuelve a emerger los paquetes enlos que se hayan activado esta use y luego activa el uso de bash-completion para el comando que quieras usando por ejemplo eselect:
# eselect bashcomp list (para ver la lista de comandos soportados)
# eselect bashcomp enable gentoo
No Hay Comentarios »
aMSN nos brinda la posibilidad de guardar en disco todas las sesiones de WebCam que hagamos de la misma manera que es capaz de guardar registro de todas las conversaciones que hacemos. De este modo podemos ver luego tanto nuestras conversacines escritas como la sesión de WebCam haciendo uso de aMSN.
El problema es que el vídeo sólo podemos verlo con el propio aMSN, puesto que este guarda en crudo todos los paquetes que recibe de la sesión de vídeo en un fichero .cam, siendo este formato privativo de MicroSoft. He aquí una solución que he encontrado a través de la FAQ de aMSN para hacer una conversión del vídeo a XViD.
Lee el resto de esta entrada »
9 Comentarios »
Una solución para usar el plugin flash 9 de adobe en gentoo es usar el paquete mozilla-firefox-bin, compilado para 32 bits. Tan sencillo como:
- # emerge mozilla-firefox-bin
- # emerge netscape-flash
Lee el resto de esta entrada »
No Hay Comentarios »
|