Aumentando el tamaño de un disco logico de linux instalado en VirtualBox

Primero hay que incrementar el tamaño del disco virtual con



VBoxManage modifyhd "nombre del disco duro.vdi" --resize

nuevo_tamaño_total_en_MB

(la opcion --resize funciona con los formatos .VDI y .VHD, pero .VMDK)

Una vez hecho esto habrá que redimensionar la particion correspondiente

para expandirla con el nuevo espacio correspondiente.
Si se trata del disco del sistema operativo habrá que arrancar con un USB externo
para poder redimensionar la particion.


Si tenemos volumenes logicos habrá además que extenderlo para que utilice el nuevo espacio asignado
y redimensionar el sistema de ficherso
lvextend -l +100%FREE /dev/mapper/ubunut--vg-root
resize2fs /dev/mapper/ubuntu--vg-root
Si lo que teníamos era un disco VMDK, habrá que clonarlo en un formato redimensionable previamente:

VBoxManage clonehd "original.vmdk" "clonado.vdi" --format vdi
VBoxManage modifyhd "clonado.vdi" --resize 51200
VBoxManage clonehd "clonado.vdi" "redimensionado.vmdk" --format vmdk

En windows hay dos programas (en realidad uno es un fork del otro) que te permite hacer esto con interfaz grafica y de un paso:
CloneVDI (https://forums.virtualbox.org/download/file.php?id=27699)
SlimVDI (https://github.com/hakito/SlimVDI)

Instalando VirtualBox en Ubuntu


Preparamos el repositorio para instalarlo:
Añadimos el repositorio al fichero /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian yakkety contrib


Descargamos e instalamos la public key:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

Instalamos la aplicación:
sudo apt-get install virtualbox

Lanzamos la aplicacion desde linea de comandos:
VirtualBox

Si queremos arrancar una maquina virtual desde linea de comandos:


VBoxManage list vms

VBoxManage startvm "nombre de la VM que aparece entrecomillado en la lista"
--type headless

Otros comandos utiles:


VBoxManage controlvm "idem" pause

VBoxManage controlvm "idem" resume
VBoxManage controlvm "idem" reset
VBoxManage controlvm "idem" poweroff
VBoxManage controlvm "idem" acpipowerbutton
VBoxManage controlvm "idem" savestate

Arrancando escritorios remotos a traves de ssh (Lxde, KDE, Moksha)

Estas son los comandos que hay que ejecutar en linea de comandos (ssh) para arrancar los distintos escritorios (previamente debemos tener haber hecho xhost +, DISPLAY, etc):

  • KDE: startkde
  • Gnome: gnome-session
    • No se el motivo, pero no me arranca ningun window manager: lanzo openbox
    • Además como queria el menu clasico de aplicaciones lanzo gnome-panel (previa instalacion)
  • LXDE: lxsession
  • Moksha (Linux Bodhi): enlightenment_start
  • Xfe4: startxfce4
  • Cinnamon: cinnamon-session
  • Mate: mate-session
Tanto LXDE como Moksha son escritorios pensados para maquinas con mínimos recursos: el rendimiento  (especialmente cuando el servidor X está en otra maquina) es notablemente superior a KDE.

Haciendo USB bootables en Windows

Hay múltiples herramientas para hacer lapices USB bootables a partir de images (.iso, .img, etc) de sistemas operativos. Esta practica es muy conveniente porque hoy la mayoría de los ordenadores permiten arrancar desde USB, las capacidades de los lapices aumenta inversamente proporcional a su precio y además la mayoría de las imagenes permiten arrancar como Live OS sin tener que instalarlo, lo cual nos puede sacar de mas de un apuro.
A continuación enumero los que más me han gustado de todos los que he usado. Los he empleado tanto con procesadores arm (rasberry y similares) como con Intel/AMD. Los sistemas operativos que he usado han sido linux, principalmente distribuciones basadas en Debian.
Esta es la lista por orden de preferencia:

  1. USB Image Tool: permite tanto crear USB a partir de una imagen como hacer backups (por ejemplo para las RPi que el SO esta en la tarjeta SD) del USB. Tiene versión portable. Además la opción de hacer los backups directamente comprimidos (zip, gzip), lo cual es interesante a la hora de ahorrar espacio. http://www.alexpage.de/
  2. Rufus: Es para crear USB bootables a partir de imágenes ya existentes. Tiene versión portable. Me gusta mucho porque permite múltiples opciones a la hora de crear esa imagen: elegir si el USB  tendrá MBR o GPT (y en el caso de  MBR si será para BIOS u UEFI). También se puede elegir si se creará un disco de arranque para DOS, como ISO, DD. En resumen tiene una serie de opciones de configuración de arranque del USB que se está creando que son muy útiles, especialmente si estamos instalando el SO en hardware legacy. https://rufus.akeo.ie
  3. Win32Disk Imager: es uno de los clasicos. Tiene versión portable. Permite tanto crear la imagen en USB como hacer un backup del mismo. https://sourceforge.net/projects/win32diskimager/
  4. Etcher: también me gusta. Tiene version portable. No permite hacer backups, solo generar USB's bootables a partir de una imagen. https://etcher.io/
La unica carencia que les he encontrado a todos, es que, a la hora de hacer un backup del USB en ninguno es posible seleccionar que particiones queremos incluir en el backup y nos obliga a hacer el backup del USB completo. Esta característica me parece particlarmente util para cuando en la RPi nos vemos obligados a usar temporalmente, una tarjeta de mayor capacidad de la deseada, pero luego queremos hacer backup de esta y restaurar en una de menor capacidad (al estilo de rpi-clone en raspbian).

Obteniendo informacio sobre arquitectura CPU y SO instalado (x86, x64, arm)

Para saber la arquitectura de la CPU (32 o 64 bits), en linea de comandos se pueden usar varios comandos:

  • lscpu. De toda la información que nos muestra hay que fijarse en la linea de modos de operación para saber si la arquitectura de la CPU es de 32 bits o de 64 bits (o ambos).
  • lshw -class cpu. Aqui hay que mirar el campo achura para saber si la CPU admite 32 y/o 64 bits.
A este respecto hay que indicar que en  el caso de la Raspberry Pi 3, aunque en realidad el procesador es una arquitectura armv8 (la arquitectura arm es de 64bits a partir de v8, incluido), se identifica como armv7l. Esto es debido a que Raspbian no ha evolucionado a los 64 bits (es 32 bits) por lo que esta identificando incorrectamente la arquitectura HW de la CPU. Asi pues tenemos una CPU de 64 bits con un sistema operativo oficial de 32 bits.


Para saber si el sistema operativo que tenemos instalado es de 32 o 64 bits se puede ver con los siguientes comandos:

  1. uname -m (este comando es generico para casi todos los linux)
  2. lsb_release -a (este comando es para Ubuntu)


Para ver la memoria libre: free

Comprobando discos en Ubuntu

Para cada disco del sistema, linux crea una entrada en /dev del tipo /dev/sd?. Si el sistema tiene un único disco  y tiene dos particiones posiblemente aparezcan las siguientes entradas:

  • /dev/sda 
  • /dev/sda1 
  • /dev/sda2

Se puede recopilar la informacion SMART del disco con:

  • sudo smartctl -a /dev/sda

Se puede comprobar el disco para saber si hay sectores defectuosos con:

  • sudo badblocks -nvs /dev/sda  (comprueba lectura/escritura no destructiva)
  • sudo badblocks -wvs /dev/sda (idem pero la lectura/escritura es destructiva)