"Después del juego es antes del juego"
Sepp Herberger

viernes, 26 de julio de 2019

Cambiar opción por defecto de Grub para el siguiente arranque

Tengo un grupo de máquinas con arranque dual Linux/Windows. Normalmente arrancan con Linux, siendo esta la opción por defecto en el Grub. Hay veces que estoy conectado a ellas de forma remota y quiero arrancar Windows para hacer algún cambio o actualización en dicho sistema.

Podría modificar la configuración de Grub para arrancar con Windows. El problema es que una vez está cambiada no es sencillo revertir el cambio desde el propio Windows y hay que desplazarse hasta la máquina para elegir y configurar manualmente el arranque de Linux. Yo solo quiero arrancar una única vez el Windows y que luego todo siga igual.

La solución es usar el desconocido comando grub-reboot, que permite especificar cual es la opción de arranque por defecto para el siguiente reinicio. Tras ese reinicio, al apagar la máquina todo volverá a su ser habitual y arrancará el sistema por defecto que hayamos tenido habitualmente.

Lo primero es saber como identificar la opción de arranque a programar:
# grep -e "menuentry\ " -e "submenu" /boot/grub/grub.cfg
menuentry 'Ubuntu'.....
submenu 'Opciones avanzadas para Ubuntu' ...
   menuentry 'Ubuntu, con Linux 4.15.0-54-generic' ...
   menuentry 'Ubuntu, con Linux 4.15.0-54-generic (recovery mode)' ...
   menuentry 'Ubuntu, con Linux 4.15.0-20-generic' ...
   menuentry 'Ubuntu, con Linux 4.15.0-20-generic (recovery mode)' ...
menuentry 'Windows 7 (en /dev/sda1)' ...
menuentry "Clonezilla live 2.5.5.38" ...
menuentry "Arranque por red: PXE" ...
El comando grub-reboot admite un parámetro numérico (empezando por 0, que identifica la posición en la lista), dos o más números separados por > (para indicar posiciones dentro de submenús, por ejemplo 1>2) o un texto con la etiqueta de la opción de arranque. Por ejemplo, para programar el arranque del Windows 7 haríamos:
# grub-reboot  'Windows 7 (en /dev/sda1)' 
# reboot
Y ya está, el sistema se reinicia y arranca en Windows. Podemos conectar a él con rdesktop y hacer nuestras cosas. Cuando ese Windows se apague volverá a arrancar en Linux.

Bueno, ayer 25 de julio SpaceX consiguió elevar sin anclajes hasta una altura de 20 metros la StarHopper, el prototipo de la nave que permitirá poner humanos en la Luna y Marte en el futuro.


Prueba superada. Todo listo para pasar a la siguiente fase.

martes, 23 de julio de 2019

Control del estado de salud de la batería de nuestros portátiles.

El tener muchos portátiles iguales facilita que cuando la batería de uno de ellos se degrada y empieza a funcionar peor podemos comparar entre ellos e identificar las que están degenerando de una forma real.

Como en nuestro caso la garantía de los contratos cubre la batería durante varios años hemos pensado en cómo hacer una revisión de algunos modelos que daban signos de agotamiento, con el objeto de que nos cambien las baterías defectuosas antes de que expire la garantía.

En mi caso son portátiles Inves Helio-1106L, que son remarcados de Clevo W310CZ (y que se vende con otros etiquetados como Stone N120, Zoostorm 7270-9062, ...). Todos son el mismo.

1. Un poco de teoría de baterías.

Las características de una batería se definen por los mAh y el voltaje. Por ejemplo, para nuestros portátiles Inves tenemos baterías de 2800mAh y 14.8V, como se puede apreciar en la pegatina que traen (los Clevo originales traían baterías de 2200mAh, pero seguramente fueron ampliadas por requisitos del contrato, las cuales pedían una duración de 4 horas de uso medio según diversos tests).

Multiplicando ambos valores obtenemos la capacidad de energía acumulada, que sería 2.800*14.8=41.440wh. Eso significa que si el portátil consume de promedio 11w encendido, con 41.4wh tiene para 41.4/11=3.76 horas de funcionamiento. Con el tiempo y los ciclos de carga-descarga esa capacidad va mermando y es ese porcentaje de merma lo que queremos medir.

Para saber en tiempo real los datos de la batería usamos el comando upower. Cojo un portátil Inves cualquiera, lo cargo al 100% y con él enchufado a la corriente hago:
# upower -i /org/freedesktop/UPower/devices/battery_BAT0  
    .....
    energy:              30,0884 Wh
    energy-full:         30,0884 Wh 
    energy-full-design:  41,44 Wh  
    .....
    capacity:            72,6071%
Lo interesante: la capacidad por diseño de batería es 41.44wh. La capacidad real actual con la batería llena es de 30.08wh, por lo que la capacidad real en este momento es un 72% de la original. En nuestro caso la batería se considera averiada a efectos de garantía si está por debajo del 30%, por lo que de momento se libra de ser cambiada. De esta forma chequearemos todos los portátiles que deseemos.

Si nuestra batería tiene una ruta de acceso distinta de /org/freedesktop/UPower/devices/battery_BAT0 la podemos averiguar con:
# upower -e | grep BAT

2. Testeando la batería.

Una vez embarcado en esto, se me ha ocurrido chequear la bateria durante un ciclo de descarga, para hacerme una idea de su estado, duración y comprender el proceso de drenaje. Los datos que tomaré serán:
# upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage|energy"
    state:               fully-charged
    energy:              30,0884 Wh
    energy-empty:        0 Wh
    energy-full:         30,0884 Wh
    energy-full-design:  41,44 Wh
    energy-rate:         0 W
    percentage:          100%
