jueves, 12 de febrero de 2015

VLANs y DD-WRT II

Siguiendo el hilo del post anterior sobre wrt y retomando el asunto del modo promiscuo en las interfaces he conseguido un resultado mas que aceptable finalmente:


root@L1:~# ip link
1: lo: <LOOPBACK,MULTICAST,UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: teql0: <NOARP> mtu 1500 qdisc noop
    link/void
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast
    link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast
    link/ether 68:7f:74:16:37:77 brd ff:ff:ff:ff:ff:ff
5: vlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop
    link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff
6: vlan1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether 68:7f:74:16:37:76 brd ff:ff:ff:ff:ff:ff
7: vlan2: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff
8: vlan4: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
10: etherip0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop
    link/ether 6a:d0:e4:50:90:b3 brd ff:ff:ff:ff:ff:ff


El esquema fundamental para entender como trabaja el firmware es el siguiente:



Como se puede ver dispone de 3 interfaces, un puerto interno (5), un puerto WAN y 4 puertos LAN unidos que comparten bus.
Segun he podido leer y entender, "parece" ser una solución recurrente en los switches usar VLANs internamente y usar el mismo cable/bus para unir los puertos.

El resultado final ha sido en:

Vlan 1 -> WAN con none
Vlan 2 -> 1 2 3 asignados a NONE
Vlan 4 -> 4 a NONE
Wireless -> NONE

Setup-> Vlan: 

Igual que la versión anterior, con la excepción de que la VLAN2 no está en el bridge LAN (br0) sino en NONE.

Setup-> Networking:



Es decir todo vacio, menos br0 que si se elimina entonces la web deja de funcionar en este apartado debido a un fallo en js de su web.





Cada vlan2 unbridged y la WAN en la suya (lo único predeterminado).




VLAN4 la suya igualmente y para cada una el DHCP.

Destacar que no hace falta crear ninguna VLAN en eth1 pues al estar en una subred ya resuelve el "problema" del dominio de broadcast y si se quisiera/necesitado cualquier tipo de filtrado mayor se podría utilizar ebtables para dichos menesteres de la capa 2.

Por ultimo para hacerlo funcionar he necesitado las siguientes instrucciones via telnet:

#Crea las vlans 2 y 4
nvram set vlan2hwname=et0
nvram set vlan4hwname=et0

# Mirar esquema anterior porque se las trae la numeración (case label = frontal)
nvram set vlan2ports="3 2 1 5*"
nvram set vlan4ports="0 5"

#elimina vlan0 del puente
brctl delif br0 vlan0

# (no perduran al reinicio...)
#Borra la vlan0
nvram unset vlan0ports
nvram unset port0vlans
nvram unset vlan0hwname
nvram set lan_ifname="eth0"



Y por último para variar seguia sin funcionar (v24-SP2 13064), básicamente por 2 causas:

eth1 no coge la configuración de la web y aunque la fuerzes la pierde cada reinicio:

ifconfig eth1 192.168.3.1 netmask 255.255.255.0 

Y el wifi o bien se resistía a funcionar el enlace o bien fallaba el dhcp. 
Resultó ser un bug persistente debido al orden de arranque de los servicios (nas y despues dnsmasq) por lo que el primero tiene que ser arrancado despues del segundo, solución matarlo y volverlo a lanzar.

Añadir lo siguiente a Administration  -> Commands  y luego Save startup

sh -c 'ifconfig eth1 192.168.3.1 netmask 255.255.255.0; sleep 15;nas=$(ps w
 | grep "^ *$(pidof nas) " | sed "s/.*nas -P/nas -P/"); killall -9 nas; ${nas}'


Y funcionando.

La siguiente fase será la de iptables y la última y mas cuantiosa y larga con diferencia será en el lado del servidor, en el que posiblemente intervengan imnumerables tecnologias (selinux/grc/X,puppet/chef/vgrant/X, systemd, lxc/docker/X, libvirt(svirt), openswitch/X, iptables/ebtables/nfbtables?, netns, lvm/btrfs/X y un sinfin de servicios (dns,ntp,correo,web,git,backup,monitoring, ids, honeypot,db...) ).

Respecto a la configuración por defecto de wrt y del 99,9% de las configuraciones encontradas en internet, algunas de gente de redes mejor no comment, solo decir que salvo honrosas excepciones, vivimos tiempos dificiles sin lugar a dudas y los bridges("hubs") campan a sus anchas.


