He creado esta guía de instalación de Arch con la intención de que sirva como recurso extra para aquellos que quieran instalar Arch por primera vez y no se aclaren del todo con la guía oficial. En ningún momento deberás instalar Arch sin consultar la Guía de Instalación de Arch de la ArchWiki, ni a través de este tutorial ni con cualquier otro. Tampoco con otros métodos como instaladores automáticos o imágenes preconfiguradas.
En cada paso de la guía intentaré explicar la necesidad del paso en cuestión para que el usuario sepa exactamente lo que está haciendo (Y de paso yo aprendo cosas).
AVISO: Esta guía está en construcción y agradecería la colaboración de usuarios experimentados para terminarla y mejorarla. (Porque yo tampoco tengo mucha idea, como podréis ver). La estoy completando a base de calcar una guía que hice para un amigo hace ya mucho tiempo, cuando acababa de instalar Arch. Me voy a centrar primero en trascribir todo lo que viene en la guía y luego completaré los huecos que voy dejando.
Índice
Npi de cómo se genera un índice
¿Quién debería instalar Arch?
(Gente que quiere saber lo que su SO tiene de cabo a rabo, tanto configuración como software. Y gente experimentada en entornos Linux que hayan usado bash, coeutils, redimensionado particiones, instalado paquetes desde la consola, etc.)
Instalación
En esta sección instalaremos nuestro sistema Arch en el disco duro.
Comprobaciones de seguridad
Distribución de teclado
Por defecto la distribución del teclado estará en inglés, para cambiarlo haremos uso del comando loadkeys.
loadkeys es
Conexión de internet
Para comprobar que tenemos conexión a internet haremos ping al servidor de Arch Linux (O a cualquier otro servidor) con el comando ping. En el ejemplo enviaremos 3 paquetes, si vuelven todos es que no hay problemas de conexión.
ping archlinux.org -c 3
Reloj
Para activar la sincronización del reloj a través de internet usaremos el comando timedatectl. Puede que la hora no corresponda con tu zona horaria, pero mientras los minutos estén sincronizados todo va bien.
timedatectl set-ntp true
Comprobar el sistema de booteo
Saber que sistema usa tu placa base para bootear es imprescindible para instalar bien el boot manager, paso que realizaremos más adelante. Para ello usaremos el comando ls que nos mostrará una lista de archivos en la dirección que le demos. En este caso esa dirección es /sys/firmware/efi/efivars que es donde ¿se almacena el firmware de UEFI?, por lo tanto si el comando funciona y devuelve una lista de archivos significa que tienes UEFI y en caso contrario es probable que tengas BIOS o CSM.
ls /sys/firmware/efi/efivars
Ver la organización de los discos
Con el comando lsblk podrás ver qué discos hay conectados a tu PC y sus datos.
lsblk
Realizar las particiones del disco
Existen varios programas para realizar las particiones. En este caso usaremos cfdisk y seleccionaremos el disco en el que queremos instalar nuestro nuevo sistema (De los que hemos visto antes con lsblk, no te confundas o acabarás borrando algo que no quieres).
cfdisk /dev/sda
Crear una partición para el bootloader.
Si estás usando BIOS deberás crear una partición de 1Gb de tipo BIOS boot.
En caso de estar usando UEFI deberás crear una partición de 1Gb de tipo EFI system.
Crear una partición para la memoria swap
La memoria swap es lo que usará tu sistema cuando se le acabe la RAM. Hoy en día su uso no es tan frecuente como antaño, pero nunca viene mal tenerla.
Lo recomendable es crear una partición del mismo tamaño que tu memoria RAM (Con un límite de 8Gb) tipo Linux Swap.
Crear una partición para el resto del sistema
En esta partición irán todos los archivos que componen tu sistema. Alguna gente prefiere dividirlo en varias particiones, pero por motivos de practicidad para esta guía usaremos una para todo.
Crea una partición con lo que te haya sobrado de disco duro tipo Linux Filesystem. Y en el caso de usar BIOS, marcarla como booteable.
Grabar los datos y salir de cfdisk
Para que las particiones se realicen has de grabar los datos y luego podrás salir de la interfaz de cfdisk para seguir con la instalación.
Activar la partición Swap
Para que una partición funcione como memoria Swap ha de activarse a través de los comandos mkswap y swapon (Una vez más puedes usar el comando lsblk para ver qué particion es cada una).
mkswap /dev/sd2
swapon /dev/sd2
Ajudicar un sistema de archivos a la partición Linux Filesystem
(Explicar de manera sencilla en lo que consiste un sistema de archivos). Entre los más usados están ext4, btfs y zfs.
mkfs.ext4 /dev/sd3
Montar la partición Linux Filesystem
(Explicar por qué necesitas montarla)
mount /dev/sd3 /mnt
(UEFI) Ajudicar en sistema de archivos a la partición EFI system y montarla
(Explicar por qué es diferente de BIOS, por qué el sistema de archivos es fat32 y por qué se tiene que montar en una carpeta especial)
mkfs.fat32 -F32 /dev/sd1
mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
(Opcional) Ordenar mirrors
(Explicar en qué consisten los mirrors y qué paquetes se pueden instalar para ordenarlos)
Instalar el sistema operativo
(Explicar en qué consiste pacstrap)
Existen muchos paquetes con los que crear tu sistema Arch. A continuación listaré con ejemplos todo el software que tienes que asegurarte de tener. (La lista la hice cuando estaba empezando con Arch, tengo que revisarla pero no me vendría mal ayuda)
pacstrap /mnt linux-lts linux-lts-headers linux-firmware base base-devel intel-ucode grub dhcpcd nano alsa-utils
- Kernel + headers + firmware (linux-lts, linux-lts-headers, linux-firmware)
- Herramientas del núcleo (base, base-devel)
- Init system (SystemD)
- Paquete de herramientas Unix (Coreutils)
- Shell (Bash)
- Gestor de paquetes (Pacman)
- Herramientas para compilar C y generar paquetes (make, patch,
autoconf, automake, pkgconfig, fakeroot, libtool) - Librerías básicas (glibc, gcc-libs, gettext)
- Herramientas para ensamblar y manipular archivos binarios ( binutils)
- Herramientas para buses PCI (pciutils)
- Herramientas para sistemas de archivos procfs (psmisc)
- Procesador de macros (m4)
- Generador de analizadores sintácticos? (bison)
- Herramientas varias para linux (util-linux)
- Implementación del lenguaje de programación AWK (GAWK)
- Identificador de tipo de archivo (file)
- Herramienta para localizar la ubicación de un programa (which)
- Editor de texto sin interfaz de usuario (SED)
- Herramienta de búsqueda de texto plano (GREP)
- Herramienta de generación de analizadores léxicos (flex)
- Compresor y descompresor de archivos (tar, xz, gzip)
- Herramienta de distribución de licencias? (licenses)
- Enrutador de paquetes TCP/IP? (iproute2)
- Herramientas para monitorear el sistema y los procesos ( procps-ng)
- Herramientas para localizar archivos (findutils)
- Archivos básicos de Arch (filesystem)
- Gestor de cuentras y contraseñas (Shadow)
- Herramienta de monitoreo de redes (iputils)
- Herramienta de delegación de permisos de superusuario (sudo)
- Documentación sobre los programas (texinfo)
- Implementación del sistema de formateo de texto troff (groff)
- Microcódigo para la CPU (amd cuenta con el suyo) (Intel-ucode)
- Cliente dhcp (DHCPCD)
- Editor de texto TUI (Nano)
- Controlador de audio (ALSA-utils)
(Me falta lo del wifi)
Generar el archivo FSTAB
El archvo FSTAB (File System TABle) es un archivo que los sistemas Linux usan de guía para localizar los discos duros y sus particiones. Lo generaremos con el comando genfstab, aunque también se podría escribir a mano.
genfstab -U /mnt > /mnt/etc/fstab
Configuración
En esta sección configuraremos nuestro sistema Arch recién instalado (Antes de reiniciar). Para ello haremos uso de arch-chroot, una herramienta que nos permite entrar en un entorno fakeroot (Explicar qué es fakeroot y por qué es útil para reparar nuestro sistema).
arch-chroot /mnt
Configurar el gestor de arranque
El gestor de arranque o bootloader es el primer programa que se ejecuta después de que BIOS decida con qué dispositivo de almacenamiento utilizar. Este prepara todo lo que el sistema operativo necesita para iniciarse, y los más elaborados además permiten seleccionar varios sistemas operativos, métodos de arranque, kernels e incluso shells de ayuda. Todo a través de una interfaz de usuario que puede ir desde una línea de comandos hasta una bonita página de bienvenida en 4k.
Existen muchos gestores de arranque, pero en este caso usaremos Grub, el más utilizado con diferencia.
Instalar el gestor de arranque
El paquete grub es el gestor de arranque, os-prober permitirá a grub detectar si hay más sistemas operativos en el PC, y efibootmgr es un paquete necesario para los sistemas UEFI.
Estos paquetes podrían haberse instalado junto al resto del sistema con pacstrap, pero he decidido dejarlo para ahora y así aprovechar para explicar en qué consisten.
pacman -S grub os-prober efibootmgr
Configurar gestor de arranque
En el caso de GRUB lo haremos a través de los comandos grub-install y grub-mkconfig. Asegúrate muy bien de que ha sido configurado correctamente, porque sin un gestor de arranque no podrás acceder a ningún sistema operativo (Aunque como he mencionado antes, siempre puedes volver a fakeroot y arreglarlo).
Para BIOS | Para UEFI |
---|---|
|
|
Administrar usuarios y contraseñas
Definir el host del sistema
(Explicar en qué consiste el host)
echo nombredelhost > /etc/hostname
Crear un usuario
Gracias al comando useradd podemos crear nuevos usuarios. (Explicar en qué consiste el grupo wheel)
useradd -m -G wheel nombredelusuario
Establecer contraseñas
El comando passwd permite crear y reeditar las contraseñas de los usuarios. En este caso crearemos una para nuestro nuevo usuario y otra para el usuario root.
passwd nombredelusuario
passwd root
Configurar sudo
Como ya sabrás si te has aventurado a instalar Arch, el la herramienta sudo nos permite ejecutar otros comandos en nombre de otros usuarios (Usualmente como usuario root). Su configuración se encuentra en una hoja de configuración en la que tan solo hemos de descomentar las líneas que nos interesen (Cortesía de Arch, sino te tocaba escribirlo desde 0).
Para editar dicha hoja de configuración sin corromperla usaremos el comando visudo justo después de especificar con qué editor queremos hacerlo.
EDITOR=nano visudo
Y descomentaremos la línea que permitirá usar sudo a los usuarios miembros del grupo wheel.
## Uncommento to allow members of group
%wheel=(ALL)ALL
Ajustar horario e idioma
El horario e idioma son datos que una gran variedad de programas necesitan para funcionar correctamente.
Seleccionar nuestra zona horaria
Crearemos un link simbólico usando el comando ln con el nombre de /etc/localtime (El archivo que los programas consultarán para saber la hora) y apuntando a /usr/share/zoneinfo/CiudadReferente/Región (Todos los archivos de /usr/share/zoneinfo han sido creados por el paquete filesystem del metapaquete base-devel para facilitar la configuración de la zona horaria(Comprobar si efectivamente era así)).
ln -sf /usr/share/zoneinfo/Madrid/Europe /etc/localtime
(Explicar para qué sirve systohc)
hwclock --systohc
Configurar idioma del teclado
(Explicar en qué consisten los archivos locale.conf y vconsole.conf)
echo LANG=es_ES.UTF-8 > /etc/locale.conf
echo KEYMAP=es > etc/vconsole.conf
Seleccionar idioma del sistema
(Explicar en qué consiste locale y por qué el idioma del sistema no es equivalente al idioma de la interfaz gráfica)
Encuentra y descomenta el idioma que quieras usar en el archivo /etc/locale.gen (Solo uno para evitar errores).
nano /etc/locale.gen
Una vez salvados los cambios, crea la configuración del idioma del sistema con el comando locale-gen.
locale-gen
Me he distraido un par de días, me falta poco para acabar la parte fácil