Con los que haré un bucle que cada minuto guarde ese resultado en un log hasta que el portátil se apague por falta de energía. Para conseguir simular un uso continuo y exhaustivo desconectaré el apagado de pantalla (con xset), pondré el brillo al máximo (con xrandr), simularé mover el ratón cada minuto para evitar entradas en modo ahorro de energía (con xte) y mientras tanto reproduciré un vídeo de youtube de varias horas de duración conectado a la red wifi.

Este es el sript check-bateria.sh
#!/bin/bash
xset s off -dpms

while true
do
   xrandr --output eDP-1 --brightness 1.0
   xte   'mousermove 4 4'
   date >>  ~/log-bateria.txt
   upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage|energy" >> ~/log-bateria.txt
   sleep 60
   xte  'mousermove -4 -4'
done
exit 0
Los pasos a seguir son encender el portátil con la batería cargada al 100%, iniciar sesión, conectar la wifi, iniciar el vídeo de Youtube y ejecutar el script anterior, dejando todo en marcha hasta que el portátil se apague.

Un resumen de los datos capturados sería:
lun jul 22 10:04:51 CEST 2019
state:               fully-charged
energy:              30,0884 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         0 W
percentage:          100%
.................................
.................................
lun jul 22 10:06:51 CEST 2019
state:               discharging
energy:              30,0884 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         0 W
percentage:          100%
lun jul 22 10:07:51 CEST 2019
state:               discharging
energy:              29,6 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         0 W
percentage:          98%
.................................
.................................
lun jul 22 10:09:52 CEST 2019
state:               discharging
energy:              29,0968 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         14,9184 W
percentage:          96%
.................................
.................................
lun jul 22 10:14:52 CEST 2019
state:               discharging
energy:              28,1052 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         14,9057 W
percentage:          93%
.................................
.................................
lun jul 22 11:47:59 CEST 2019
state:               discharging
energy:              2,812 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         16,8519 W
percentage:          9%
lun jul 22 11:48:59 CEST 2019
state:               discharging
energy:              2,0276 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         43,2254 W
percentage:          6%
lun jul 22 11:49:59 CEST 2019
state:               discharging
energy:              1,7316 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         29,9519 W
percentage:          5%
lun jul 22 11:51:00 CEST 2019
state:               discharging
energy:              1,4504 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         17,1257 W
percentage:          4%
lun jul 22 11:52:00 CEST 2019
state:               discharging
energy:              1,1544 Wh
energy-empty:        0 Wh
energy-full:         30,0884 Wh
energy-full-design:  41,44 Wh
energy-rate:         17,6331 W
percentage:          3%
Conclusiones:
  • El consumo instantáneo (energy-rate) está entre 15 y 17.5 watios de promedio. Con 30.0884wh de capacidad aguantaría una hora y 48 minutos de uso continuo intensivo = 1.8 horas expresado en valor decimal.
  • Con los 41.44 Wh iniciales nos daría dos horas y media de uso intensivo, 2.5 horas en valor decimal.
  • Según upower la batería está en el 72,6071% de su capacidad inicial de fábrica. Para cotejar con la realidad hallamos la razón de las duraciones con el cociente 1.8/2.5 = 0.72. Correcto, coincide con lo estimado por upower.
Como la batería aún retiene un 72% de su capacidad de carga inicial no podemos reemplazarla usando la garantía. Bueno, otra vez será.


Ayer día 22 la India lanzó la nave Chandrayaan 2 en dirección a la Luna, con la intención de aterrizar un rover y convertirse en el cuarto país en la historia que ha puesto de forma controlada una sonda de exploración en la superficie de nuestro satélite.


Esto lo hace sin asistencia de ningún otro país, con su programa espacial propio y de forma autónoma.

El coste de la misión es de 126 millones de euros. El coste de una repetición de elecciones en 2019 en el Reino de España sería superior a los 140 millones de euros. Como vemos, cada uno hace lo que puede según su capacidad.

martes, 2 de julio de 2019

Imagen clonezilla conteniendo sistema DRBL para distribuir imágenes de Ubuntu 18 (y otras).

En esta entrada contamos como instalar el sistema DRBL en un PC con Debian 9 para servir imágenes de Ubuntu 18, imágenes duales y variadas. En dicho post enumeré los pasos para partiendo de un Debian Stretch llegar a tener un servidor DRBL, pero por precaución he hecho una imagen Clonezilla (versión clonezilla-live-2.5.5-38) de todo el sistema instalado por si se me va el portátil que uso como servidor para la clonación multicast.

La imagen es una imagen de partición sda1 y se restaura por tanto usando Clonezilla con la opción "restore part". Si deseamos clonarla sobre una partición distinta a sda1 el propio clonezilla en sus versiones modernas nos permite elegir la partición donde cargarla (por si queremos tener un equipo con arranque dual, con otro sistema para su uso diario y un DRBL para cuando queramos clonar) A su vez dentro contiene la imagen /home/partimag/miniportatiles-xubuntu-13062018 que usamos en nuestros centros. Después podremos poner en /home/partimag todas la imágenes adicionales que necesitemos.

La contraseña de root del sistema DRBL es "linex".

El enlace es de descarga de la imagen alojada en Mega es drbl-debian-stretch.tgz.