mirror of
https://gitlab.com/tavo-wasd/blog.git
synced 2025-06-07 06:43:28 -06:00
arch install guide
This commit is contained in:
parent
6a117589f0
commit
6153c5fe9c
1 changed files with 257 additions and 0 deletions
257
content/blog/2024-12-27-arch-install-guide.md
Normal file
257
content/blog/2024-12-27-arch-install-guide.md
Normal file
|
@ -0,0 +1,257 @@
|
||||||
|
---
|
||||||
|
title: "Guía de instalación de archlinux"
|
||||||
|
date: 2024-12-27
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bootear el entorno y preparar el sistema
|
||||||
|
|
||||||
|
En caso de tener un teclado con una disposición distinta a `us`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
localectl list-keymaps # Listar keymaps disponibles
|
||||||
|
loadkeys mi-keymap # Cargar un keymap
|
||||||
|
```
|
||||||
|
|
||||||
|
## Particionar discos
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# listar los discos:
|
||||||
|
# fdisk -l
|
||||||
|
|
||||||
|
fdisk /dev/sdx
|
||||||
|
```
|
||||||
|
|
||||||
|
La configuración mínima para UEFI son dos particiones:
|
||||||
|
|
||||||
|
- Partición que será montada en `/boot` de al menos `1G`
|
||||||
|
- Partición que será montada en `/` de al menos `23G`
|
||||||
|
|
||||||
|
NOTA: En el resto de la guía, se asume que las particiones
|
||||||
|
|
||||||
|
- `sdx1` es la partición EFI que será montada en `/boot`
|
||||||
|
- `sdx2` será montada en `/`
|
||||||
|
|
||||||
|
## Encripción (opcional)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cryptsetup luksFormat /dev/sdx2
|
||||||
|
cryptsetup open /dev/sdx2 cryptlvm
|
||||||
|
```
|
||||||
|
|
||||||
|
Necesitaremos los UUIDs de la partición encriptada y de cryptlvm para más adelante, es buena idea
|
||||||
|
guardarlos:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# El primero es crypto_LUKS y el segundo es la partición root desencriptada
|
||||||
|
lsblk -f | grep 'crypto_LUKS\|cryptlvm' | awk '{print $4}'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Formato
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkfs.ext4 /dev/sdx2
|
||||||
|
mkfs.fat -F 32 /dev/sdx1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Montar
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mount /dev/sdx2 /mnt
|
||||||
|
# mount /dev/mapper/cryptlvm /mnt # <- En caso de usar encripción
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkdir -p /mnt/boot
|
||||||
|
mount /dev/sdx1 /mnt/boot/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pacstrap
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacstrap -K /mnt base linux linux-firmware grub networkmanager efibootmgr
|
||||||
|
|
||||||
|
# No olvidar el editor de texto, por ejemplo vim o nano
|
||||||
|
pacstrap -K /mnt vim
|
||||||
|
|
||||||
|
# pacstrap -K /mnt cryptsetup lvm2 # <- En caso de usar encripción
|
||||||
|
```
|
||||||
|
|
||||||
|
# Configurar el sistema
|
||||||
|
|
||||||
|
```sh
|
||||||
|
genfstab -U /mnt >> /mnt/etc/fstab
|
||||||
|
```
|
||||||
|
|
||||||
|
A partir de ahora, estaremos dentro del sistema que estamos instalando, con el comando:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
arch-chroot /mnt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Locale
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
|
||||||
|
ln -sf /usr/share/zoneinfo/America/Costa_Rica /etc/localtime
|
||||||
|
```
|
||||||
|
|
||||||
|
Luego:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
hwclock --systohc
|
||||||
|
```
|
||||||
|
|
||||||
|
Editar `/etc/locale.gen` y descomentar las locales requeridas, por ejemplo:
|
||||||
|
`#es_CR.UTF-8 UTF-8`
|
||||||
|
|
||||||
|
Luego, generarlas con:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
locale-gen
|
||||||
|
```
|
||||||
|
|
||||||
|
Crear el archivo `/etc/locale.conf` y configurar el lenguaje agregando la línea
|
||||||
|
(o cualquier otra locale de preferencia):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
LANG=es_CR.UTF-8
|
||||||
|
```
|
||||||
|
|
||||||
|
## Redes
|
||||||
|
|
||||||
|
Definir el hostname en `/etc/hostname`, escribiendo por ejemplo: `arch-pc`
|
||||||
|
o el hostname deseado.
|
||||||
|
|
||||||
|
Configurar `/etc/hosts`, una configuración mínima de ejemplo:
|
||||||
|
|
||||||
|
```
|
||||||
|
127.0.0.1 localhost
|
||||||
|
127.0.1.1 arch-pc # (el nombre definido en /etc/hostname)
|
||||||
|
::1 localhost
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
systemctl enable NetworkManager
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usuarios
|
||||||
|
|
||||||
|
```sh
|
||||||
|
useradd -G -m wheel mi-usuario # utilizar el nombre de preferencia
|
||||||
|
passwd mi-usuario # definir la contraseña del usuario
|
||||||
|
```
|
||||||
|
|
||||||
|
Ejecutar `visudo` y descomentar la línea para habilitar a miembros de "wheel" usar "sudo", (o en su
|
||||||
|
defecto, agregarla manualmente):
|
||||||
|
|
||||||
|
```
|
||||||
|
# %wheel ALL=(ALL:ALL) ALL
|
||||||
|
```
|
||||||
|
|
||||||
|
(Opcional) Comprobar que se puede utilizar el comando `sudo` cuando se usa el nuevo
|
||||||
|
usuario:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
su - mi-usuario
|
||||||
|
sudo whoami # debería imprimir: root
|
||||||
|
exit # volver al usuario root
|
||||||
|
```
|
||||||
|
|
||||||
|
(Opcional) Bloquear usuario `root` por seguridad:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
passwd -l # correr como usuario root
|
||||||
|
```
|
||||||
|
|
||||||
|
## Initramfs
|
||||||
|
|
||||||
|
(Opcional, en caso de habilitar encripción) Editar el archivo en
|
||||||
|
`/etc/mkinitcpio.conf` y agregar las siguientes HOOKS:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Asegurarse que estén en este orden y antes de "filesystems" y "fsck"
|
||||||
|
HOOKS=(... encrypt lvm2 ...)
|
||||||
|
```
|
||||||
|
|
||||||
|
Crear un entorno de disco ram inicial
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkinitcpio -P
|
||||||
|
```
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Asumiento que se utiliza GRUB:
|
||||||
|
|
||||||
|
(Opcional, en caso de usar encripción) Modificar esta línea en
|
||||||
|
`/etc/default/grub`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
...
|
||||||
|
# cryptdevice es crypto_LUKS y root es la partición root desencriptada
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="... cryptdevice=UUID=00000000-0000-0000-0000-000000000000:cryptlvm root=UUID=00000000-0000-0000-0000-000000000000"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Generar configuración de GRUB
|
||||||
|
|
||||||
|
```sh
|
||||||
|
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
|
||||||
|
grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
```
|
||||||
|
|
||||||
|
# Post-install
|
||||||
|
|
||||||
|
Salir de `chroot` y reiniciar
|
||||||
|
|
||||||
|
```sh
|
||||||
|
exit
|
||||||
|
reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
Verificar que todo está en orden y proceder a instalar audio, drivers de video,
|
||||||
|
entorno de escritorio, etc.
|
||||||
|
|
||||||
|
## Audio
|
||||||
|
|
||||||
|
Suponiendo un sistema con `pipewire` (el servidor multimedia de preferencia
|
||||||
|
actualmente)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack wireplumber
|
||||||
|
```
|
||||||
|
|
||||||
|
## (Opcional) Nvidia
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -S nvidia nvidia-utils lib32-nvidia-utils
|
||||||
|
```
|
||||||
|
|
||||||
|
Hasta la fecha actual (2024-12-27), es necesario agregar estas opciones para
|
||||||
|
utilizar un chip de nvidia junto con el driver propietario.
|
||||||
|
|
||||||
|
Modificar esta línea en `/etc/default/grub`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
...
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="... nvidia-drm.modeset=1 nvidia_drm.fbdev=0"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Agregar/Modificar esta línea en `/etc/mkinitcpio.conf`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
...
|
||||||
|
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## DE
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pacman -S plasma-meta # Instalar todo el entorno
|
||||||
|
pacman -S plasma-desktop # Instalar la base solamente
|
||||||
|
|
||||||
|
pacman -S gnome gnome-extra # Instalar todo el entorno
|
||||||
|
pacman -S gnome # Instalar la base solamente
|
||||||
|
```
|
Loading…
Reference in a new issue