LVM en Fedora / Red Hat
Por Luis Gallardo - Linux - 26/01/2012
Enlace al video: http://blip.tv/lgallardo/lvm-en-fedora-red-hat-5908538
En este video podemos ver el proceso de instalación usando LVM en Fedora (vale también para Red Hat). Como nota aclaratoria, el directorio que debe estar fuera del LVM es /boot, aun y cuando en el video se crea la raíz, la cual incluye a /boot.
Si no entiendes algunos de los términos de LVM, puedes revisar el artículo anterior donde se habló sobre los conceptos básicos de LVM y algunas oŕdenes para crear un LVM a mano.
Cómo instalar el firmware 3.40 en la PS3
Por Luis Gallardo - PS3 - 25/01/2012
Si tienes una PS3 con el firmware inferior a 3.40 y quieres o necesitas actualizar a este firmware, aquí dejo las instrucciones para que puedes actualizar la PS3 al firmware 3.40:
- Descargar el firmware 3.40.
- Copiar el archivo 340.DUP en la carpeta /PS3/UPDATE de un pendrive. Si las carpetas no existe, se debe crear.
- Renombrar el archivo 340.PUP a PS3UPDAT.PUP.
- Desconectar apropiadamente del PC el pendrive, y conectarlo en la PS3.
- Ir al apartado Actualización del Sistema y escoger Actualizar vía Medio de Almacenamiento
- Aceptar el acuerdo de licencia y seguir las instrucciones de instalación.
Referencia: [Recopilación] Firmwares Oficiales PS3
PlayStation Vita (PSVita)
Por Luis Gallardo - PSVita - 20/01/2012
Sony lanzó en Japón la nueva consola portátil PS Vita (prefirió no llamarla PSP 2) y en USA el lanzamiento será el 15 de febrero para quienes compren el First Edition Bundle especial o el 22 de febrero para quienes elijan otro pack. La PS Vita se ve muy atractiva y superior a cualquier consola portátil del mercado (si me refiero a los NDS/N3DS).Veamos las especificaciones técnicas para hacernos una idea:
Ganando espacio en discos externos con tune2fs
Por Luis Gallardo - Linux - 15/01/2012
Me compré un disco USB exteno de 1.5 TB (1.3 TB), de los cuales decidí dejar 1 TB como partición ext4. La partición la creé con GParted y este no da opciones “avanzadas”, así que simplemente acepté los valores por omisión. Pero luego recordé que las particiones ext2, ext3 y ext4 dejan un 5% del disco como reserva para evitar que se llene completamente, de forma que ciertos proceso privilegiados siempre tengan espacio para escribir (como por ejemplo, syslogd), que en otro caso comprometería la operatividad del servicio e incluso del sistema.
Ganando un poco de espacio
Como es una partición externa de 1 TB para respaldos, tener %5 de reserva equivaldría a unos 50 GB. Veamos el espacio disponible en disco:
root@moody:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb2 1.1T 430G 557G 44% /media/1TB
La salida fue editada para mostrar solo la partición que nos interesa. Ahora vamos a quitar el porcentaje de reserva:
root@moody:~# umount /media/1TB root@moody:~# tune2fs -m 0 /dev/sdb2 tune2fs 1.41.12 (17-May-2010) Setting reserved blocks percentage to 0% (0 blocks)
Es importante que corran tune2fs en sistemas de archivos desmontados. Veamos nuevamente el espacio disponible en la partición:
root@moody:~# mount /media/1TB root@moody:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sdb2 1.1T 430G 610G 42% /media/1TB
Es decir, 610 GB – 557 GB = 53 GB que ahora tendré disponible…malos? Malos no son!
Referencia: man tune2fs
Reparar tablas de MySQL
Por Luis Gallardo - Programación - 12/01/2012
Si por alguna razón se llegan a encontrar con un mensaje como el siguiente al consultar una tabla:
mysql> select * from data_values_queued; ERROR 1194 (HY000): Table 'data_values_queued' is marked as crashed and should be repaired
La forma de ver y reparar el problema es la siguiente.
CHECK TABLE
Primero se procede a verificar la tabla, para determinar el problema:
mysql> check table data_values_queued; +----------------------------+-------+----------+----------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +----------------------------+-------+----------+----------------------------------------------------------+ | datbas1.data_values_queued | check | warning | 4 clients are using or haven't closed the table properly | | datbas1.data_values_queued | check | error | Size of datafile is: 4200 Should be: 4220 | | datbas1.data_values_queued | check | error | Corrupt | +----------------------------+-------+----------+----------------------------------------------------------+ 3 rows in set (0.05 sec)
Aquí vemos que la tabla no fue cerrada adecuadamente, por ejemplo producto de un apagón. En mi caso descarto el primer mensaje porque el motor que uso es InnoDB, el cual permite concurrencia en las tablas.
REPAIR TABLE
Ahora para reparar la tabla se puede usar la siguiente sentencia:
mysql> repair table data_values_queued ; +----------------------------+--------+----------+----------------------------------------+ | Table | Op | Msg_type | Msg_text | +----------------------------+--------+----------+----------------------------------------+ | datbas1.data_values_queued | repair | warning | Number of rows changed from 144 to 143 | | datbas1.data_values_queued | repair | status | OK | +----------------------------+--------+----------+----------------------------------------+ 2 rows in set (0.00 sec)
Ya con esto habremos reparado la tabla. Veamos si es así:
mysql> select * from data_values_queued; +---------+--------+----------+---------------------+ | id | iodbId | value | timestamp | +---------+--------+----------+---------------------+ | 1476194 | 170 | 297 | 2012-01-11 08:40:45 | | 1476193 | 170 | 296 | 2012-01-11 08:40:17 | | 1476176 | 71 | 11692 | 2012-01-11 05:06:46 | | 1476177 | 72 | 12061 | 2012-01-11 05:06:46 | | 1476178 | 73 | 11820 | 2012-01-11 05:06:46 | | 1476179 | 107 | 11703 | 2012-01-11 05:06:46 |
...
| 1476258 | 170 | 282 | 2012-01-11 11:07:43 | +---------+--------+----------+---------------------+ 143 rows in set (0.00 sec)
Referencias
Cómo liberar la PSP (todos los modelos)
Por Luis Gallardo - PSP - 03/01/2012

