🇪🇸 Instalación de Arch Linux
Instalación de Arch Linux
1. Verificación de firma
Se recomienda verificar la firma de la imagen antes de usarla, especialmente al descargar desde un espejo HTTP, donde las descargas están sujetas a interceptación para proporcionar imágenes dañinas.
En un sistema con GnuPG instalado, descargue la firma de ISO PGP en el directorio de ISO y verifíquela con:
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig
Alternativamente, desde una instalación existente de Arch Linux ejecute:
$ pacman-key -v archlinux-version-x86_64.iso.sig
2. Configuración inicial
Para empezar, necesitamos definir el idioma del teclado, el idioma predeterminado sin introducir el comando es US
. Las distribuciones disponibles se pueden listar con:
# ls /usr/share/kbd/keymaps/**/*.map.gz
establezca el idioma de nuestro teclado con el comando:
# loadkeys it
Los caracteres de la consola se pueden encontrar en /usr/share/kbd/consolefonts/ y también se pueden establecer con setfont. Por ejemplo, para usar uno de los caracteres más grandes adecuados para pantallas HiDPI, ejecute:
# setfont ter-132b
3. Conexión a internet
Si ha conectado la máquina a internet mediante cable o máquina virtual, puede verificar la dirección IP adquirida con este comando:
# ip a
La conexión se puede probar con un comando de prueba de ping:
# ping -c 3 archlinux.org
Conéctese a la red Wi-Fi utilizando la herramienta iwctl:
# iwctl
Iniciar iwctl# device list
Busque el nombre de su dispositivo, por ejemplo, wlan0# station wlan0 scan
Buscar redes inalámbricas disponibles# station wlan0 get-networks
Obtener la lista de redes# station wlan0
connect yournetworkname Conexión con su red# exit
Si en caso de que nuestros dispositivos estén deshabilitados y no podamos ejecutar iwctl :
# rfkill list
Verifique el estado bloqueado o desbloqueado de los dispositivos# rfkill unblock all
Desbloquee todos nuestros dispositivos bloqueados# systemctl restart iwd
Reiniciar el servicio iwd
Intente # iwctl
de nuevo y proceda como se indica arriba.
4. Preparación del disco
Bios-MBR
Particionado
Identifique su disco para conocer la convención de nomenclatura que se utilizará. Por ejemplo, en el caso de una SSD /dev/sda o en el caso de M.2 /dev/nvme0n1 y, finalmente, el disco virtual /dev/vda.
# lsblk -l
Una vez identificada la nomenclatura de nuestro disco, use cfdisk, aquí asumiremos tener /dev/sda. Se puede solicitar el tipo de tabla de particiones si el disco es crudo. En este caso, seleccione DOS:
# cfdisk /dev/sda
Cree las particiones necesarias para la instalación básica, suponiendo que tenemos un SSD de 128 GiB:
# 4Gib
Crear una partición para swap y seleccione el tipo de swap# 124Gib
Crear la partición de Root# write (yes)
yquit
Escriba los cambios y salga
Formateo de particiones
# mkswap /dev/sda1
Partición de swap# mkfs.ext4 /dev/sda2
Partición de Root en EXT4
Montaje de particiones
# mount /dev/sda2 /mnt
Montar la partición de Root# swapon /dev/sda1
Montar la partición de swap
UEFI ext4
Particionado del disco
Identifique su disco para conocer la convención de nomenclatura que se utilizará. Por ejemplo, en el caso de un SSD /dev/sda o en el caso de M.2 /dev/nvme0n1 y, finalmente, el disco virtual /dev/vda.
# lsblk -l
Suponiendo que tenemos una SSD de 128 GiB y usaremos la partición GPT para la instalación UEFI:
# cfdisk /dev/sda
# 512Mib
Crear una partición EFI y seleccione el tipo de partición de sistema EFI# 4Gib
Crear una partición para swap y seleccione el tipo de swap# 23.5Gib
Cree la partición Root# 100Gib
Cree la partición de Home# write (yes)
yquit
Escriba los cambios y salga
Formateo de particiones
# mkfs.vfat -F32 /dev/sda1
Partición del sistema EFI en FAT32 para el arranque# mkswap /dev/sda2
Partición de swap# mkfs.ext4 /dev/sda3
Partición de Root en EXT4# mkfs.ext4 /dev/sda4
Partición de Home en EXT4
Montaje de particiones
# mount /dev/sda3 /mnt
Montar la partición de Root# mkdir -p /mnt/{home,boot}
Cree los directorios /home y /boot# mount /dev/sda4 /mnt/home
Montar la partición de Home# mount /dev/sda1 /mnt/boot
Montar partición de arranque# swapon /dev/sda2
Montar la partición de swap
UEFI btrfs
Particionado del disco
Identifique su disco para conocer la convención de nomenclatura que se utilizará. Por ejemplo, en el caso de un SSD /dev/sda o en el caso de M.2 /dev/nvme0n1 y, finalmente, el disco virtual /dev/vda.
# lsblk -l
Suponiendo que tenemos una SSD de 128 GiB y usaremos la partición GPT para la instalación UEFI:
# cfdisk /dev/sda
# 512Mib
Crear una partición EFI y seleccione el tipo de partición de sistema EFI# 27.5Gib
Cree la partición Root# 100Gib
Cree la partición de Home# write (yes)
yquit
Escriba los cambios y salga
Formateo de particiones
# mkfs.vfat -F32 /dev/sda1
Partición del sistema EFI en FAT32 para el arranque# mkfs.btrfs /dev/sda2
Partición de Root en BTRFS# mkfs.btrfs /dev/sda3
Partición de Home en BTRFS
Montaje de particiones
Cree subvolúmenes @ y @home:
-
# mount /dev/sda2 /mnt
-
# btrfs su cr /mnt/@
-
# umount /mnt
-
# mount /dev/sda3 /mnt
-
# btrfs su cr /mnt/@home
-
# umount /mnt
-
# mount -o noatime,ssd,space_cache=v2,compress=zstd,discard=async,subvol=@ /dev/sda2 /mnt
-
# mkdir -p /mnt/{home,boot}
Cree los directorios /home y /boot # mount /dev/sda1 /mnt/boot
# mount -o noatime,ssd,space_cache=v2,compress=zstd,discard=async,subvol=@home /dev/sda3 /mnt/home
UEFI lvm-ext4
Partición de disco
Identifique su disco para conocer la convención de nomenclatura que se utilizará. Por ejemplo, en el caso de una SSD /dev/sda o en el caso de M.2 /dev/nvme0n1 y, finalmente, el disco virtual /dev/vda.
# lsblk -l
Suponiendo que tenemos 3 discos de 128 GiB para LVM: sda sdb sdc use cfdisk para un disco a la vez:
# cfdifk /dev/sda
# 512Mib
Crear una partición EFI y seleccione el tipo de partición de sistema EFI# 127.5GiB
Cree una partición y seleccione el tipo de LVM# write (yes)
yquit
Escriba los cambios y salga
# cfdifk /dev/sdb
# 128GiB
Cree una partición y seleccione el tipo de LVM# write (yes)
yquit
Escriba los cambios y salga
# cfdifk /dev/sdc
# 128GiB
Cree una partición y seleccione el tipo de LVM# write (yes)
yquit
Escriba los cambios y salga
Para crear particiones en LVM, primero necesitamos crear un volumen físico:
Crear volumen físico
# pvcreate /dev/sda2 /dev/sdb1 /dev/sdc1
Crear grupo de volúmenes
Cree y extienda su grupo de volúmenes; debe crear un grupo de volúmenes en uno o más volúmenes físicos # vgcreate volume_group physical_volume
por ejemplo:
# vgcreate lvm /dev/sda2 /dev/sdb1 /dev/sdc1
Este comando primero configurará las tres particiones como volúmenes físicos (si es necesario) y luego creará el grupo de volúmenes con los tres volúmenes. El comando le alertará si detecta un sistema de archivos existente en cualquier dispositivo.
Crear volúmenes lógicos
Cree volúmenes lógicos, para una configuración básica, necesitaríamos uno para Root, swap y home.
# lvcreate -L 120G lvm -n root
# lvcreate -L 8G lvm -n swap
# lvcreate -l 100%FREE lvm -n home
Formateo de particiones
# mkfs.vfat -F32 /dev/sda1
Partición del sistema EFI en FAT32 para el arranque# mkfs.ext4 /dev/lvm/root
# mkfs.ext4 /dev/lvm/home
# mkswap /dev/lvm/swap
Montaje de particiones
# mount /dev/lvm/root /mnt
Montar la partición de Root# mkdir -p /mnt/{home,boot}
Cree los directorios /home y /boot# mount /dev/lvm/home /mnt/home
# mount /dev/sda1 /mnt/boot
# swapon /dev/lvm/swap
Extender un grupo LVM
Si en el futuro desea agregar un nuevo volumen físico al grupo, vea qué comando debe usar, asumiendo un cuarto disco sdd y habiéndolo particionado como antes, ampliamos el espacio por ejemplo a /dev/lvm/home
:
# pvcreate /dev/sdd1
# vgextend lvm /dev/sdd1
# lvextend -l +100%FREE /dev/lvm/home
5. Lista de espejos
Guarde la lista de espejos para los repositorios en /etc/pacman.d/mirrorlist utilizando la herramienta reflector, especificando el país para sincronizar los servidores, por ejemplo it. Se pueden agregar varios países separándolos con una coma, por ejemplo, it,us:
# reflector --verbose -c it -a 12 --sort rate --save /etc/pacman.d/mirrorlist
6. Pacstrap
Instale el kernel linux y los paquetes base para crear nuestro sistema Arch, también agregue un editor como vim. Si sigue la instalación para lvm, agregue el paquete lvm2
al siguiente comando:
# pacstrap -K /mnt base base-devel linux linux-firmware vim
7. Generar Fstab
El archivo /etc/fstab le permite controlar qué sistemas de archivos se montan en su sistema Linux durante el inicio, incluidas las particiones de Windows y las compartidas en la red:
# genfstab -U /mnt > /mnt/etc/fstab
8. Chroot
Ingrese al chroot y configure los siguientes pasos: Configuración de la hora local, systemclock, idioma, asignaciones de teclado, localhost, contraseña de root, creación de usuario y contraseña.
Ingrese al chroot:
# arch-chroot /mnt
Zona horaria
# ln -sf /usr/share/zoneinfo/Europe/Italy /etc/localtime
# hwclock --systohc
Configuración regional
# echo "it_IT.UTF-8 UTF-8" >> /etc/locale.gen
# locale-gen
# echo "LANG=it_IT.UTF-8" >> /etc/locale.conf
# echo "KEYMAP=it" >> /etc/vconsole.conf
Hostname y Hosts
# echo "YOURMACHINENAME" > /etc/hostname
# echo "127.0.0.1 localhost" >> /etc/hosts
# echo "::1 localhost" >> /etc/hosts
Usuario y Root
Configure la contraseña de Root, ¡tenga cuidado!
# passwd
Configure un nuevo usuario en minúsculas, creando el directorio /home/USERNAME
con -m
, el grupo wheel
con -G
y la shell con -s
:
# useradd -mG wheel -s /bin/bash USERNAME
Configure el nombre real (que aparece en gráficos con letra inicial en mayúscula, por ejemplo "Alessio")
# usermod -c 'NOMBREREAL' USERNAME
Configure una contraseña para el usuario recién agregado, ¡tenga cuidado!
# passwd USERNAME
Configure el archivo sudoers para el grupo wheel:
# echo "USERNAME ALL=(ALL:ALL) ALL" >> /etc/sudoers.d/USERNAME
mkinitcpio para LVM
Agregar lvm2 en los hooks de /etc/mkinitcpio.conf
HOOKS="base udev ... block lvm2 filesystems"
luego usar el comando:
# mkinitcpio -p linux
9. Bootloader
GRUB (Bios-MBR)
# pacman -S grub
# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
GRUB (UEFI)
# pacman -S grub
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
GRUB admite completamente el arranque seguro usando claves CA o shim, sin embargo, el comando de instalación es diferente dependiendo de cual se pretenda utilizar.
Para usar claves CA, el comando es:
# grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB --modules="tpm" --disable-shim-lock
Para usar shim-lock, el comando es:
# grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB --modules="normal test efi_gop efi_uga search echo linux all_video gfxmenu gfxterm_background gfxterm_menu gfxterm loadenv configfile tpm"
Systemd-boot (EXT4)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Ahora cree la configuración del archivo arch.conf abierto con vim, es importante escribir la partición de arranque raíz correctamente, como root=/dev/sdax
donde x
es el número de la partición raíz.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sdax rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
Systemd-boot (BTRFS)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Ahora cree la configuración del archivo arch.conf abierto con vim, es importante escribir la partición de arranque raíz correctamente, como root=/dev/sdax
donde x
es el número de la partición raíz, agregar la bandera para el subvolumen @.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sdax rootflags=subvol=@ rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
Systemd-boot (LVM)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Ahora cree la configuración del archivo arch.conf abierto con vim, es importante escribir la partición de arranque raíz correctamente, como para lvm root=/dev/mapper/lvm-root
title Arch Linux (LVM)
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/mapper/lvm-root rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
10. Paquetes Base
# pacman -S xorg wpa_supplicant wireless_tools netctl net-tools iw networkmanager alsa-utils pipewire-pulse mtools dosfstools mtools ntfs-3g f2fs-tools dosfstools exfatprogs fuse firewalld acpi cronie git reflector bluez bluez-utils cups reflector
11. Entorno de Escritorio
Elija entre algunos de los entornos de escritorio populares sugeridos:
Gnome
Gnome completo con el gestor de pantallas GDM
# pacman -S gnome gnome-extra gdm
# systemctl enable gdm
Xfce4
Xfce4 con el gestor de pantallas Lightdm
# pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
# systemctl enable lightdm
Lxde
Lxde con el gestor de pantallas Lightdm
# pacman -S lxde lxde-common lxsession openbox
# systemctl enable lightdm
Mate
Mate con el gestor de pantallas Lightdm
# pacman -S mate mate-extra
# systemctl enable lightdm
Plasma
Plasma kde con el gestor de pantallas SDDM
# pacman -S plasma kde-applications sddm
# systemctl enable sddm
Cinnamon
Cinnamon con el gestor de pantallas Lightdm
# pacman -S cinnamon nemo-fileroller gnome-terminal lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings xdg-user-dirs-gtk
# systemctl enable lightdm
12. Servicios
Si ha habilitado el servicio para el gestor de pantalla, puede pasar a habilitar los demás servicios necesarios.
# systemctl enable NetworkManager
Tenga cuidado, es sensible a mayúsculas.# systemctl enable bluetooth
# systemctl enable reflector
# systemctl enable cronie
# systemctl enable firewalld
13. Zram
El siguiente ejemplo describe cómo configurar el intercambio automático a zram en el arranque mediante una única regla udev. No deberían ser necesarios paquetes adicionales para que esto funcione.
Cargue explícitamente el módulo en el arranque:
-
# vim /etc/modules-load.d/zram.conf
-
zram
Cree la siguiente regla udev ajustando el atributo disksize según se requiera para el tamaño del swap, en este ejemplo es 16G:
-
# vim /etc/udev/rules.d/99-zram.rules
-
ACTION=="add", KERNEL=="zram0", ATTR{comp_algorithm}="zstd", ATTR{disksize}="16G", RUN="/usr/bin/mkswap -U clear /dev/%k", TAG+="systemd"
Agregue /dev/zram a fstab con una prioridad más alta que la predeterminada:
-
# vim /etc/fstab
-
/dev/zram0 none swap defaults,pri=100 0 0
Creata: August 16, 2023