Esta es una guía personal, así que si estás perdido y acabas de encontrar esta guía en algún lugar, te recomiendo que leas la wiki
oficial. Esta guía se centrará en systemd-boot
, UEFI
y una guía si desea cifrar su partición con LUKS/LVM
. Esta guía existe para que pueda recordar un montón de cosas al reinstalar Archlinux
.
Antes de instalar, asegúrese de:
El mapa de teclas predeterminado de la consola es EE. UU. Los diseños disponibles se pueden enumerar con:
# ls /usr/share/kbd/keymaps/**/*.map.gz
Para modificar el diseño, agregue el nombre de archivo correspondiente a las claves de carga, omitiendo la ruta y la extensión del archivo. Por ejemplo, para configurar una distribución de teclado estadounidense:
# loadkeys us
Si el modo UEFI está habilitado en una placa base UEFI, Archiso iniciará Arch Linux en consecuencia a través de systemd-boot. Para verificar esto, enumere el directorio efivars:
# ls /sys/firmware/efi/efivars
Si el comando muestra el directorio sin errores, entonces el sistema se inicia en modo UEFI. Si el directorio no existe, es posible que el sistema se inicie en modo BIOS (o CSM ).
Necesitamos asegurarnos de estar conectados a Internet para poder instalar base
de Arch Linux y los paquetes linux
. Veamos los nombres de nuestras interfaces.
# ip link
Deberías ver algo como esto:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff permaddr 00:00:00:00:00:00
enp0s0
es la interfaz cableadawlan0
es la interfaz inalámbrica Si tiene una conexión por cable, puede habilitar su interfaz por cable mediante systemctl start dhcpcd@<interface>
.
# systemctl start dhcpcd@enp0s0
Si está en una computadora portátil, puede conectarse a un punto de acceso inalámbrico usando el comando iwctl
de iwd
. Tenga en cuenta que ya está habilitado de forma predeterminada. También asegúrese de que la tarjeta inalámbrica no esté bloqueada con rfkill
.
Busque red.
# iwctl station wlan0 scan
Obtenga la lista de redes escaneadas por:
# iwctl station wlan0 get-networks
Conéctese a su red.
# iwctl -P "PASSPHRASE" station wlan0 connect "NETWORKNAME"
Haga ping al sitio web de archlinux para asegurarse de que estamos en línea:
# ping archlinux.org
Si recibe una respuesta de Host desconocido o Host de destino inalcanzable, significa que aún no está en línea. Revise la configuración de su red y repita los pasos anteriores.
Utilice timedatectl
para garantizar que el reloj del sistema sea preciso:
# timedatectl set-ntp true
Para verificar el estado del servicio, use timedatectl status
.
Cuando el sistema en vivo los reconoce, los discos se asignan a un dispositivo de bloque como /dev/sda
, /dev/nvme0n1
o /dev/mmcblk0
. Para identificar estos dispositivos, utilice lsblk o fdisk. La unidad principal más común es sda .
# lsblk
Los resultados que terminen en rom
, loop
o airoot
pueden ignorarse.
En esta guía, crearé dos formas diferentes de particionar una unidad. Uno para una instalación normal, el otro se está configurando con cifrado (LUKS/LVM). Comencemos con el que no está cifrado:
Limpiemos nuestro disco principal para crear nuevas particiones para nuestra instalación. Y sí, en esta guía usaremos /dev/sda
como nuestro disco.
# gdisk /dev/sda
Presione x para ingresar al modo experto . Luego presione z para eliminar nuestro disco. Luego presione y cuando se le solicite borrar GPT y borrar MBR. Tenga en cuenta que esto eliminará todo su disco, por lo que sus datos desaparecerán y se reducirán a átomos después de hacer esto. ESTE. NO PUEDO. SER. DESHECHO.
Abra cgdisk
para comenzar a particionar nuestro sistema de archivos
# cgdisk /dev/sda
Presione Retorno cuando se le advierta sobre GPT dañado.
Ahora deberíamos ver nuestra unidad principal mostrando el número de partición, el tamaño de la partición, el tipo de partición y el nombre de la partición. Si ve una lista de particiones, elimínelas todas primero.
Crea la partición boot
EF00
. Presiona enter.boot
. Presiona enter. Crear la partición root
8300
).root
. Crear la partición root
home
. Por último, presione Write
en la parte inferior de la lista de particiones para escribir los cambios en el disco. Escriba yes
para confirmar el comando de escritura. Ahora hemos terminado de particionar el disco. Presione Quit
para salir de cgdisk . Vaya a la siguiente sección.
LUKS/LVM
Limpiemos nuestro disco principal para crear nuevas particiones para nuestra instalación. Y sí, en esta guía usaremos /dev/sda
como nuestro disco.
# gdisk /dev/sda
Presione x para ingresar al modo experto . Luego presione z para eliminar nuestro disco. Luego presione y cuando se le solicite borrar GPT y borrar MBR. Tenga en cuenta que esto eliminará todo su disco, por lo que sus datos desaparecerán y se reducirán a átomos después de hacer esto. ESTE. NO PUEDO. SER. DESHECHO.
Crea nuestras particiones ejecutando cgdisk /dev/sda
# cgdisk /dev/sda
Simplemente presione Retorno cuando se le advierta sobre GPT dañado.
Ahora deberíamos ver nuestra unidad principal mostrando el número de partición, el tamaño de la partición, el tipo de partición y el nombre de la partición. Si ve una lista de particiones, elimínelas todas primero.
Crea la partición boot
EF00
. Presiona enter.boot
. Presiona enter. Crear la partición LVM
8e00
. Presiona enter.lvm
. Presiona enter. Por último, presione Write
en la parte inferior de la lista de particiones para escribir los cambios en el disco. Escriba yes
para confirmar el comando de escritura. Ahora hemos terminado de particionar el disco. Presione Quit
para salir de cgdisk . Vaya a la siguiente sección.
Use lsblk
nuevamente para verificar las particiones que creamos. ¿Nosotros? Pensé que estaba haciendo esta guía para mí jajaja.
# lsblk
Deberías ver algo como esto :
NOMBRE | MAYOR:MIN | RM | TAMAÑO | RO | TIPO | PUNTO DE MONTAJE |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | ||
sda1 | 8:1 | 0 | 1 | 0 | parte | |
sda2 | 8:2 | 0 | 1 | 0 | parte | |
sda3 | 8:3 | 0 | 175G | 0 | parte |
sda
es el disco principal
sda1
es la partición de arranque
sda2
es la partición de intercambio
sda3
es la partición de inicio
NOMBRE | MAYOR:MIN | RM | TAMAÑO | RO | TIPO | PUNTO DE MONTAJE |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | disco | |
sda1 | 8:1 | 0 | 1 | 0 | parte | |
sda2 | 8:2 | 0 | 1 | 0 | parte |
sda
es el disco principal
sda1
es la partición de arranque
sda2
es la partición LVM
¡Sorpresa! ¡Sorpresa! No cifraremos la partición /boot
.
Formatee la partición /dev/sda1
como FAT32
. Este será nuestro /boot
.
# mkfs.fat -F32 /dev/sda1
Formatee las particiones /dev/sda3
y /dev/sda4
como EXT4
. Esta será nuestra partición root
y home
.
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4
Formatee la partición /dev/sda1
como FAT32
. Este será nuestro /boot
.
# mkfs.fat -F32 /dev/sda1
Cree el contenedor cifrado LUKS.
# cryptsetup luksFormat /dev/sda2
Ingrese su contraseña dos veces. ¡No olvides esto!
Abra el contenedor creado y asígnele el nombre que desee. En esta guía solo usaré cryptlvm
.
# cryptsetup open --type luks /dev/sda2 cryptlvm
Ingrese su frase de contraseña y verifíquela.
El contenedor descifrado ahora está disponible en /dev/mapper/cryptlvm
.
Cree un volumen físico encima del contenedor LUKS abierto:
# pvcreate /dev/mapper/cryptlvm
Crea el grupo de volúmenes y llámalo volume
(o como quieras), añadiéndole el volumen físico creado previamente:
En esta guía, usaré volume
como nombre del grupo de volúmenes.
# vgcreate volume /dev/mapper/cryptlvm
Cree todos los volúmenes lógicos necesarios en el grupo de volúmenes. Crearemos volúmenes lógicos root
y home
. Tenga en cuenta que el volume
es el nombre del volumen que acabamos de crear.
Crea nuestra root
. En esta guía, usaré 100 GB.
# lvcreate -L 100G volume -n root
Esto creará /dev/mapper/volume-root
.
Crea nuestro hogar dulce home
. Simplemente le asignaré el espacio restante.
# lvcreate -l 100%FREE volume -n home
Esto creará /dev/mapper/volume-home
.
Formatee las particiones lógicas en el volumen LVM.
Formatee nuestras particiones root
y home
.
# mkfs.ext4 /dev/mapper/volume-root
# mkfs.ext4 /dev/mapper/volume-home
Monte la partición /dev/sda
en /mnt
. Este es nuestro /
:
# mount /dev/sda3 /mnt
Cree un punto de montaje /boot
:
# mkdir /mnt/boot
Monte /dev/sda1
en la partición /mnt/boot
. Este será nuestro /boot
:
# mount /dev/sda1 /mnt/boot
Cree un punto de montaje /home
:
# mkdir /mnt/home
Monte /dev/sda4
en la partición /mnt/home
. Este será nuestro /home
:
# mount /dev/sda1 /mnt/home
Monte la partición /dev/mapper/volume-root
en /mnt
. Este es nuestro /
:
# mount /dev/mapper/volume-root /mnt
Cree un punto de montaje /boot
:
# mkdir /mnt/boot
Monte /dev/sda1
en la partición /mnt/boot
. Este será nuestro /boot
:
# mount /dev/sda1 /mnt/boot
Cree un punto de montaje /home
:
# mkdir /mnt/home
Monte /dev/mapper/volume-home
en la partición /mnt/home
. Este será nuestro /home
:
# mount /dev/mapper/volume-home /mnt/home
No necesitamos montar swap
porque ya está habilitado.
Ahora sigamos adelante e instalemos los paquetes base
, linux
, linux-firmware
y base-devel
en nuestro sistema.
# pacstrap /mnt base base-devel linux linux-zen linux-firmware
Instalaré linux-zen
ya que tiene módulos necesarios para jugar.
El paquete base
no incluye todas las herramientas de la instalación en vivo, por lo que puede ser necesario instalar otros paquetes para un sistema base completamente funcional. En particular, considere instalar:
software necesario para la creación de redes,
dhcpcd
: demonio cliente DHCP compatible con RFC2131iwd
: demonio inalámbrico de Internetinetutils
: una colección de programas de red comunesiputils
: herramientas de monitoreo de red, incluido ping
utilidades para acceder a particiones RAID
o LVM
,
lvm2
: utilidades de Logical Volume Manager 2 ( si está configurando un sistema de archivos cifrado con LUKS/LVM, inclúyalo en pacstrap )Zram
zram-generator
un editor de texto,
nano
vim
vi
paquetes para acceder a la documentación en páginas man e info,
man-db
man-pages
Microcódigo
intel-ucode
/ amd-ucode
herramientas:
git
: el rápido sistema de control de versiones distribuidotmux
: un multiplexor de terminalless
: un programa basado en terminal para ver archivos de textousbutils
: Utilidades del dispositivo USBbash-completion
: finalización programable para el shell bashutilidades de espacio de usuario para la gestión de sistemas de archivos que se utilizarán en el sistema,
ntfs-3g
: controlador y utilidades del sistema de archivos NTFSunrar
: El programa de descompresión RAR.unzip
: para extraer y ver archivos en archivos .zip
p7zip
: archivador de archivos de línea de comandos con alta relación de compresiónunarchiver
: unar
y lsar
: herramientas Objective-C para descomprimir archivos comprimidosgvfs-mtp
: Implementación del sistema de archivos virtual para GIO
(backend MTP
; Android, reproductor multimedia)libmtp
: implementación de biblioteca del protocolo de transferencia de mediosandroid-udev
: reglas de Udev para conectar dispositivos Android a su sistema Linuxmtpfs
: un sistema de archivos FUSE que admite lectura y escritura desde cualquier dispositivo MTPxdg-user-dirs
: administra directorios de usuarios como ~/Desktop
y ~/Music
Estas herramientas serán útiles más adelante. Entonces, futuro yo , instálalos.
# genfstab -U /mnt >> /mnt/etc/fstab
Verifique el archivo /mnt/etc/fstab
resultante y edítelo en caso de errores.
Ahora, cambie la raíz al sistema recién instalado.
# arch-chroot /mnt /bin/bash
Puede encontrar una selección de zonas horarias en /usr/share/zoneinfo/
. Como estoy en Filipinas, usaré /usr/share/zoneinfo/Asia/Manila
. Seleccione la zona horaria adecuada para su país:
# ln -sf /usr/share/zoneinfo/Asia/Manila /etc/localtime
Ejecute hwclock
para generar /etc/adjtime
:
# hwclock --systohc
Este comando supone que el reloj del hardware está configurado en UTC.
La locale
define qué idioma utiliza el sistema y otras consideraciones regionales, como la denominación de la moneda, la numerología y los conjuntos de caracteres. Los valores posibles se enumeran en /etc/locale.gen
. Descomente en_US.UTF-8
, así como otras localizaciones necesarias.
Descomente en_US.UTF-8 UTF-8
y otras configuraciones regionales necesarias en /etc/locale.gen
, guárdelas y generelas con:
# locale-gen
Cree el archivo locale.conf
y configure la variable LANG en consecuencia:
# locale > /etc/locale.conf
Si configuró la distribución del teclado anteriormente, haga que los cambios sean persistentes en vconsole.conf
:
# echo "KEYMAP=us" > /etc/vconsole.conf
¿No estás usando us
diseño? Reemplázalo, estúpido.
Cree el archivo de nombre de host. En esta guía solo usaré MYHOSTNAME
como nombre de host. Nombre de host es el nombre de host del host. Cada 60 segundos pasa un minuto en África.
# echo "MYHOSTNAME" > /etc/hostname
Abra /etc/hosts
para agregar entradas coincidentes a hosts
:
127.0.0.1 localhost
::1 localhost
127.0.1.1 MYHOSTNAME.localdomain MYHOSTNAME
Si el sistema tiene una dirección IP permanente, se debe utilizar en lugar de 127.0.1.1
.
Por lo general, no es necesario crear un nuevo initramfs, porque mkinitcpio se ejecutó durante la instalación del paquete del kernel con pacstrap. ¡Esto es importante si está configurando un sistema con cifrado!
```
# mkinitcpio -P
```
DO NOT FORGET TO RUN THIS BEFORE REBOOTING YOUR SYSTEM!
Abra /etc/mkinitcpio.conf
con un editor:
En esta guía, hay dos formas de configurar initramfs, udev
(predeterminado) y systemd
. Si planea utilizar plymouth
(splashcreen), es recomendable utilizar un initramfs basado en systemd
.
initramfs basado en udev (predeterminado).
Busque la matriz HOOKS
y luego cámbiela a algo como esto:
HOOKS=(base udev autodetect keyboard modconf block encrypt lvm2 filesystems fsck)
initramfs basado en systemd.
Busque la matriz HOOKS
y luego cámbiela a algo como esto:
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck)
Regenerar la imagen de initramfs:
# mkinitcpio -P
¡NO OLVIDES EJECUTAR ESTO ANTES DE REINICIAR TU SISTEMA!
# dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
Establecer los permisos correctos
# chmod 0600 /swapfile
Después de crear el archivo del tamaño correcto, formatéelo para intercambiar:
# mkswap -U clear /swapfile
Activar el archivo de intercambio
# swapon /swapfile
Finalmente, edite la configuración de fstab para agregar una entrada para el archivo de intercambio en /etc/fstab
:
/swapfile none swap defaults,pri=10 0 0
# pacman -S zram-generator
¡Creemos un archivo de configuración en /etc/systemd/zram-generator.conf !
Prefiero tener la MITAD de mi RAM TOTAL como tamaño zswap. Mi computadora portátil tiene 4 núcleos, así que la distribuiré a CUATRO dispositivos zram. Entonces usaré esta configuración:
[zram0]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram1]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram2]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram3]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
No es necesario habilitar/iniciar nada, ¡inicializará automáticamente los dispositivos zram! Simplemente reinicie y ejecute swapon -s
para verificar el intercambio que tiene.
multilib
y AUR
Habilite los repositorios multilib y AUR en /etc/pacman.conf
. Ábrelo con el editor de tu elección:
Descomente multilib
(elimine # del principio de las líneas). Debería verse así:
[multilib]
Include = /etc/pacman.d/mirrorlist
Agregue las siguientes líneas al final de su /etc/pacman.conf
para habilitar el repositorio AUR:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
pacman
Puedes habilitar los "huevos de pascua" y los extras en pacman
, el administrador de paquetes de archlinux.
Abra /etc/pacman.conf
y luego busque # Misc options
.
Para agregar colores a pacman
, descomente Color
. Luego agregue Pac-Man
a pacman
agregando ILoveCandy
debajo de la cadena Color
. Para habilitar las descargas paralelas, descomentelo también:
Color
ILoveCandy
ParallelDownloads = 3
Para comprobar si agregó correctamente los repositorios y habilitó los huevos de pascua, ejecute:
# pacman -Syu
Si la actualización arroja un error, abra pacman.conf
nuevamente y verifique si hay errores humanos. Sí, la cagaste a lo grande.
Establezca la contraseña root
:
# passwd
Agregue una nueva cuenta de usuario. En esta guía, usaré MYUSERNAME
como nombre de usuario del nuevo usuario además de la cuenta root
. (Mi redacción parece redundante, ¿eh?) Por supuesto, cambie el nombre de usuario del ejemplo por el suyo propio:
# useradd -m -g users -G wheel,storage,power,video,audio,rfkill,input -s /bin/bash MYUSERNAME
Esto creará un nuevo usuario y su carpeta home
.
Establezca la contraseña del usuario MYUSERNAME
:
# passwd MYUSERNAME
Si desea un privilegio de root en el futuro mediante el uso del comando sudo
, debe otorgarlo usted mismo:
# EDITOR=vim visudo
Descomentar la línea (Eliminar #):
# %wheel ALL=(ALL) ALL
Sí, aquí es donde instalamos el gestor de arranque. Usaremos systemd-boot
, por lo que no necesitamos grub2
.
Instalar el gestor de arranque:
Lo instalaremos en el punto de montaje /boot
(partición /dev/sda1
).
# bootctl --path=/boot install
Cree una entrada de inicio /boot/loader/entries/arch.conf
y luego agregue estas líneas:
```
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda3 rw
```
If your `/` is not in `/dev/sda3`, make sure to change it.
Save and exit.
¿Recuerda los dos tipos de initramfs anteriores? Cada tipo necesita parámetros de kernel específicos. Aquí también hay dos tipos de entradas. Recuerde que volume
es el nombre del grupo de volúmenes y /dev/mapper/volume-root
es la ruta a /
.
initramfs basado en udev
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=/DEV/SDA2/UUID/HERE:volume root=/dev/mapper/volume-root rw
Reemplace /DEV/SDA2/UUID/HERE
con el UUID de su partición LVM
. Puedes comprobarlo ejecutando blkid /dev/sda2
. Tenga en cuenta que plymouth no admite el parámetro cryptdevice
por lo que es recomendable utilizar initramfs basado en systemd si planea utilizarlo.
Consejo: Si estás usando vim
, puedes escribir el UUID más fácilmente escribiendo :read ! blkid /dev/sda2
y luego presione enter. Luego manipule la salida usando el modo visual.
initramfs basado en systemd
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=/DEV/SDA2/UUID/HERE=volume root=/dev/mapper/volume-root rw
Reemplace /DEV/SDA2/UUID/HERE
con el UUID de su partición LVM
. Puedes comprobarlo ejecutando blkid /dev/sda2
.
Consejo: Si estás usando vim
, puedes escribir el UUID más fácilmente escribiendo :read ! blkid /dev/sda2
y luego presione enter. Luego manipule la salida usando el modo visual.
Actualizar la configuración del gestor de arranque
# vim /boot/loader/loader.conf
Elimine todo su contenido y luego reemplácelo por:
default arch.conf
timeout 0
console-mode max
editor no
Los fabricantes de procesadores publican actualizaciones de estabilidad y seguridad para el microcódigo del procesador. Estas actualizaciones proporcionan correcciones de errores que pueden ser fundamentales para la estabilidad de su sistema. Sin ellos, es posible que experimente fallos falsos o paradas inesperadas del sistema que pueden ser difíciles de localizar.
Si no lo instaló usando pacstrap, instale el microcódigo de la siguiente manera:
Para procesadores AMD:
# pacman -S amd-ucode
Para procesadores Intel:
# pacman -S intel-ucode
Si su instalación de Arch está en una unidad extraíble que necesita tener un microcódigo para los procesadores de ambos fabricantes, instale ambos paquetes.
Cargar microcódigo. Para systemd-boot
, use la opción initrd
para cargar el microcódigo, antes del disco ram inicial, de la siguiente manera:
# sudoedit /boot/loader/entries/entry.conf
title Arch Linux
linux /vmlinuz-linux
initrd /CPU_MANUFACTURER-ucode.img
initrd /initramfs-linux.img
...
Reemplace CPU_MANUFACTURER
con amd
o intel
dependiendo de su procesador.
Para habilitar los demonios de red en su próximo reinicio, debe habilitar dhcpcd.service
para una conexión por cable e iwd.service
para una conexión inalámbrica.
# systemctl enable dhcpcd iwd
Salga del entorno chroot escribiendo exit
o presionando Ctrl + d . También puedes desmontar todas las particiones montadas después de esto.
Finalmente, reboot
.
Si tu instalación es un éxito, entonces ¡¡¡sí!!! Si no, deberías empezar a cuestionar tu propia existencia. ¿Están tus padres orgullosos de ti?