En esta oportunidad veremos como instalar Ubuntu resolute en una partición que tengamos libre (también podría ser un disco externo), esto lo haremos sin tener necesidad de reiniciar ni dejar de trabajar. Luego de terminar la instalación tendremos que reiniciar si queremos probar nuestro nuevo sistema.
- La partición se encuentra en
/dev/sdb2 - La partición se montará en
$PWD/ubuntu(debe ser/root/ubuntu) - El super usuario se llamará
lsaavedr
Accedemos como root y montamos el disco:
foo@bar:~$ sudo su -
foo@bar:~# mkfs.ext4 /dev/sdb2 -L resolute
foo@bar:~# mkdir -p $PWD/ubuntu
foo@bar:~# mount /dev/sdb2 $PWD/ubuntudebootstrap, es un comando que nos permite volcar un sistema básico con el sistema de paquetería de Debian, en nuestro caso será Ubuntu 26.04 LTS (Resolute Raccoon). Para instalarlo utilizamos:
foo@bar:~# apt install -y debootstrapluego de instalarlo, lo utilizamos de la siguiente forma:
foo@bar:~# debootstrap --verbose --no-resolve-deps --arch=amd64 --components=main,restricted,universe,multiverse resolute $PWD/ubuntu http://cl.archive.ubuntu.com/ubuntuen nuestro caso hemos indicado (en orden):
- que sea verboso con
--verbose - que no pare si encuentra algún problema de dependencias
--no-resolve-depslo que es típico en nuevas versiones - también hemos indicado nuestra arquitectura
--arch=amd64 - los repositorios básicos (main, restricted, universe y multiverse) con
--components=main,restricted,universe,multiverse - la distribución con
resolute - donde volcar el nuevo sistema con
$PWD/ubuntu/ - y por último desde donde obtener los repositorios básicos con
http://cl.archive.ubuntu.com/ubuntu/
muchas de estas configuraciones se pueden adaptar a nuestras necesidades, sobre todo la elección de la distribución (en nuestro caso resolute), pero también algunos querrán cambiar la arquitectura de la máquina, por ejemplo con --arch=i386 o --arch=arm64.
chroot, como su nombre lo sugiere, es un comando que nos permite cambiar la raíz de un sistema, en nuestro caso nos interesa ''ingresar'' a nuestro sistema recientemente volcado con debootstrap. Pero antes debemos montar algunos periféricos en el sistema volcado:
foo@bar:~# mount --rbind /dev $PWD/ubuntu/dev
foo@bar:~# mount --rbind /proc $PWD/ubuntu/proc
foo@bar:~# mount --rbind /sys $PWD/ubuntu/sys
foo@bar:~# LC_ALL=C LANGUAGE=C LANG=C.UTF-8 chroot ubuntucon esto ya ingresamos a nuestro nuevo sistema básico y podemos configurar algunas cosas antes de instalar el sistema completo.
Algo que nos puede sorprender de debootstrap es que el sistema que instala es realmente básico, pero completo, con él podemos instalar todo tipo de herramientas pero también requiere que tengamos cierto grado de especialización. Por defecto para instalar paquetes se utiliza apt que es una herramienta bastante popular, empecemos a utilizarla:
foo@bar:~# apt update
foo@bar:~# apt modernize-sources -y
foo@bar:~# apt install -y command-not-found locate nano curlcommand-not-found nos va a servir para ver recomendaciones de paquetes (según qué comando intentemos ejecutar en el terminal), nano es un editor de texto que se puede usar desde el terminal y curl para descargas remotas.
Debemos verificar que los repositorios oficiales estén más o menos completos, para eso debemos modificar el archivo /etc/apt/sources.list.d/ubuntu.sources y dejarlo con lo siguiente:
Types: deb
URIs: http://cl.archive.ubuntu.com/ubuntu/
Suites: resolute
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://cl.archive.ubuntu.com/ubuntu/
Suites: resolute-updates
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://cl.archive.ubuntu.com/ubuntu/
Suites: resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
luego actualizamos la lista de repositorios y los paquetes:
foo@bar:~# apt update && apt full-upgrade -yHemos elegido instalar las aplicaciones de escritorio y al final el kernel Linux, un poco para mostrar lo elegante que es el sistema de paquetería de Debian, un poco para mostrar lo separado que está el kernel de las aplicaciones de sistema (eventualmente podríamos usar otro kernel).
Si queremos la instalación mínima de un escritorio:
foo@bar:~# apt install -y ubuntu-desktopo bien, la instalación mínima de un servidor:
foo@bar:~# apt install -y ubuntu-serverEsta es la parte que más demora de la instalación que se realiza con el clásico CD de instalación, en nuestro caso todo depende de qué tan rápida es nuestra conexión a Internet (en la descarga de paquetes) y de qué tan rápido es nuestra máquina (en la instalación de paquetes).
Ahora pasamos a instalar o configurar algunas aplicaciones adicionales:
Para configurar el teclado:
foo@bar:~# dpkg-reconfigure keyboard-configurationPara configurar el ''time-zone''
foo@bar:~# dpkg-reconfigure tzdatay para que nuestro ''RTC'' no modifique el ''RTC'' de la máquina:
foo@bar:~# apt install -y util-linux-extra
foo@bar:~# hwclock --systohc --localDeshabilitaremos apport para no ver los molestos y eternos mensajes de advertencia cuando ocurre algún error
foo@bar:~# rm -f /var/crash/*
foo@bar:~# sed -i s,enabled=1,enabled=0,g /etc/default/apportPara acceder a nuestra máquina remotamente:
foo@bar:~# apt install -y ssh fail2ban net-toolsPara poder ejecutar videos o audios en formatos privativos:
foo@bar:~# apt install -y libavcodec-extra
foo@bar:~# apt install -y ubuntu-restricted-extrasAlgo que nos podemos dar cuenta es que hay un problema con el idioma, por esto hemos accedido al chroot con las variables de entorno LC_ALL=C LANGUAGE=C LANG=C.UTF-8, de lo contrario veríamos lo siguiente cada vez que utilicemos algo como apt:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "es_CL.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directoryen nuestro caso lo que no va a encontrar es la locale es_CL.UTF-8, para no arrastrar este error en el futuro lo solucionaremos instalando el soporte de lenguaje español:
foo@bar:~# apt install -y language-selector-common
foo@bar:~# apt install -y $(check-language-support -l es)
foo@bar:~# apt install -y $(check-language-support -l en)Para finalizar con el escritorio, añadimos un super usuario (recordemos que nuestro super usuario será lsaavedr):
foo@bar:~# adduser lsaavedr
foo@bar:~# adduser lsaavedr adm
foo@bar:~# adduser lsaavedr sudo
foo@bar:~# adduser lsaavedr dialout
foo@bar:~# adduser lsaavedr lpadmin
foo@bar:~# adduser lsaavedr audio
foo@bar:~# adduser lsaavedr videoOjo con el nombre del usuario lsaavedr, quizá te gustaría otro nombre.
Un poco de cosmética
foo@bar:~# apt install -y gnome-tweaks ubuntu-artwork dmz-cursor-theme dbus-x11
foo@bar:~# su - lsaavedr
lsaavedr@bar:~$ dbus-run-session -- bash
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface accent-color 'purple'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface font-name 'Adwaita Sans 9'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface gtk-enable-primary-paste true
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface cursor-theme 'Yaru'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface icon-theme 'Yaru-magenta-dark'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.interface clock-show-seconds true
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'nothing'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'nothing'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power power-button-action 'nothing'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.power ambient-enabled false
lsaavedr@bar:~$ gsettings set org.gnome.system.locale region 'es_CL.UTF-8'
lsaavedr@bar:~$ gsettings set org.gnome.shell.extensions.dash-to-dock dock-position 'BOTTOM'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/manuej-Vor.jpg'
lsaavedr@bar:~$ gsettings set org.gnome.desktop.background picture-uri-dark 'file:///usr/share/backgrounds/manuej-Vor.jpg'
lsaavedr@bar:~$ gsettings set org.gnome.settings-daemon.plugins.housekeeping donation-reminder-enabled false
lsaavedr@bar:~$ gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 42
lsaavedr@bar:~$ gsettings set org.gnome.shell.extensions.ding show-trash false
lsaavedr@bar:~$ gsettings set org.gnome.shell.extensions.ding show-volumes false
lsaavedr@bar:~$ gsettings set org.gnome.shell favorite-apps "['org.gnome.Nautilus.desktop', 'org.gnome.Ptyxis.desktop', 'org.gnome.Terminal.desktop', 'org.gnome.Calendar.desktop']"
lsaavedr@bar:~$ exit
lsaavedr@bar:~$ exitPara saber qué tipo de arranque tenemos en nuestra máquina ejecutamos:
foo@bar:~# [ -d /sys/firmware/efi ] && echo "EFI boot" || echo "Legacy boot"Si aparece EFI boot y tenemos una partición extra /dev/sdb1 de más menos 100Mb, de tipo EFI, podemos instalar grub-efi de la siguiente forma:
foo@bar:~# mkfs.vfat /dev/sdb1
foo@bar:~# mkdir -p /boot/efi
foo@bar:~# mount /dev/sdb1 /boot/efi
foo@bar:~# apt purge -y grub-gfxpayload-lists grub-pc grub-pc-bin
foo@bar:~# apt install -y grub-efi-amd64
foo@bar:~# grub-install --removable --no-uefi-secure-boot --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub --recheck /dev/sdb
foo@bar:~# update-grub
foo@bar:~# update-initramfs -uSi aparece Legacy boot entonces hacemos lo siguiente:
foo@bar:~# apt install -y grub-pc
foo@bar:~# grub-install --removable --target=i386-pc --boot-directory=/boot --bootloader-id=grub --recheck /dev/sdb
foo@bar:~# update-grub
foo@bar:~# update-initramfs -uEl archivo fstab es el que se encarga de darle funciones a las particiones de los discos en nuestro sistema, para configurar el fstab lo haremos de la forma más genérica posible ya que nuestra unidad puede ser externa y no sabremos a priori que nombre tendrá debemos utilizar un identificador moderno de las unidades de disco /dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb4, para ver estos identificadores:
foo@bar:~# blkid /dev/sdb*luego para configurar el archivo /etc/fstab reemplazamos correctamente nuestros UUID:
# <device> <dir> <type> <options> <dump> <fsck>
UUID=95181871-646d-4917-972d-25bf81dedeb3 none swap defaults 0 0
UUID=4F54-32E9 /boot/efi vfat defaults 0 1
UUID=af2b7fd9-0876-41d4-929a-91bdd391028f / ext4 rw,relatime,discard,data=ordered 0 2
UUID=20c22b02-d5cb-44b2-9c59-d074408edc4e /home ext4 rw,relatime,discard,data=ordered 0 3
por último movemos la carpeta de nuestro usuario al nuevo home:
foo@bar:~# mv /home/lsaavedr /root/
foo@bar:~# mount -a
foo@bar:~# mv /root/lsaavedr /home/Para finalizar instalamos el kernel:
foo@bar:~# apt install -y linux-image-generico la versión oem:
foo@bar:~# apt install -y linux-image-oem-26.04Antes de reiniciar podrías querer desmontar la partición:
foo@bar:~# umount /boot/efi
foo@bar:~# umount /home
foo@bar:~# exit
foo@bar:~# umount -l $PWD/ubuntu/sys
foo@bar:~# umount -l $PWD/ubuntu/dev
foo@bar:~# umount -l $PWD/ubuntu/proc
foo@bar:~# umount -l $PWD/ubuntu