El objetivo de este documento es orientar a quien sea que tenga la intención de instalar Arch Linux, por los motivos que sean. Aunque se tienen como prioridad a los nuevos usuarios, se espera que sea de utilidad a cualquiera persona, sin importar su nivel de experiencia. Aunque se ha realizado con las mejores intenciones, los errores y desinformaciones no siempre pueden evitarse. Una disculpa adelantada si esto provoca cualquier inconveniente, ¡las correcciones y recomendaciones son bienvenidas!
La estructura y el flujo de esta guía son de tal forma que, según el autor, proveen una serie de instrucciones naturales para que el resultado final de la instalación y configuración de Arch Linux sea equiparable a lo análogo de cualquier otra distribución o sistema operativo. Al principio de cada sección se ofrecen enlaces a la Wiki y a otros sitios (📌) y, aunque no necesariamente se tratarán de referencias, en la mayoría de los casos dichas entradas ofrecen soporte y una mayor profundización en los temas abordados. También se incluye, según se consideró requerido, una breve descripción de cada apartado y al final se incluyen anotaciones con explicaciones, sugerencias (💡) o advertencias (
Será necesario modificar varios archivos desde la terminal. Es posible usar cualquier editor de texto. Dos populares son nano y vi, aunque si no se tiene experiencia trabajando con ellas se sugiere usar la primera por ser más "amigable". Algunos atajos de teclado relevantes:
- Guardar cambios:
Ctrl + O
- Cerrar archivo:
Ctrl + X
- Buscar texto:
Ctrl + W
- Cancelar:
Ctrl + C
💡 En caso de cerrar un archivo con cambios no guardados, nano preguntará si se desea hacerlo antes de salir. Presionar
y
on
, dependiendo de lo que se quiera hacer, seguido deEnter
.
Contrario a la creencia popular, Arch Linux no es considerada una distribución minimalista, al menos no en un sentido general y aunque así pueda parecer si se le compara con alternativas como Ubuntu. Arch pone la simpleza ante todo (sigue el principio KISS), pero no busca mantener llevar el sistema al mínimo (esto queda a la disposición del usuario) y algunos paquetes que forman parte de su base no pueden ser considerados minimalistas (como systemd).
Al contener una gran cantidad de entradas en forma de guías, explicaciones y resolución de problemas para una considerable cantidad de casos, la Wiki de Arch Linux es considerada como uno de los logros de la distribución y por tanto se recomienda tomarla como primera fuente de información (además de las tradicionales páginas del manual o man pages). Si bien la mayoría de las secciones están traducidas al español y otro gran número de idiomas, las versiones en inglés suelen ser más amplias o precisas y se actualizan con mayor frecuencia.
Si es la primera vez que se instala Arch Linux, no copiar las instrucciones tal y como aparecen. Las secciones dentro de cuadros como este ejemplo
denotan comandos o texto que debe ingresarse en la terminal y no en todos los casos todo el texto mostrado debe teclearse. ¡Atención!
📌 Installation guide (guía oficial)
⚠️ En la actualidad, Arch Linux está soportada única y oficialmente para la arquitectura x86_64 (equipos de 64 bits). Existen derivados para sistemas de 32 bits, ARM, entre otros, pero son mantenidos por terceros. Aunque las instrucciones aquí presentadas podrían aplicar para dichos proyectos, no se garantiza que así sea.
📌 Persistent block device naming
📌 dd
- Aplicación gráfica: Etcher
- Desde la terminal:
dd bs=4M if=archlinux-20XX.XX.XX-x86_64.iso of=/dev/sdX status=progress oflag=sync
⚠ Se perderá todo el contenido de la unidad seleccionada.
💡 Una unidad de 1 GiB es suficiente.
💡
/dev/sdX
es el dispositivo USB. Para verificar que se trata del dispositivo deseado, se puede utilizar el comandolsblk
.💡 Se recomienda verificar la integridad de la imagen descargada para asegurarse que se trata de un archivo íntegro y legítimo. Más información en la Wiki de Manjaro.
⚠ Si bien
dd
es una aplicación portable y disponible para varios sistemas operativos, no todos distribuyen la misma implementación o cuentan con versiones obsoletas. Se asegura el funcionamiento para distribuciones modernas.
Por defecto se usa la distribución americana (us
). Para elegir la de América Latina:
loadkeys la-latin1
💡 Para listar las distribuciones disponibles, correr
ls /usr/share/kbd/keymaps/**/*.map.gz
Ejecutar wifi-menu
y seleccionar la red deseada.
Reflector es un script que es capaz de obtener la lista más reciente de mirrors desde la página MirrorStatus, filtrar los mirrors más actualizados, ordenarlos en base a su velocidad, y sobrescribir el archivo /etc/pacman.d/mirrorlist
.
El primer paso es instalarlo con pacman -Sy reflector
y ejecutar el siguiente comando:
reflector --protocol http --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist
Lo anterior creará una lista de los 30 mirrors mejor calificados, lo cual puede reducir el tiempo de descarga de los paquetes a instalar en el nuevo sistema.
📌 File system hierarchy overview
📌 Swap
Particionado se refiere a la división de los sectores en un medio de almacenamiento y pueden ser de cualquier tamaño (limitadas por la capacidad del medio).
En términos simples, un sistema cifrado es aquel cuyos componentes no pueden ser accedidos sin antes ingresar una contraseña (u otro método de autenticación). Todos los sistemas operativos actuales, incluyendo los de dispositivos móviles, cuentan con medios para conseguir esta tarea. A pesar de que añade una fuerte capa de protección al equipo, hay tanto ventajas como desventajas y no siempre puede ser necesario o conveniente implementarlo, priorizando en su lugar la protección física del hardware.
- Asignar el espacio a cada partición:
cgdisk /dev/sdX
- 100 MiB para la partición EFI (código
ef00
) - 250 MiB para la partición de arranque (código
8300
) - El resto del espacio disponible para el sistema raíz (código
8300
)
⚠ Verificar que se esté usando el dispositivo correcto.
⚠ Se perderá todo el contenido de los espacios del disco modificados.
⚠️ Sicgdisk
solicita elegir una tabla de particiones ("partition table"), elegirGPT
.⚠ Lo anterior asume que no se instalarán varias versiones del kernel. En caso contrario, podría ser necesario asignar un mayor espacio a la partición de arranque.
-
Crear el espacio cifrado:
cryptsetup -c aes-xts-plain64 -y --use-random luksFormat /dev/sdX3 cryptsetup luksOpen /dev/sdX3 luks # Accede al volumen creado
💡
luks
es el nombre del volumen y, aunque puede ser cualquier término, se sugiere usar algo descriptivo para referencias futuras. -
Crear las particiones dentro del volumen recién creado:
pvcreate /dev/mapper/luks # Inicializa el "volumen físico" (physical volume) vgcreate vg0 /dev/mapper/luks # Crea un "grupo" (group volume) lvcreate --size 8G vg0 --name swap # Crea el volumen lógico (logic volume) para Swap lvcreate -l +100%FREE vg0 --name root # Y el del sistema raíz
💡 El nombre del grupo (
vg0
) y los de los volúmenes lógicos (swap
yroot
) son arbitrarios, pero, como en el caso del volumen cifrado, se recomienda usar términos descriptivos.💡 El tercer comando crea el volumen lógico para Swap y
8G
designa el tamaño requerido. Tradicionalmente se sugiere asignar a este espacio la misma cantidad de RAM instalada, pero para sistemas de "gran tamaño" en memoria puede no ser necesario (o, según el uso que tendrá el sistema, puede ser que ni siquiera se necesite Swap). Si el espacio en disco es limitado (como en unidades SSD) o se cuenta con la suficiente cantidad RAM, se puede usar la mitad de esta.
cgdisk /dev/sdX
- 100 MiB para la partición EFI (código
ef00
) - 250 MiB para la partición de arranque (código
8300
) - La mitad de la RAM instalada para Swap (código
8200
) - El espacio restante para el sistema raíz (código
8300
)
💡 Aunque no es obligatorio tener una partición dedicada para el arranque, puede ser recomendado si se usará un esquema de particionado distinto (como
/var
o/home
en particiones exclusivas) o si el sistema raíz usará sistemas de archivos "alternativos" como XFS o BtrFS. Si ninguna de las situaciones aplica, se puede omitir la creación de la segunda partición.
mkfs.vfat -F32 /dev/sdX1 # Partición EFI
mkfs.ext3 /dev/sdX2 # Partición de arranque
mkfs.ext4 /dev/mapper/vg0-root # Sistema raíz
mkswap /dev/mapper/vg0-swap # Swap
⚠ Verificar los nombres y números de las unidades.
mkfs.vfat -F32 /dev/sdX1 # Partición EFI
mkfs.ext3 /dev/sdX2 # Partición de arranque, en caso de ser necesario
mkswap /dev/sdX3 # Swap
mkfs.ext4 /dev/sdX4 # Sistema raíz
⚠ Verificar los números de las particiones.
💡 Ext4 es el sistema de archivos más usado y está optimizado para el uso general. Otras opciones interesantes son XFS y BtrFS.
mount /dev/mapper/vg0-root /mnt # /mnt será el sistema raíz (/) de la nueva instalación
swapon /dev/mapper/vg0-swap # Activa Swap
mkdir /mnt/boot # Crea el directorio para /boot
mount /dev/sdX2 /mnt/boot # Monta la partición de arranque
mkdir /mnt/boot/efi # Crea el directorio para los archivos EFI
mount /dev/sdX1 /mnt/boot/efi # Monta la partición EFI
mount /dev/sdX4 /mnt # /mnt será el sistema raíz (/) de la nueva instalación
swapon /dev/sdX3 # Activa Swap
mkdir /mnt/boot # Crea el directorio para /boot si se usa una partición dedicada
mount /dev/sdX2 /mnt/boot # Monta la partición de arranque
mkdir /mnt/boot/efi # Crea el directorio para los archivos EFI
mount /dev/sdX1 /mnt/boot/efi # Monta la partición EFI
pacstrap
es un script que toma como parámetros el punto de montaje del sistema raíz (/mnt
) y los paquetes a descargar e instalar en dicho directorio.
pacstrap /mnt base base-devel grub git efibootmgr dialog wpa_supplicant nano linux linux-headers linux-firmware mkinitpcio
💡 Además de la base de Arch, esto instala el gestor de arranque, los componentes básicos para la creación de paquetes y las herramientas necesarias para hacer uso de
wifi-menu
en el nuevo sistema.💡 Aunque es posible instalar tantos paquetes como se requieran, se sugiere apegarse a lo básico e instalar y configurar el resto después de haber reiniciado el equipo y haber accedido a él exitosamente.
💡 Si se está instalando Arch Linux junto a Windows, también instalar los paquetes
os-prober
yntfs-3g
para la correcta detección del segundo.
📌 fstab
genfstab -pU /mnt > /mnt/etc/fstab
Esto crea el archivo /mnt/etc/fstab
, el cual contiene las instrucciones necesarias para que el sistema monte al arrancar las particiones actualmente montadas a partir de /mnt
.
💡 Si se está instalando en una unidad de estado sólido (SSD), modificar el archivo
/mnt/etc/fstab
y cambiar el parámetrorelatime
pornoatime
excepto en la partición de arranque. Esto reduce la escritura en el sistema de archivos.💡 Si el sistema raíz se formateó con Ext4, agregar
commit=60
después derelatime
(onoatime
) en la línea correspondiente. Por ejemplo:UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / ext4 defaults,noatime,commit=60 0 1💡 En
/etc/fstab
también es posible establecer el montaje automático de particiones, servidores remotos y otros medios de almacenamiento, facilitando el acceso a estas ubicaciones o permitiendo automatizar otras tareas. Se recomienda leer la entrada correspondiente.
📌 chroot
arch-chroot /mnt /bin/bash
💡
arch-chroot
es un script que automatiza lo que se conoce como "jaula chroot" (chroot jail).
ln -s /usr/share/zoneinfo/America/Mexico_City /etc/localtime
hwclock --systohc --utc
💡 Lo anterior ajusta la zona horaria del sistema a la del Centro de México, modificar según sea necesario.
echo MYHOSTNAME > /etc/hostname
💡 El nombre es arbitrario y será como las redes "verán" al equipo.
📌 Locale
Modificar el archivo /etc/locale.gen
y descomentar (remover #
) el o los idiomas que se quieran instalar. Después de haber guardado el archivo, ejecutar:
locale-gen
echo LANG=es_MX.UTF-8 >> /etc/locale.conf
echo LANGUAGE=es_MX >> /etc/locale.conf
💡 Las últimas dos líneas definen el idioma que el sistema usará por defecto para las traducciones de los mensajes e interfaces.
Crear el archivo /etc/vconsole.conf
y añadir la línea KEYMAP=la-latin1
(según la distribución deseada).
📌 File permissions and attributes
📌 Sudo
-
Para establecer la contraseña del usuario
root
, correrpasswd
. -
Si en este punto se desean crear usuarios normales, usar:
useradd -m -g users -G wheel -s /bin/bash USUARIO
-
Establecer la contraseña para el usuario recién creado:
passwd USUARIO
-
Para permitir que los usuarios dentro del grupo
wheel
puedan usar el comandosudo
(y obtener temporalmente privilegios de administración), modificar el archivo/etc/sudoers
y descomentar la línea:# %wheel ALL=(ALL) ALL
⚠️ passwd
no muestra los caracteres tecleados y es necesario ingresar la contraseña establecida dos veces.💡 Aunque el nombre de usuario puede estar compuesto por prácticamente cualquier cadena de caracteres (letras [mayúsculas y minúsculas], números, puntos [ . ], guiones [ - ] y guiones bajos [ _ ]), por simplicidad y conveniencia es recomendable limitarse a letras en minúsculas.
💡 Las opciones sugeridas para
useradd
, son para crear el directorio del usuario (-m
), añadir a este al grupo primario (-g
, en este caso lo agrega al grupousers
), al grupo secundario (-G
y en este ejemplo se añade al grupowheel
, que es necesario para que el usuario pueda correr comandos consudo
, aunque si no se le pretenden proporcionar permisos de administrador, esta opción puede omitirse), el emulador de terminal a usar por defecto (-s /bin/bash
) y el nombre que tendrá el usuario (así como su directorio personal).
Un sistema GNU/Linux arranca con lo que se conoce como una "imagen de disco RAM inicial" (initrd o initramfs), un sistema de ficheros temporal con las configuraciones necesarias para montar el sistema real y cargar el resto de los componentes. En Arch Linux, esto se ajusta en el archivo /etc/mkinitcpio.conf
.
- Añadir a la línea
MODULES=(...)
el modulo correspondiente al sistema de archivos (o varios) del sistema creado. Por ejemplo,MODULES=(ext4)
si se usó dicho sistema de ficheros. - La imagen de disco generalmente es un archivo comprimido y se almacena en
/boot
, una por cada versión del kernel instalada. En caso de que dicho punto de montaje se encuentre en una partición limitada, puede convenir cambiar el nivel de compresión, aunque puede impactar en el tiempo de arranque (entre más comprimido esté, tomará más tiempo para extraer)
Si se optó por cifrar el sistema, además se deben agregar encrypt
y lvm2
en la línea HOOKS=(...)
, de lo contrario el sistema no podrá montarse:
HOOKS=(base udev autodetect modconf block encrypt lvm2 keyboard fsck)
Cuando no hayan más ajustes por realizar, ejecutar mkinitcpio -p linux
para regenerar la initrd.
💡 También es posible ajustar otras opciones como el nivel de compresión de las imágenes creadas, pero estas pueden considerarse "avanzadas" y es preferible modificarlas una vez comprendidas.
📌 GRUB
El gestor de arranque se encarga de decirle al equipo qué sistema se iniciará. Aunque hay varios disponibles, GRUB es posiblemente el más popular. Soporta diversas funciones y es especialmente útil al manejar varias instalaciones (como al instalar una distribución GNU/Linux junto a otros sistemas operativos) y, al ser ampliamente usado, la posible resolución de problemas no debería de suponer un gran reto. Para generar los componentes necesarios en /boot
, ejecutar:
grub-install /dev/sdX
Para un sistema cifrado, si no se reportaron errores, es necesario modificar el archivo /etc/default/grub
y, en la línea GRUB_CMDLINE_LINUX
, agregar cryptdevice=/dev/sdX4:luks:allow-discards
(modificar según la partición en la que se creó el volumen cifrado).
Al guardar los cambios, correr grub-mkconfig -o /boot/grub/grub.cfg
.
💡 Modificando
/etc/default/grub
se pueden hacer otros cambios como:
- Reducir el tiempo de espera al listar los sistemas detectados.
- Elegir un tema visual para GRUB.
- Establecer la resolución de la pantalla desde el arranque inicial.
- Lograr un "arranque silencioso" (reducir los mensajes mostrados al mínimo), modificando la línea:
GRUB_CMDLINE_LINUX_DEFAULT="audit=0 quiet loglevel=3 rd.udev.log_priority=3 udev.log_priority=3 vt.global_cursor_default=0"
💡 Si se hará uso de la hibernación del sistema, es necesario especificar la partición que contiene Swap, añadiendo
resume=[PARTICIÓN]
en la líneaGRUB_CMDLINE_LINUX
(según esta guía,resume=/dev/mapper/vg0-swap
oresume=/dev/sdX3
). Más información en la Wiki.
Si no se detectaron errores y se hicieron los ajustes planeados, es momento de iniciar el sistema instalado:
exit # sale de la jaula chroot
umount -R /mnt # desmonta todas las particiones montadas a partir de /mnt
swapoff -a # desactiva Swap
reboot # reinicia el sistema
Cuando el equipo se apague y esté por arrancar de nuevo, es posible (y recomendado) remover la unidad USB con la imagen de instalación. Si todos los pasos anteriores fueron un éxito, la pantalla de GRUB debería de aparecer para seleccionar el sistema que acaba de crearse. ¡Felicitaciones, Arch Linux está lista para usarse!
Después de haber seleccionado el sistema a iniciar en GRUB y habiendo finalizado el arranque, una pantalla de bienvenida solicitando el nombre de un usuario debería de estar presente: el resultado de los pasos anteriores. A partir de este "esqueleto" sigue armar Arch Linux según las necesidades y preferencias personales.
Sin importar el método elegido para la creación del medio de instalación, posiblemente se requiera recuperar el espacio ocupado para darle otros usos al dispositivo. Al intentar acceder a la unidad, podría parecer que la capacidad máxima ha sido reducida, cuando en realidad lo mostrado se trataría únicamente de la partición detectada.
En caso de que se quiera hacer en el sistema recién instalado, basta con conectar la unidad y tener disponibles permisos de administración (acceder como root
o que el usuario activo sea capaz de ejecutar comandos con sudo
). En caso de hacerse en otro equipo con una interfaz gráfica disponible, abrir un emulador de terminal y proceder normalmente.
- Ejecutar
fdisk /dev/sdX
, en donde/dev/sdX
es el dispositivo extraíble que se desea restaurar (si se desconoce el nombre de la unidad o no se tiene certeza, utilizarlsblk
ofdisk -l
). - La interfaz de
fdisk
es simple y solicita la interacción del usuario por medio de comandos, cada uno asignado a una tecla específica que debe ingresarse y presionarEnter
. Lo siguiente es borrar la(s) partición(es) con el comandod
hasta que aparezca el mensajeNo partition is defined yet!
. - Crear una nueva partición con
n
. - Aceptar las siguientes preguntas presionando
Enter
cuando aparezcan. - Usar
w
para guardar los cambios. - Correr
mkfs.vfat -F32 /dev/sdX1
para formatear la partición creada con FAT32.
💡 Aunque hay una gran variedad de alternativas, tanto gráficas (por ejemplo, KDE Partition Manager o GNOME Disks) como en modo de texto (
cgdisk
, entre otras),fdisk
resulta la más práctica para este caso específico al estar disponible en prácticamente cualquier distribución sin necesidad ser instalada explícitamente por el usuario.
- Ejecutar
cmd
oPowerShell
con permisos de administración O presionarWin + R
y correr directamentediskpart.exe
. list disk
select disk X
, en dondeX
es el número de la unidad a limpiar.clean
create partition primary
active
format fs=fat32 quick
exit
- Presionar
Win + R
e ingresardiskmgmt.msc
O buscar "disk management" en el Menú de Inicio. - En la parte inferior de la ventana mostrada, hacer clic derecho sobre la partición en el disco a restaurar, seleccionar Delete volume... y aceptar el diálogo mostrado. Repetir según las particiones existentes.
- Clic derecho sobre el espacio en negro y crear una nueva partición. Se abrirá una nueva ventana en donde podrá especificarse el nombre, el sistema de archivos (FAT32) y la letra de montaje ("F:", por ejemplo).
💡 Como en GNU/Linux, hay distintas herramientas para realizar esta tarea, pero ambas opciones aquí mostradas no requieren la instalación de ningún programa de terceros y pueden ser usadas en cualquier versión de Windows, necesitando solamente el contar con privilegios de administración.
📌 pacman
[TBA]
[TBA]
📌 Xorg
📌 Wayland
📌 AMDGPU
📌 ATI
📌 NVIDIA
📌 Nouveau
📌 PRIME
[TBA]
[TBA]
📌 Fonts
[TBA]
📌 Kernel
[TBA]
Al afinar cualquier sistema, sin importar el tipo del que se trate, se debe considerar el uso primario que tendrá el equipo en cuestión. Para el caso de servidores, generalmente se hacen ajustes para mejorar el rendimiento bruto aprovechando todos los recursos disponibles (procesador, memoria y red), ya sea por la carga que representen las herramientas y plataformas corriendo en la plataforma o la cantidad de entradas y salidas de información.
Sin embargo, en equipos de escritorio no se suele priorizar la ejecución de tareas exigentes, al menos no en ambientes cotidianos o dichos procesos se llevan a cabo en intervalos de tiempo relativamente cortos (como la compilación de programas o la ejecución de videojuegos). Si bien el correcto aprovechamiento de los recursos sigue importando en estos casos, en general múltiples trabajos existen simultáneamente y es en esos momentos cuando pueden presentarse inconvenientes para el usuario.
Lo que debe buscarse no es la mejora del rendimiento, sino de la respuesta del sistema. Lo segundo se refiere a lo que en inglés se conoce como "responsiveness": qué tan "vivo" se siente el sistema; qué tan bien se adapta a la carga que se le impone; un sistema consistente. Si lo anterior no convence, un ejemplo de un sistema no responsivo es aquel que al realizar un trabajo "pesado" (como la transferencia de grandes cantidades de información o la renderización de un video) deja de ser utilizable ("se congela"). Incluso si las tareas que ponen al sistema bajo presión se realizan en poco tiempo, el resto del sistema parece inutilizable (o realmente lo es).
Es en estas situaciones es cuando puede convenir sacrificar algo de rendimiento por un entorno de trabajo más fluido.
Es posible ajustar varios componentes del sistema operativo para intentar mejorar este apartado, pero para el caso de Linux, el método más directo es cambiar algunos parámetros del núcleo que alteran el manejo de la memoria.
En el archivo /etc/sysctl.d/99-sysctl.conf
(la instalación de Arch Linux no crea este fichero):
vm.swappiness = 1
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
# O
vm.dirty_background_bytes = 16777216
vm.dirty_bytes = 50331648
vm.vfs_cache_pressure = 50
vm.min_free_kbytes = 976562
Los valores anteriores aplican para un sistema de 16 GB de RAM y no deben de usarse descuidadamente.
vm.swappiness
Toma valores de 0 a 100, cambiando la frecuencia con la que el sistema "escribe en Swap". Un valor alto implica una mayor actividad, mientras que uno bajo la evita. En equipos con "suficiente memoria", elegir una cifra mínima puede mejorar la respuesta del sistema.vm.dirty_ratio
Se refiere al número de páginas de memoria en las que un proceso que genera escrituras en el almacenamiento comenzará a escribir datos sucios. Toma valores de 0 a 100 y representa el porcentaje de memoria usado para realizar la tarea descrita. Es importante elegir un valor adecuado, ya que en equipos con grandes cantidades de memoria un porcentaje alto puede representar un impacto considerable (por ejemplo, con 16 GB de RAM, 10% equivale a 1.6%).vm.dirty_background_ratio
Es el porcentaje de memoria del sistema que puede llenarse con páginas sucias (páginas de memoria que aún deben escribirse en el disco) antes de que se inicien los procesos de fondo encargados para moverlos al disco. La advertencia del parámetro anterior se extiende a este.vm.vfs_cache_pressure
Controla la frecuencia del kernel a reclamar la memoria que se usa para almacenar durante los trabajos anteriores. El valor por defecto es 100 y reducirlo provoca que la tarea se realice en menor medida (nunca ponerlo en 0).vm.dirty_background_bytes
,vm.dirty_bytes
Son equivalentes opuestos devm.dirty_background_ratio
yvm.dirty_ratio
: cumplen las mismas funciones, pero se establecen en bytes en lugar de porcentajes. Usar únicamente un par de parámetros, ya que si se especifican ambos, el valor opuesto automáticamente se cambiará a 0.vm.min_free_kbytes
Es el espacio de memoria en KiB reservado que evita que el equipo se quede sin este componente. Si se establecen menos de 1024 KiB, el sistema "se llenará" rápidamente, llevando a congelamientos repentinos en caso de cargas elevadas. Establecer un valor demasiado alto dejará al sistema sin memoria disponible. Se recomienda ajustarlo comoram_instalada / nucleos_procesador * 0.05
.
💡 "Datos sucios" se refiere a los datos aún en memoria. Estos pueden ser información que todavía no se transfiere al disco para ser vaciada, regiones en la memoria que han sido modificados y aún no escritos en el disco, páginas que están por transferirse, pero que han cambiado desde que el proceso se inició. Es un fenómeno absolutamente normal que garantiza un buen manejo de memoria, aunque una mala configuración puede conseguir lo opuesto.
💡 Los cambios en
/etc/sysctl.d/*.conf
se verán reflejados en el siguiente reinicio del sistema. Para aplicarlos de inmediato, se puede usar el comandosysctl
como sigue (permisos de administración requeridos):sysctl -w vm.swappiness=1
📌 Zswap
[TBA]
[TBA]
[TBA]
[TBA]