miércoles, 11 de julio de 2007

Swappiness - Cuando ocupo swap??

Bueno la mayoría de los que hemos instalado alguna distro de Linux al menos conoce el termino swap o lo ha escuchado, bueno la famosa swap es la llamada "memoria virtual" allá en windows (quien no conoce el famoso mensaje de "su sistema no tiene memoria virtual suficiente..." o algo asi) esto es un espacio en disco que se usa como memoria ram en caso de llenarse la ram del equipo el problema es que esta "ram" no es tan veloz como la verdadera por lo tanto nuestro computador "se pone lento" pero esto (al menos en Linux) se puede corregir.

NOTA: Para que este truco funcione bien debemos al menos contar con 512 mb en ram.

Problema: El sistema desperdicia ram, es decir, envía procesos a swap antes de que sea necesario.

El evento que determina cuando se envia a swap un proceso se llama swappiness y podemos configurarlo y asi aprovechar mas nuestra ram.

Revisemos nuestro swappiness:

cat /proc/sys/vm/swappiness


Si aparece un numero mayor o igual a 60, entonces podemos modificar, pero antes haremos unas pruebas para ver como se comporta el sistema. Para las pruebas cambiaremos es swappiness temporalmente (hasta que se reinicie el equipo)

sudo sysctl -w vm.swappiness=10

Con esto fijamos el swappiness en 10, entonces para probar es bueno abrir aquellas aplicaciones que consumen mucha ram y tratar de forzar el sistema, si todo anda bien podemos hacer permanente el cambio, para esto usamos el siguiente comando

sudo echo " vm.swappiness=10" >> /etc/sysctl.conf

Si la prueba anterior no salio bien pueden probar con un swappiness mayor 15 o 20 quizás.

viernes, 6 de julio de 2007

Restaurando Grub (despues de instalar windows)

Bueno después de un buen tiempo de no publicar vuelvo para resolver un tema, que aunque en internet esta la solución en todos lados, muchos me han preguntado esta semana. ¿Como recupero el menú para elegir S.O?.

Primero vamos a aclarar algunas cosas ese menú se llama Grub (GRand Unified Bootloader) y el problema (normalmente) ocurre tras instalar alguna versión de aquella cosa llamada Windows. La cosa es mas o menos así, instalamos Windows en una partición contigua a la cual tenemos Linux y este S.O creyéndose dueño de nuestro HD, borra el master boot record donde se aloja Grub y en el graba su propio boot manager el cual no sirve para mas que agregar otro Windows (si se que con unos cuantos retoques se puede agregar Linux, pero la verdad no vale la pena). Por suerte revivir nuestro Grub es relativamente fácil de hacer.

Primero deben saber como se organizan los discos en Linux. Si son discos IDE normalmente se nombran como hdXY siendo X una letra (a, b, c, etc) la cual indica que es un disco, la Y es un numero, el cual indica la partición. Si poseen discos sata la organización es la misma pero en vez de hdXY seria sdXY.

Lo único que necesitaran para esto es algún live cd (en este caso el de Kubuntu Feisty Fawn) y el computador en cuestión. Iniciamos el equipo con el live cd, una vez en Kubuntu usaremos una consola para ejecutar algunos comandos, usaremos Konsole que es la terminal por defecto de KDE.

Comencemos, primero cambiamos a root usamos sudo para esto: sudo -s
Lo primero es saber el disco donde esta instalada nuestra distro para esto utilizamos el comando fdisk de esta forma:

fdisk -l

y la salida es algo así:

Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pista, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disposit. Inicio Comienzo Fin Bloques Id Sistema

/dev/hda1 * 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda2 2551 9652 57046815 83 Linux
/dev/hda3 9653 9729 618502+ 82 Linux swap / Solaris


Si su disco es sata en vez de hdX verán sdX.
Como pueden ver mi sistema esta instalado en el disco hda en la partición 2. Una vez conocido esto por fin podemos empezar la recuperación.

Crearemos un directorio dentro de la carpeta media (puedes hacerlo en cualquier lugar, uso media solo por orden) llamada kubuntu:

mkdir /media/kubuntu

Ahora montaremos la partición de Linux en la carpeta /media/kubuntu

mount /dev/hda2 /media/kubuntu

Utilice hda2 por que era mi partición de Linux, ahora montaremos algunos directorios que son necesarios para recuperar a Grub

mount --bind /dev /media/kubuntu/dev

mount --bind /proc /media/kubuntu/proc

mount --bind /sys /media/kubuntu/sys


La opción –bind se usa para montar sobre un directorio montado.

Con todo listo solo falta convertir la carpeta /media/kubuntu en nuestra raíz

chroot /media/kubuntu

Para finalizar instalamos Grub

grub-install /dev/hda

En este ultimo caso use /dev/hda por que mi disco es ese.

En ciertas ocasiones no se crea la entrada para windows, si esto sucede deben agregar al final del archivo /boot/grub/menu.list la siguiente entrada:

title Microsoft Windows XP Professional

root (hd0,0)

savedefault

makeactive

chainloader +1

Esto no lo hagan desde el live cd, sino que una vez que reinicien.

Espero que sea útil para aquellos que me preguntaron.