Útiles usados en el wrt:

killall {nas , dnsmasq}

dnsmasq -k -d --interface=eth1 --dhcp-range=192.168.3.2,192.168.3.10,12h --conf-file=/dev/null

nas -P /tmp/nas.wl0lan.pid -H 34954 -i eth1 ....

dnsmasq.conf básico: (antes de limpiarlo, recortar las redes y los lease time entre otras cuestiones)

interface=br0,vlan2,vlan4,eth1
resolv-file=/tmp/resolv.dnsmasq
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=125
dhcp-option=lan,3,192.168.2.1
dhcp-option=vlan2,3,192.168.2.1
dhcp-option=vlan4,3,192.168.4.1
dhcp-option=eth1,3,192.168.3.1
dhcp-authoritative
dhcp-range=lan,192.168.2.100,192.168.2.149,255.255.255.0,1440m
dhcp-range=vlan2,192.168.2.10,192.168.2.60,255.255.255.0,3600m
dhcp-range=vlan4,192.168.4.10,192.168.4.20,255.255.255.0,3600m
dhcp-range=eth1,192.168.3.2,192.168.3.17,255.255.255.0,3600m


lunes, 9 de febrero de 2015

VLANs y DD-WRT I

Despues de 40 tutoriales que he pensado que deberia de hacer (hacking del de verdad (asm,gdb, calculo hexadecimal y c a raudales) ,lua,virtualizacion,selinux...), me animo y hago este de seguido que para eso lo acabo de terminar que sino despues estoy en otras batallas y como que no... :)


En este caso se trata de implementar sobre la red interna VLANs, básicamente por seguridad, puesto que va a estar funcionando varios "servidores" internos y mas vale que si ocurre algun problema la red interna ni se entere, también por el tema del internet de las cosas y en los proximos dias seguramente extender las VLANs con trunking al WDS por temas parecidos.

Introducción
----------------

Para el que no sepa para lo que sirve una VLAN, breve explicación de andar por casa: "Una vlan crea distintos dominios de broadcast (Layer 2!!!) sobre una o más redes físicas"

Es decir, trabaja únicamente a nivel de capa 2, por lo que si quieres aislarlas a nivel de capa 3 necesitas o bien un switch que lo permita o bien un router. Muy importante esta diferencía básica, porque yo estaba "aconstumbrado" a los switches cisco de nivel 3 y no me terminaba de encajar el tema del aislamiento en este caso...

Por último aclarar someramente igualmente, que "las vlan" pueden ser tagged o untagged (así muy de andar por casa), básicamente para conectar dispositivos vlan aware necesitas usar tagged (normalmente para los trunks únicamente salvo excepciones) y usar untagged cuando los puertos del dispositivo estan conectados a dispositivos finales y no vlan aware (un pc con configuración estandar).

Objetivo
-----------------

Configurar en el router principal, un wrt54gl 1.1 chip broadcom, necesita las siguientes VLAN:

VLAN 0 -> Eliminar (viene por defecto), puesto que da problemas
VLAN 1 -> Para el puerto WAN
VLAN 2 -> Los dispositivos del dia a dia
VLAN 3 -> Wifi (moviles, visitas, tvs...)
VLAN 4 -> Servidores

Pasos 
-----------------

Ir a Setup-> VLANs:

Entrar en el router y dejarlo así:







Explicación (los numeros corresponden con la parte trasera):

Vlan 1 -> WAN con none
Vlan 2 -> 1 2 3 asignados a la LAN
Vlan 4 -> 4 con none 

Wireless -> NONE


Ir a Setup-> Networking:




Explicación:

Crear un bridge llamado br1 (si escoges por ejemplo wifi no aparece en la web... :S), con el STP desactivado y asignarle una ip.
Asignar al bridge la interfaz del wifi (eth1 en mi caso) y a su vez la vlan3 (mas adelante explicaré como crearla).