Existen varios modelos de PSP y para cada uno de estos aplica un método que puede no ser compatible con otro modelo. Para evitar problemas con la actualización decidí resumir esta información en este artículo:
| Modelo | Firmware 5.00 | Firmware 6.20 | Firmware 6.35 | Firmware 6.60 |
| PSP 1000 (FAT)PSP 2000 (Slim liberables) |
|
|||
| PSP 2000 (Slim NO liberables) | - | |||
| PSP 3000 | ||||
| PSP Go | ||||
| PSP E100 |
NOTA: Se debe tener en cuenta que en los modelos de PSP 3000, PSP Go y PSP E1000 no hay custom firmware permanentemente para versiones superiores a la 6.20, por lo que se debe repteir el procedimiento cada vez que se apaga la consola..
Bajar versión (downgrade)
Si necesitas bajar de versión existen tres métodos, que dependen del modelo de PSP que se tenga:
| Modelo | Firmware < 6.20 | Firmware 6.20 | Firmware 6.35 | Firmware 6.60 |
| PSP 1000 (FAT)PSP 2000 (Slim liberables) | ||||
| PSP 2000 (Slim NO liberables) | - | |||
| PSP 3000 | ||||
| PSP Go | ||||
| PSP E1000 | ||||
NOTA: Se debe tener en cuenta que los modelos de PSP 3000, PSP Go y PSP E1000 no se le pueden bajar la versión.
PSP 2000 vs. 2001 vs. 2010
Si tienes dudas respecto a los modelos de PSP por región, no dejes de consultar el artículo que habla sobre las versiones de PSP.
Referencias
Configuración de ViewSonic G800 en Debian 6.0
Por Luis Gallardo - Linux - 17/12/2011
En el trabajo decidieron instalar Debian en un servidor con un monitor Viewsonic G800 y una tarjeta ATI Technologies Inc Rage XL, pero la mejor resolución que pudieron obtener fue 800×600. Luego de revisar los drivers del servidor X, los cuales estaban correctamente instalados para la tarjeta ATI, y probar con las variantes de los drivers (r128, radeon, etc), pregunté a la persona que instaló el sistema sobre los parámetros del monitor pero me indicó que los desconocía, así como el paradero de los manuales. Al hacer una búsqueda en la página del fabricante di con el manual, en particular con la tabla de las tasas de refrescamiento que era lo que me interesaba:
Con esta información pasé a crear el archivo de configuración del servidorX, es decir, el archivo /etc/X11/xorg.conf:
Section "Device" Identifier "Configured Video Device" Driver "ati" EndSection Section "Monitor" Identifier "Configured Monitor" HorizSync 60.02 VertRefresh 75 EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection
El manual del monitor se consigue en la página del fabricante, pero debes tener el código del monitor. Si no lo tienes aquí consigues el manual en PDF.
Referencias:
- Manual PDF ViewSonic G800 (PDF)
- ViewSonic User Guides
- man ati
Cómo rootear el Samsung Galaxy Ace
Por Luis Gallardo - Android - 03/12/2011
Muchas aplicaciones necesitan que el teléfono este “rooteado”, es decir, que tenga privilegios de root o el administrador del sistema en Linux (hay que recordar que Android es Linux). Aunque suene complicado, realmente no lo es, es simplemente instalar una aplicación en el teléfono que permite conceder mayor privilegio a otras aplicaciones para, por ejemplo, poder acceder a la cámara. Dicho esto, ahora dejo los pasos para hacerlo en el Samsung Galaxy Ace S5830 / S5830L
Advertencias
- Recuerda que solo tú eres responsable de lo que haces con tu teléfono. Aunque este método lo seguí y lo comparto, no me hago responsable por bricks en tu teléfono.
- Realiza el procedimiento con la batería cargada a más de 75%.
- Válido solo para Gingerbread 2.3.3 / 2.3.4 / 2.3.5 (revisa la versión en Configuración > Acerca del teléfono > Versión de Android)
Instalación
- Descarga y copia en la raíz de la tarjeta SD del teléfono los archivos udp_1.zip y AceGingerRoot.zip
- Apaga el teléfono y enciéndelo en modo recovery (presionando la tecla del centro y el botón de encendido al mismo tiempo por algunos segundos)
- En el recovery, selecciona la opción Update from SD Card.
- Si la versión de Android es la 2.3.3 selecciona el archivo upd_1.zip. Si es la versión 2.3.4. escoge el archivo AceGingerRoo.zip.
- Una vez que haya terminado el proceso e indique “Install from sdcard complete”(ver segunda arriba), reinicia el teléfono con la opción Reboot in normal mode.
¿Cómo funciona?
Ahora tienes el teléfono rooteado. Es decir, si una aplicación requiere permisos de root, verás una imagen como la tercera mostrada arriba que te indicará si deseas aceptar o no. De igual forma puedes acceder a la aplicación de superusuario para que veas los programas a los cuales les has concedido permisos , y si lo deseas revocarlos.
Referencia: [How to] Root Samsung Galaxy Ace on Android 2.3.4 XXKPH Gingerbread Firmware
Error al instalar Gnome-Shell en Debian (Failed to load session “gnome”)
Por Luis Gallardo - Linux - 24/11/2011

