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

viernes, 10 de mayo de 2024

tty-share: permitir acceso remoto por terminal de forma inmediata y sencilla.

A veces sucede que necesitamos permitir la conexión remota, mediante terminal, de un tercero a una de nuestras máquinas para hacer alguna tarea de mantenimiento. Lo normal es habilitar la conexión por ssh, pero eso implica dar las credenciales, habilitar ssh en la máquina si no está habilitado y lidiar con problemas de puertos y redirecciones si estamos en redes distintas.

Una solución rápida y sencilla es usar tty-share. Es un único programa ejecutable que descargamos desde aquí.

El funcionamiento es sencillo: ejecutamos el programa en un terminal y se genera una URL que permite, desde otra máquina y abriéndola en un navegador web, iniciar una sesión remota de shell en la máquina y usuario donde hemos lanzado tty-share. Por tanto, pasamos la URL a otra persona y con su navegador podrá entrar y trastear sin contraseñas. Cuando queramos acabar cerramos tty-share y se cortará la conexión. Por ejemplo:
# ./tty-share_linux-amd64 -listen 172.X.Y.Z:8123 -headless
local session: http://172.X.Y.Z:8123/s/local/
Siendo 172.X.Y.Z la dirección IP de la máquina donde ejecutamos tty-share (sirve para decir en que tarjeta de red se escuchará) y 8123 el puerto donde se escuchará.

Cualguier colega a quien pasemos la URL http://172.X.Y.Z:8123/s/local/ y la ponga en un navegador abrirá una sesión de shell remota en nuestra máquina como si hubiera hecho un ssh. El único requisito es que la IP esté accesible desde red (es decir, que pueda desde su máquina hacer ping 172.X.Y.Z). Cuando cerremos tty-share (pulsando ctrl-c) la puerta que hemos abierto se cerrará. Fácil.

Una variante que podemos usar en casa es añadiendo el parámetro -public:
# ./tty-share_linux-amd64 -public -listen 172.X.Y.Z:8123 -headless
public session: https://on.tty-share.com/s/0-0ozhPF7pbykkpo-nSVvI378o6xR4KdcIg6ow46_NlXd-70ku-9eL4Gj5ujM18YPzs/
local session: http://172.X.Y.Z:8123/s/local/
En este caso se crea una URL adicional https://on.tty-share.com/s/..... que permite acceder a nuestra máquina a través de Internet aunque las redes sean distintas. Está posibilidad no funciona en la red educativa porque el firewall corta el acceso a tty-share por motivos de seguridad, pero para uso doméstico o en otras redes menos estrictas es también una buena solución de acceso temporal.

Out!

martes, 7 de mayo de 2024

Ampliar una partición ext3/4 después de clonarla.

Ya he comentado otras veces que es muy conveniente hacer las imágenes Clonezilla de las particiones con un tamaño muy pequeño con vistas a poder clonarlas luego en cualquier disco, ya que si no es un fastidio hacerlas encajar tal como vimos aquí. Yo suelo hacerlas con particiones de menos de 30GB siempre que sea posible y luego mas tarde redimensiono.

Antes redimensionaba usando gparted pero ahora quería redimensionar usando herramientas de consola, justo después de clonar con clonezilla y antes de reiniciar. Los comandos serían:
# parted /dev/sda resizepart 1 60GB
# e2fsck -f /dev/sda1
# resize2fs /dev/sda1
Lo que hacemos es ampliar la partición sda1 hasta la posición 60GB (es una posición absoluta en el disco, no un tamaño), luego chequeamos el sistema de ficheros para ver confirmar que está bien y por último expandimos el sistema de fichero para que se ajuste a la partición que ha crecido.

Ojo: esto no quiere decir que la partición pase a tener 60GB, sino que la partición crezca hasta llegar al sector 60GB del disco. Es decir, si la partición está entre las posiciones 5GB y 40GB y la ampliamos para poner el final en la posición 60GB, pasa de tener un tamaño de 35GB a tener un tamaño de 55GB. Por supuesto, si la posición 60GB está dentro de otra partición no nos dejará ampliar sda1.

De esta manera lo hacemos todo de un tirón: clonar, ampliar y reiniciar. Sencillo, ¿no?.

viernes, 3 de mayo de 2024

Disco usb/pendrive autoarrancable con Clonezilla, otra vez.