Finalmente se puede observar que existen 2 bridges (br0 -> vlan2 (recuerdas el LAN de la pagina anterior??) y el que acabamos de crear y establecer.

Con esto los clientes del wifi pertenecerán a la vlan3 automáticamente y estarán dentro de una 192.168.3.0/24 (siguiente imagen dhcp).






Explicación:

Vlan 1 -> WAN (mismo que pagina anterior)

Todas unbridged menos vlan4, debido a que:
eth0 por definición es, eth1 también y vlan2 y 3 no "corresponde" por lo menos a mi juicio.
En este caso por lo tanto únicamente a vlan4 se le asigna su rango.

Por ultimo dhcp para:
vlan 4 -> (temporalmente/pruebas ...)
vlan 3 -> br1 -> eth1 -> wifi  ->  su rango. 
vlan  2 -> Se establece desde Setup->Basic setup 


Comandos telnet

Por último una vez establecido esto, casi nada funcionará :D , debido a que realmente la interfaz web funciona a medias en TODAS las versiones DD-WRT.

Es decir, que hace el trabajo a medias, establece las variables portXvlan correctamente pero ni establece las vlans ni vlanXports.

telnet 192.168.2.1
...

#Crea las vlans 2 y 4
nvram set vlan2hwname=et0
nvram set vlan4hwname=et0

#Borra la vlan0 (no la queremos para nada ya)
nvram unset vlan0ports
nvram unset port0vlans
nvram unset vlan0hwname

#portXvlan y vlan1port (WAN) si los crea via WEB
#Hay que añadir en todos el 5. Van al reves de portXvlan en el gl 1.1. :D
nvram set vlan2ports="3 2 1 5*"
nvram set vlan4ports="0 5"

#El wifi...
nvram set vlan3hwname=et0
nvram set vlan3ports="5"
nvram set port5vlans="1 2 3 4 16"  # Ponemos correctamente port5vlans

------

La explicación de esto es algo mas larga, pero básicamente crea las demas vlans, borra las antiguas y establece los puertos de las vlans con vlan2ports (la numeración es al reves y comenzando desde el 0 para el gl 1.1 ... O_o) y por último como quisquillosos establecemos correctametne port5vlans (las vlans de la CPU).

Resultado

Recalcar que no hacen falta configurar nada en los clientes de vlan puesto que al ser untagged (van sin la t los vlanXports) se le incluye esta etiqueta al frame cuando atraviesa el puerto/interfaz y que incluso si lo llevara lo descartaría para poner el suyo propio o directamente eliminaría la trama. 

Con esto, se tendrian las subredes diferenciadas a nivel 2, luego habría que mediante el iptables (nivel 3) bloquear el tráfico segun nos interese con iptables (pendiente).

No he testeado la red en gran medida por lo que es posible que exista algun error, lo que si he podido notar es que hay "demasiadas" interfaces en modo promiscuo, cosa que no me agrada en un principio (habría que ver la implementación).

Quizas tenga que refinar el tema del unbridge,  porque a los ojos de un sysadmin parece una aberración, pero lo mismo es una solución estandar en dispositivos de red.


 root@DD-WRT:~# ip link  
 1: lo: <LOOPBACK,MULTICAST,UP> mtu 16436 qdisc noqueue   
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
 2: teql0: <NOARP> mtu 1500 qdisc noop   
   link/void   
 3: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  
 4: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast   
   link/ether 68:7f:74:16:37:77 brd ff:ff:ff:ff:ff:ff  
 6: vlan1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:76 brd ff:ff:ff:ff:ff:ff  
 7: vlan2: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  
 8: vlan3: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  
 9: vlan4: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  
 10: br0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  
 11: etherip0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop   
   link/ether 8a:82:d5:63:63:73 brd ff:ff:ff:ff:ff:ff  
 19: br1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue   
   link/ether 68:7f:74:16:37:75 brd ff:ff:ff:ff:ff:ff  


Y bueno he querido recalcar las cosas que muy dificilmente o directamente no se encuentran en internet respecto a este caso concreto, lo restante puede constar menos o mas pero yo creo que se encuentran "sin problemas" en cualquier tutorial (todo el mundo explica/hace lo mismo).

Por ultimo hacer notar que en vlan2ports="3 2 1 5*", se establece esta vlan (la LAN) como "nativa",  si la "CPU interna de eth0" recibe una trama sin etiqueta la etiquetará como vlan2. En muchisimos tutoriales establecen varias VLANs como "nativas", no he comprobado este asunto pero habría que ver realmente como maneja el asterisco este firmware (lo dejo pendiente igualmente de verificar). En la documentación se especifica que debería de colocarse únicamente en una vlan y que esta sea la de la LAN.


jueves, 19 de diciembre de 2013

Diffie hellman made easy

Gran explicación, sencilla y amena del algoritmo de diffie hellman. 

http://silveiraneto.net/2013/08/14/diffie-hellman-key-exchange/






¡Un fenomeno!.

lunes, 21 de octubre de 2013

Configurar claws-mail con gmail

Un pequeño "tuto" de como configurar claws-mail con gmail, que siempre que busco no encuentro nada decente.






Es decir login, tanto para smtp como para imap y ssl no-bloqueante.

Básicamente es igual tanto en Fedora(19) como en Debian(wheezy).

Algun día resolveré el pestiño de tener que andar esperando a que sincronicen todas las cuentas para poder operar con la interfaz. Básicamente se trata de cambiar el programa de recepción de correcto (Configuración-Preferencias-Recepción) pero tengo que buscar alguno que me convezca, es decir liviano,rápido, facil de configurar y que admita imap4 con SSL (¿he oido D.J Bernstein? :P).


miércoles, 9 de octubre de 2013

Redimensionado de un volumen fisico LVM2

A vueltas de nuevo con LVM2.

En esta ocasión necesitaba restarle 10GB al LVM para crear una nueva partición auxiliar para Windows.
El problema con el que me encontré es que las instalaciones por defecto meten el LVM en una única partición, esto no tiene porque ser un problema a menos que quieras recortarla y te encuentres que:

sda3 (139GB):  (primaria)
|| swap ||      home       ||    root               ||
3GB         86GB        50GB

Si quisiera haber recortado el espacio del root no habria tenido ningun problema al encontrarse al final del volumen físico pero al ser el home no podía realizar el pvmove, al seguir esta guia:

http://fedorasolved.org/Members/zcat/shrink-lvm-for-new-partition



El pvmove aun moviendolo en el mismo disco duro "pvmove --alloc anywhere" no te va a dejar debido a que los ultimos extents del lv_root estan alocados.
La única solución posible era tirar de un disco externo y pvmove el home a este, pvmove el root al espacio del home antiguo (ahora hueco), redimensionar la particion sda3, crear una nueva particion y adjuntarla al LVM y pvmove el /home a esta.  Finalmente opté por mover ambos volumenes, por considerarla mas "segura e intuitiva". (ver resumen final)
Para realizar estos cambios me he apoyado de un live-cd de Fedora 16 que tenia rondando de este sistema (ordenador para la universidad ,que ya va por Fedora 19) a la cual le instalé gparted y sobretodo system-config-lvm (por una vez opté por hacerlo de forma gráfica) para adjuntar el volumen externo y realizar los pvmove.
Al final el resultado ha sido (le recorté un GB al swap, tengo 1,5GB de RAM y 2 máximos permitidos):

sda3 (53GB): (primaria)
|| swap ||         root      ||
2GB             51GB
sda5 (74GB): (extendida)
||               home              ||
                74GB

¿Que he aprendido?
  • Que existe el system-config-lvm, incluso los system-config-...
  • Que es aconsejable meter cada volumen fisico en una partición o por lo menos los volumenes mayores en una partición aparte con el facilitar posibles cambios de tamaño en particular las reducciones.
  • El uso de pvmove.
  • Que en LVM es bastante robusto, le he realizado bastantes cambios al sistema y no se ha visto afectado.
  • Que el lvresize no comprueba el espacio disponible y puedes redimensionar el volumen logico a 76e/E (Exabytes) si quieres (pensaba que significaban Extents :P ).
Por mero resumen histórico, el resumen de comandos ha sido (mas o menos):
1-Arrancar con live-cd
2-Adjuntar disco externo USB, particionarlo y añadirlo al grupo de volumenes.
3-pvmove con system-config-lvm las particiones home y root
4-pvmove root de vuelta a sda3
5-resize2fs -p /dev/vg_uni/lv_root 51G
6-lvm lvresize /dev/vg_uni/lv_root --size 51G

7-lvm pvresize /dev/sda3 --setphysicalvolumesize 51G
(realizar calculos de sectores en sda3)
8-parted /dev/sda rm  3
 parted /dev/sda mkpart primary 21508096s 132722688s (comprobando bien la suma...)
parted /dev/sda set 3 lvm on
parted /dev/sda print
fsck -fCv /dev/vg_uni/lv_root 
(aumentamos hasta el sobrante)
9-lvm lvresize /dev/vg_uni/lv_root -L +57 (le agrego los libres) tambien podria ser lvresize /dev/vg_uni/lv_root -L +100FREE
10-resize2fs -p /dev/vg_uni/lv_root
11-fsck -fCv /dev/vg_uni/lv_root

Y ahora con el gparted crear una extendida con el espacio libre y dentro una de 74GB (lvm ext4) y otra de 10GB (ntfs).
1-Seguidamente adjuntar la extendida ext4 (sda5) y pvmove el home allí con system-config-lvm
2-Ocupar los posibles libres.
3-Desajuntar el disco externo USB del grupo de volumenes y quitarlo de LVM con system-config-lvm.

Y listo, no he tenido que tocar nada en grub, fstab ni en ningun fichero de LVM (quizás por haber conservado /root en sda3, la verdad no me quita el sueño :D).
Logicamente sino hubiera utilizado pvmove no se hubieran conservado los UUID y entonces si habría que realizar cambios.

jueves, 24 de marzo de 2011

Chuletillas linuxeras varias

Voy a poner un par de chuletas a modo de recordatorio/ayuda a posibles usuarios que he estado usando estos dias (debian squeeze):


Compilar unos modulos sueltos del kernel. 

Resulta que a veces, quieres habilitar alguna funcion nueva en el kernel que no estaba por defecto o simplemente modificastes el kernel y quieres que coja los cambios.
Por ejemplo en este caso, mi cpu no era capaz de cambiar la frecuencia del procesador dinamicamente segun la carga del sistema, para ello necesitaba modificar el p4-clockmod para que cargara en mi cpu (pentium celeron M). Tras el cambio pertinente (establecer policy->cpuinfo.transition_latency = 10000000):


  1. Agregar los cambios al .config, bien sea con make menuconfig o simplemente con el vim, en el caso de que no estuviera ya cargado el modulo. 
  2. make modules_prepare
  3. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules
  4. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules_install
Y listo: modprobe p4-clockmod

Tras varias pruebas, le he puesto 800 Mhz de frecuencia minima (1,6Ghz) y me ahorro buena parte de la bateria,ventiladores sin notar ninguna perdida de rendimiento (es lo que tiene usar Linux).

Compilar el kernel

#make menuconfig
#make clean (si es necesario)
#make-kpkg --initrd kernel_image kernel_headers
#dpkg -i ../*.deb (los correspondientes ...)


Desactivar el swap

Tengo 1,5 gigas de ram y no me hace falta tirar de swap practicamente nunca (WindowMaker,mocp,aterm...) y tenia un volumen de 2 gigas de swap. Decidí desactivarlo y quedarme con ese espacio para mis cosas (aparte de desactivarlo directamente en el kernel...).


#swapoff /dev/squeeze/swap
#lvdisplay /dev/squeeze/swap

#lvremove /dev/squeeze/swap
#vi /etc/fstab ...

Y listo 2 gigas mas para repartir para el sistema, aparte de asegurarme que siempre tire de ram.
No olvidarse que para que coja mas de 1Giga de RAM hay que activada la opcion de highram en el kernel (gloriosos 640Kb :D).


Usar el autogroup

Se trata de una funcionalidad que utilizando los cgroups, agrupa por defecto los procesos por tty, haciendo que a nivel de desktop aumente una barbaridad la justicia del reparto del timing en el planificador.Especialmente para gente que usar el ordenador en tarias pesadas. En mi caso ya he compilado el kernel 6 veces (estoy de experimentos) desde que lo uso y es una gozada comprobar como puedes realizar tareas pesadas y seguir usando el sistema como si nada.


Para ello simplemente hay que usar un kernel del 2.6.38 en adelante.


Pasar de ext3 a ext4 un sistema de ficheros

En mi caso está operación la realizé en un filesystem de 250 Gigas al 82%.

Simplemente (importante cada paso...):

#umount /home/datos
#fsck.ext3 -pfv /dev/squeeze/datos
#tune2fs -O extents,uninit_bg,dir_index /dev/squeeze/datos

#fsck.ext4 -yfD /dev/squeeze/datos
#vi /etc/fstab (muy importante el noatime para que se olvide de la fecha de ultimo acceso ...)
 /dev/squeeze/datos /home/datos ext4 defaults,noatime 0 2
#mount /home/datos






Y listo a disfrutar del ext4...
Es importante recalcar que los ficheros antiguos seguiran usando ext3 hasta que no se "actualizen" Se pueden utilizar trucos como usando chattr +e sobre ellos para decirle que usen los extents y con ello se pasen a ext4 pero en mi caso tras hacerlo con unos cuantos miles de fichero me dejó el volumen echo un cristo y tuve que tirar de fsck intensivos, reparando un monton de inconsistencias y preferí dejarlo a medias, los nuevos archivos sin problemas... :D



Ampliar un volumen logico

Esos 2 gigas que me sobraban del swap decidí repartirlos, de momento le puse 1Gigas al volumen root /, con el fin de poder compilar tranquilamente los kernels (procedimiento de memoria).

Para aumentar un volumen, el procedimiento se hace al contrario que para reducirlo por motivos "logicos".
Quiere decir, para aumentarlo primero hay que aumentar el volumen y despues el sistema de ficheros y para reducirlo hay que reducir primero el sistema de ficheros y despues el volumen, es completamente lógico si conoces como funciona un poco  la historia.
Tambien he de decir que para aumentarlo no hace falta desmontar el volumen, siendo necesario este paso para disminuir sin embargo.

Pues bien para aumentarlo basicamente, ver cuanto hay libre en el grupo:

#vgdisplay squeeze:
....
  Free  PE / Size       611 / 2,61 GiB

#df -h /

Tenemos mas de 2 gigas libres en el grupo de volumenes, vamos a darle 1 gigas al volumen /.

#lvresize -L +1G -v squeeze/root

Despues ampliar el FS (no lo vayas a hacer al reves que la lias bien liada ...). Simplemente le decimos que se expanda al tamaño del volumen (tamaño maximo):

#resize2fs -p squeeze/root

#df -h /


Y listo.
Lo dicho, unas chuletillas a modo de recordatorio de como repartir espacio entre volumentes, re/compilar el kernel, activar autoescalado del procesador y pasarse a ext4...



Un saludo!

jueves, 3 de marzo de 2011

Pasando página

Ha decir verdad, tengo varias cosas en el tintero que deberia/podria publicar pero la falta de ganas de escribir pueden con ello.

Se podría decir que he estado estos dos ultimos años aprendiendo ingles casi a tiempo total y la verdad el resultado ha sido espectacular, tanto a nivel personal como profesional.
Hablo con fluidez,calculo que conozco 25k de las 40k palabras (antes andaria por las 8k), entiendo perfectamente "normalmente" y he aprendido muchisimo sobre la cultura anglosajona (EEUU,UK,Australia,Singapur...).

Mi próxima meta, es la realización de un sueño que primeramente exigía aprender ingles.
Desde hace 10 años, que empecé con la informática y con el mundo GNU/Linux, he soñado en poder algun dia entender completamente como funciona un SO, poder explicar con todo lujo de detalles que está realizando el SO e incluso contribuir a nivel mundial parcheando el kernel.
En una palabra, convertirme en un kernel hacker. :)


Y ese es mi nuevo proyecto, para los años venideros. De momento estudiando y mejorando muchos conceptos con muchas ganas.

Entre otras cosas, he aprendido estos ultimos años que es necesario plasmar tus conocimientos/trabajo bajo dominio público con el fin de que las empresas puedan valorarte objetivamente.

Con el fin de ponerme en contacto con el software libre tengo en mente realizar los próximos trabajos:

-Vimperator: Publicar los plugins personales y desarrollar el manejo de varias ventanas por pestaña.
-rt73: Implementar el autosuspendido del driver usb cuando no está en uso y eliminar la race condition que hace que cuelgue el SO cuando se desconecta y conecta fisicamente el adaptador.
-mocp: Soporte para flac y que al guardarse la playlist y falle al leer un tag salta al siguiente track, asi como un comando para realizar esto en cualquier momento, no únicamente al salir.
-Escribir/colaborar/leer constantemente acerca de temas propios de los SO's, kernel tuning y estar al tanto de las novedades dentro del kernel.

Todo esto es posible que lo realize en un blog aparte, únicamente para temas profesionales, pues este es de caracter general e impersonal.


Como dice el dicho:
"Ten cuidado con lo que deseas porque puede que se cumpla".