Un par de amigos me insistieron en que instalara Gnome-Shell, y como no me quería sentir excluido y quería ver qué tan bueno es, decidí probarlo. Tuve que pasar mi Debian de stable a testing y hacer el respectivo:
aptitude install gdm3 gnome-shell
Luego de actualizar, reiniciar e intentar entrar a la sesión de Gnome, me apareció el error Failed to load session “gnome” como se muestra en la imagen de arriba. Luego de comentarle a uno de estos amigos, este me dijo que podía ser un problema con la tarjeta de video, y efectivamente lo era. Yo tengo esta tarjeta de video:
root@buckbeak:~# lspci | grep -i vga 01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8400M GS] (rev a1)
Investigando un poco en Internet llegué a la página del paquete en Debian para la tarjeta, y para suerte mía estaba listada. Entonces tocó hacer:
aptitude install nvidia-glx nvidia-xconfig
Pero el servidor X no queda configurado para cargar el driver de nVidia por omisión, por lo que hay que correr la orden:
nvidia-xconfig
Esto creará el archivo /etc/X11/xorg.conf (recordar que en las nuevas distros este archivo no existe por omisión) con lo necesario para correr el driver de nVdia, en particular:
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection
Luego de esto, reinicié la computadora y pude ingresar a la sesión de Gnome:
Referencias
Logical Volume Manager (LVM)
Por Luis Gallardo - Linux - 18/11/2011
En el esquema de particionamiento tradicional de discos el administrador del sistema planifican con antelación el uso que se le dará cada partición. Por ejemplo, para una laptop con disco duro de 120 GB y RAM de 1 GB se puede tener el siguiente esquema de particiones:
- 1 GB para swap (/dev/sda1),
- 12 GB para la raíz (/dev/sda2),
- 107 GB para /home (/dev/sda3), es decir, el resto del disco.
Hasta aquí todo bien, pero qué pasa si el día de mañana el tamaño de la RAM aumenta a 2 GB? Para invernar habrá que aumentar la swap, y como ya se particionó todo el disco y no se dejó espacio lo que queda es reparticionar el disco, bien sea redimensionando con utilidades que lo permitan, siempre y cuando el sistema de archivo también lo permita (por ejemplo, los sistemas ext[2|3|4] permite redimensionamiento).
¿No existe algo más flexible? Si, se llama LVM (Logical Volume Manager) , y en esencia permite redimensionar en caliente las particiones, para por ejemplo, quitar 1GB de /home (/dev/sda3) y dárselo a la swap (/dev/sda1).
LVM (Logical Volume Manager)
Para poder usar LVM primero se debe asignar volúmenes físicos, luego asignar volúmenes de grupo y por último volúmenes lógicos. Todo esto parece confuso a la primera, pero vamos a explicar cada uno de estos términos y cómo se relacionan:
- Volúmenes físicos: Es el soporte final donde se guardaran los datos, y pueden ser varios discos o incluso particiones de un disco. No guarda relación directa con los puntos de montajes. Ejemplos de volúmenes físicos: /dev/sda , /dev/sdb1, etc.
- Volúmenes de grupo: Es la agrupación de los volúmenes físicos en un volumen que permite ver todos los discos y particiones como uno solo dispositivo. Ejemplo de volumen de grupo: /dev/vg00
- Volúmenes lógicos: Son los volúmenes donde irán nuestros sistemas de archivos (ext2, ext3,xfs,vfat, por ejemplo) y por ende los puntos de montaje (/, /home, swap, /usr, /var, etc). En este nivel es donde se hace el formateo del sistema de archivos a usar, y es donde los datos se distribuirán a nivel lógico, similar a las particiones que acostumbramos a usar. Ejemplo de volúmenes lógicos: /dev/vg00/lv_rootfs, /dev/vg00/lv_swap, /dev/vg00/lv_home.
Instalación de LVM
En Debian puede usarse LVM instalando el siguiente paquete:
aptitude install lvm2
En otras distribuciones como Fedora, Red Hat o el mismo Ubuntu deben buscar el nombre adecuado del paquete para su instalación.
Órdenes de LVM
Para crear un LVM con sus volúmenes físicos, de grupo y lógicos veamos algunas de las instrucciones que tenemos disponible:
Volúmenes físicos
| Orden | Descripción |
| pvcreate | Crea volúmenes físicos para ser usado por LVM |
| pvs | Muestra información acerca los volúmenes lógicos |
| pvdisplay | Muestra varios atributos de los volúmenes físicos |
| pvresize | Redimensiona volúmenes físicos |
| pvmove | Mueve datos de un volumen físico a otro. |
Volúmenes de grupo
| Orden | Descripción |
| vgcreate | Crea volúmnes de grupo para ser usado por LVM |
| vgs | Muestra información acerca de los volúmenes de grupo |
| vgdisplay | Muestra varios atributos de los volúmenes de grupo |
| vgextend | Agrega volúmenes físicos a un volumen de grupo |
| vfreduce | Quita volúmenes físicos del volumen de grupo |
| vgremove | Elimina volúmenes de grupo |
Volúmenes lógicos
| Orden | Descripción |
| lvcreate | Crea volúmnes lógicos para ser usado por LVM |
| lvs | Muestra información acerca de los volúmenes lógicos |
| lvdisplay | Muestra varios atributos de los volúmenes lógicos |
| lvresize | lvreduce | lvextend | Redimensiona volúmenes lógicos |
| lvmove | Elimina volúmenes lógicos del sistema |
Ejemplo de creación de un LVM
Supongamos que se tiene el disco /dev/sdb libre con 8 GB, con dos particiones de 4GB cada una (/dev/sdb1 y /dev/sdb2), y sobre estas particiones se quiere crear un LVM que alojará los puntos de montajes: La raíz (/) de 1 GB, la swap de 1 GB (swap) y el resto de los 6 GB al directorio de los usuarios (/home). Para hacer el LVM podemos escribir las siguientes órdenes:
root@buckbeak:~# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created root@buckbeak:~#pvcreate /dev/sdb2 Physical volume "/dev/sdb2" successfully created root@buckbeak:~# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 a- 4.00g 4.00g /dev/sdb2 lvm2 a- 3.99g 3.99g root@buckbeak:~# vgcreate vg_group01 /dev/sdb1 /dev/sdb2 Volume group "vg_group01" successfully created root@buckbeak:~# vgs VG #PV #LV #SN Attr VSize VFree vg_group01 2 0 0 wz--n- 7.99g 7.99g root@buckbeak:~# lvcreate -n lv_rootfs vg_group01 -L 1G Logical volume "lv_rootfs" created root@buckbeak:~# lvcreate -n lv_swap vg_group01 -L 1G Logical volume "lv_swap" created root@buckbeak:~# lvcreate -n lv_home vg_group01 -L 6G Volume group "vg_group01" has insufficient free space (1534 extents): 1536 required root@buckbeak:~# lvcreate -n lv_home vg_group01 -l 1534 Logical volume "lv_home" created root@buckbeak:~# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert lv_home vg_group01 -wi-a- 5.99g lv_rootfs vg_group01 -wi-a- 1.00g lv_swap vg_group01 -wi-a- 1.00g
Ahora se puede dar el sistema de archivo para cada uno de los volúmenes lógicos:
root@buckbeak:~# mkfs.ext4 /dev/vg_group01/lv_rootfs mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@buckbeak:~# mkfs.ext4 /dev/vg_group01/lv_home mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 393216 inodes, 1570816 blocks 78540 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1610612736 48 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@buckbeak:~# mkswap /dev/vg_group01/lv_swap mkswap: /dev/vg_group01/lv_swap: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 1048572 KiB no label, UUID=e743b4f3-1c80-4503-be88-6934d575cd55 root@buckbeak:~# swapon /dev/vg_group01/lv_swap root@buckbeak:~# swapon -s Filename Type Size Used Priority /dev/dm-1 partition 2064376 8 -1 /dev/dm-5 partition 1048568 0 -2
Si se quieren usar estos volúmenes lógicos, bien puenden montarse con la orden mount o especificarlos en el archivo /etc/fstab para que sea montados al iniciar el sistema.










Planeta Linux
Sígueme