Esta entrada complementa a esta otra del pasado. En esta ocasión haremos un pendrive/disco externo USB con clonezilla que tiene solo una partición con todo lo necesario y arrancará mediante Legacy usando syslinux.cfg. Pasos a seguir:
  • Formatea el dispositivo a FAT32 con gparted o manualmente.
  • Descarga el clonezilla.zip que mas te guste: https://clonezilla.org/downloads/download.php?branch=stable
  • Descomprime el ZIP dentro de la raiz del dispositivo (pista: la carpeta GPL debe quedar en la raíz)
  • Ejecutamos makeboot para hacer bootable el pendrive:
    cd util/linux
    bash makeboot.sh /deb/sdXX   # por ejemplo: sda1
  • Metemos en home/partimag las imágenes deseadas (cada una en un subdirectorio, como siempre)

Al fichero syslinux/syslinux.cfg añadimos la parte en negrita de lo siguiente:
# Created by generate-pxe-menu! Do NOT edit unless you know what you are doing! 
# Keep those comment "MENU DEFAULT" and "MENU HIDE"! Do NOT remove them.
# Note!!! If "serial" directive exists, it must be the first directive
default vesamenu.c32
timeout 300
prompt 0
noescape 1
MENU MARGIN 5
 MENU BACKGROUND ocswp.png
# Set the color for unselected menu item and timout message
 MENU COLOR UNSEL 7;32;41 #c0000090 #00000000
 MENU COLOR TIMEOUT_MSG 7;32;41 #c0000090 #00000000
 MENU COLOR TIMEOUT 7;32;41 #c0000090 #00000000
 MENU COLOR HELP 7;32;41 #c0000090 #00000000

# MENU MASTER PASSWD

say **********************************************************************
say Clonezilla, the OpenSource Clone System.
say NCHC Free Software Labs, Taiwan.
say clonezilla.org, clonezilla.nchc.org.tw
say THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
say **********************************************************************

# Allow client to edit the parameters
ALLOWOPTIONS 1

# simple menu title
MENU TITLE clonezilla.org, clonezilla.nchc.org.tw

# Since no network setting in the squashfs image, therefore if ip=, the network is disabled. That's what we want.
label Clonezilla Live
  MENU DEFAULT
  # MENU HIDE
  MENU LABEL Clonezilla live
  # MENU PASSWD
  kernel /live/vmlinuz
  append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales=es_ES.UTF-8 keyboard-layouts=es ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  TEXT HELP
  * Boot menu for BIOS machine
  * Clonezilla live version: 2.5.5-38-amd64. (C) 2003-2018, NCHC, Taiwan
  * Disclaimer: Clonezilla comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

label Clonezilla Live Auto
  # MENU HIDE
  MENU LABEL Clonezilla live - Install xubuntu22 to sda1
  # MENU PASSWD
  kernel /live/vmlinuz
  append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales=es_ES.UTF-8 keyboard-layouts=es ocs_prerun="sudo ln -s /lib/live/mount/medium/home/partimag/* /home/partimag/" ocs_live_run="/usr/sbin/ocs-sr -g auto -e1 auto -e2 -c -r -icds -j2 -scr -p choose restoredisk xubuntu22-universal sda" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1  TEXT HELP
  * Boot menu for BIOS machine
  * Clonezilla live version: 2.5.5-38-amd64. (C) 2003-2018, NCHC, Taiwan
  * Disclaimer: Clonezilla comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

# Since no network setting in the squashfs image, therefore if ip=, the network is disabled. That's what we want.
label Clonezilla Live SSH
  #MENU DEFAULT
  # MENU HIDE
  MENU LABEL Clonezilla live SSH 
  # MENU PASSWD
  kernel /live/vmlinuz
  append initrd=/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales=es_ES.UTF-8 keyboard-layouts=es ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ocsnet.ifnames=0  ocs_repository="ssh://root@172.19.X.Y/home/partimag/"  splash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
  TEXT HELP
  * Boot menu for BIOS machine
  * Clonezilla live version: 2.5.5-38-amd64. (C) 2003-2018, NCHC, Taiwan
  * Disclaimer: Clonezilla comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

MENU BEGIN Other modes of Clonezilla live

... Esta parte no la tocamos ...

MENU END
Lo añadido a la configuración estándar es:
  • La primera opción "Clonezilla live - Install xubuntu22 to sda1" arranca clonezilla y de forma automática restaura la imagen llamada xubuntu22-universal (el nombre del directorio en /home/partimag) sobre sda1.
  • La segunda opción "Clonezilla live SSH" arranca clonezilla, lo conecta a la red y monta /home/partimag por ssh sobre "ssh://root@172.19.X.Y/home/partimag", para que usemos las imágenes que allí haya.
Solo quedaría ajustarlo a nuestras circunstancias personales.

再见! Hasta la próxima.