static-httpd

Sitio web estático (HTML + CSS) que sostiene el blog del autor
Log | Files | Refs

index.html (9912B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      5 <meta name="viewport" content="width=device-width, initial-scale=1" />
      6 <title>Guía de instalación de arch linux base</title>
      7 <link rel="icon" type="image/png" href="/favicon.png" />
      8 <link rel="stylesheet" type="text/css" href="../article.css" />
      9 </head>
     10 <body>
     11 <header>
     12 <p class="title">Guía de instalación de arch linux base</p>
     13 <p class="date">22 de marzo de 2016 • fjbalon</p>
     14 </header>
     15 <p>Adentrándonos en el vasto universo de Unix y GNU/Linux, en especial en su distributismo característico; Arch Linux se presenta como una distro recomendada a usuarios avanzados y con cierto conocimiento técnico dentro del cosmos de Linux. Arch presenta un enfoque minimalista y <i>KISS</i> (<i>Keep It Simple, Stupid</i>) y, en cierto modo, <i>Do It Yourself</i>.</p>
     16 <p>Esta distribución tiene sus raíces en 2002, cuando Judd Vinet la construyó en un enfoque de entorno simple y elegante, permitiendo a sus usarios modelar su sistema de acuerdo a sus necesidades y preferencias. Se trata además de un sistema de actualización <i>rolling release</i>, lo que aporta un mantenimiento continuo sin necesidad de reinstalaciones periódicas; característica que, unida a su gestor de paquetes <emb>pacman</emb> ofrece una experiencia de usuario ágil y, sobretodo, rápida de gestión de las últimas versiones del software.</p>
     17 <p>Realmente, el uso de Arch es muy simple, siendo incluso más simple que distribuciones basadas en Debian (sobretodo, por su gestor de paquetes, que lo hace excesivamente sencillo de utilizar incluso para un novato). Sin embargo, si hay una barrera de entrada para comenzar a usar este sistema operativo no es otra que cosa que la instalación. La instalación del sistema no cuenta con formularios gráficos ni diálogos que guien al usuario; sino simplemente ofrece una sesión de shell y otorga libertad total sobre ella al usuario.</p>
     18 <p>Es por esta razón que he compendiado los pasos que realizó personalmente a la hora de construir mi sistema de Arch.</p>
     19 <p>El inicio es sencillo, el console keymap por defecto es US (inglés americano). Para modificar el diseño, se puede agregar el nombre de layout correspondiente. Por ejemplo, para establecer una distribución de teclado en español utilizo:</p>
     20 <pre><code>loadkeys es</code></pre>
     21 <h2>Verificación de modo de arranque (boot mode)</h2>
     22 <p>En términos simples, la BIOS (Sistema Básico de Entrada/Salida) y UEFI (Interfaz de Firmware Extensible Unificada) son dos tecnologías diferentes utilizadas para iniciar un sistema operativo en una computadora.</p>
     23 <p>La BIOS, que significa Sistema Básico de Entrada/Salida, ha sido la interfaz estándar durante décadas. Se encarga de las operaciones básicas del sistema, incluido el proceso de arranque. Sin embargo, tiene limitaciones en cuanto a la capacidad de manejar discos duros grandes y sistemas operativos modernos.</p>
     24 <p>Por otro lado, UEFI, que significa Interfaz de Firmware Extensible Unificada, es una tecnología más reciente que reemplaza gradualmente a la BIOS. UEFI proporciona una interfaz más avanzada y versátil, permitiendo un arranque más rápido y una mayor capacidad para gestionar hardware y sistemas operativos modernos. Además, UEFI supera las limitaciones de tamaño de disco asociadas con la BIOS.
     25 <p>Para verificar el modo de arranque, bastaría listar el directorio <emb>efivars</emb>:</p>
     26 <pre><code>ls /sys/firmware/efi/efivars</code></pre>
     27 <p>Si la salida muestra el contenido del directorio (stdout) sin error, entonces el sistema de inicio es UEFI. Si por el contrario ofrece error (stderr) debido a que el directorio no existe, entonces el sistema se inicia en modo BIOS (ó CSM).</p> <h2>Conexión a Internet</h2>
     28 <p>Si tenemos comunicación ethernet con salida a Internet, bastaría conectarlo; generalmente el DHCP trabajará solo. De lo contrario será necesario establecer conexión con la red a través de WiFi (siempre que el equipo cuente con el hardware necesario). Utilizaremos <emb>iwctl</emb> para autenticarnos a la red inalámbrica, identificaremos la interfaz de red, escanearemos las conexiones WiFi disponibles y conectaremos con la que identifiquemos por su SSID:</p>
     29 <pre><code>iwctl
     30 [iwd]# device list
     31 [iwd]# station d scan
     32 [iwd]# station d get-networks
     33 [iwd]# station d connect SSID</code></pre>
     34 <h2>Particionado de discos</h2> 
     35 <p>Cuando son reconocidos por el sistema live, los discos son asignados a un dispositivo de bloques como <emb>/dev/sda</emb>, <emb>/dev/nvme0n1</emb> ó <emb>/dev/mmcblk0</emb>. Para identificar estos dispositivos, utilice <emb>lsblk</emb> ó <emb>fdisk</emb>. El siguiente presupondrá la siguiente partición de discos:</p>
     36 <pre><code>boot    /dev/sda1   /boot   150MB   *Bootable
     37 root    /dev/sda2   /       -
     38 home    /dev/sda3   /home   -
     39 swap    /dev/sda4   /swap   2GB     Type: Linux Swap / Solaris</code></pre><h2>Formateo de particiones</h2>
     40 <p>Una vez particionados los discos y sus particiones, éstas deben ser formateadas con un sistema de archivos apropiado.</p>
     41 <pre><code>mkfs.vfat -F32 $boot # UEFI
     42 mkfs.ext2 $boot # BIOS
     43 mkfs.ext4 $root
     44 mkfs.ext4 $home
     45 mkswap $swap
     46 swapon $swap</code></pre><h2>Montaje de sistema de archivos</h2>
     47 <p>El montaje en el directorio /mnt debe comenzar siempre con la raíz: </p>
     48 <pre><code>mount $root /mnt
     49 mkdir -p /mnt/boot/efi && mount $boot /mnt/boot/efi # UEFI
     50 mkdir /mnt/boot && mount $boot /mnt/boot # BIOS
     51 mkdir /mnt/home && mount $home /mnt/home</code></pre>
     52 <h2>Instalación del sistema base</h2>
     53 <p>Los paquetes a instalar se descargarán de los servidores espejo, que se definen en <emb>/etc/pacman.d/mirrorlist</emb>. Cuanto más alto se coloca un espejo en la lista, más prioridad se le da al descargar un paquete; por lo que es posible que desee inspeccionar el archivo para ver si se encuentra en una prioridad deseable. Si no fuera así, edite el archivo en consecuencia y mueva los espejos geográficamente más cercanos a la parte superior de la lista (aunque existen otros criterios).</p>
     54 <p>Use el script pacstrap para instalar el paquete base, el kernel de Linux y el firmware para hardware común: </p>
     55 <pre><code>pacstrap /mnt base linux linux-firmware</code></pre>
     56 <p>Puede sustituir linux por un paquete de kernel de su elección, por supuesto. Tenga en cuenta que el paquete base no incluye todas las herramientas de la instalación en vivo, por lo que la instalación de otros paquetes puede ser necesaria para mantener el sistema base funcional. Como es mi caso, que añado:</p>
     57 <pre><code>pacstrap /mnt base-devel grub networkmanager nano dhcpcd
     58 pacstrap /mnt efibootmgr # UEFI</code></pre>
     59 <h2>Configuración del sistema base</h2>
     60 <p>Generamos el archivo <emb>/etc/fstab</emb>, que contiene los parámetros de configuración de montaje de los distintos sistemas de archivos para el sistema. Puede usar <emb>-U</emb> ó <emb>-L</emb> para definir por UUID o labels, respectivamente). Después, nos enjaularemos en la partición montada en <emb>/mnt</emb> con <emb>chroot</emb>:</p>
     61 <pre><code>genfstab -U -p /mnt >> /mnt/etc/fstab
     62 arch-chroot /mnt</code></pre>
     63 <p>Una vez enjaulados, podemos proceder a realizar parametrizaciones y configuraciones propias del sistema operativo en instalación, como son la zona horario, la localización y el mapa de teclas (keymap):</p>
     64 <pre><code>ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime
     65 echo "LANG=es_ES.UTF-8" >> /etc/locale.conf
     66 echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen
     67 locale-gen
     68 echo "KEYMAP=es" >> /etc/vconsole.conf
     69 hwclock -w</code></pre>
     70 <p>También configuraremos el hostname e instalaremos los paquetes adicionales a través de pacman:</p>
     71 <pre><codeb>echo $hostname >> /etc/hostname
     72 pacman -Sy --noconfirm git tree openssh openvpn gnupg nmap ipcalc pulseaudio pulseaudio-alsa pavucontrol pamixer acpi acpid</codeb></pre>
     73 <h2>Configuración de usuario</h2>
     74 <p>La nueva instalación le dejará sólo con una cuenta de root. Iniciar sesión como root durante períodos prolongados de tiempo o exponerlo a través de SSH en un servidor es altamente inseguro. Por ello, le recomiendo (según sus necesidades) crear y usar una cuenta de usuario sin privilegios, que empleará en la mayoría de las tareas de usuario, dejando la cuenta root para la administración del sistema. Además, añadiremos al grupo <emb>wheel</emb>, grupo al que pertenece el nuevo usuario creado, permisos de sudo.</p>
     75 <pre><code>useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash $username
     76 passwd # clave de root
     77 passwd $username
     78 echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers</code></pre>
     79 <h2>Arch User Repository [AUR]</h2>
     80 <p>Si bien el Sistema de Compilación de Arch (Arch Build System) permite la capacidad de compilar software disponible en los repositorios oficiales, el Repositorio de Usuarios de Arch (Arch User Repository - AUR) es el equivalente para los paquetes enviados por el usuario. Para poder usarlo es necesario un software de gestión de paquetes especializado, como yay:</p>
     81 <pre><code>git clone https://aur.archlinux.org/yay.git
     82 cd yay
     83 makepkg -si
     84 yay -Syu</code></pre>
     85 <h2>Configuración del gestor de arranque (bootloader)</h2>
     86 <p>Elija e instale un gestor de arranque compatible con Linux. En este caso yo uso grub:</p>
     87 <pre><code>grub-install --efi-directory=/boot/efi --bootloader-id='Arch Linux' --target=x86_64-efi # UEFI
     88 grub-install /dev/sda # BIOS
     89 grub-mkconfig -o /boot/grub/grub.cfg</code></pre>
     90 <h2>Initframs</h2>
     91 <p>Por lo general, no es necesario crear un nuevo initramfs, ya que <emb>mkinitcpio</emb> se ejecutó en la instalación del paquete del kernel con pacstrap. Tenga en cuenta que para LVM, cifrado del sistema o RAID será necesario modificar <emb>mkinitcpio.conf</emb> y volver a crear la imagen initramfs.</p>
     92 <pre><code>mkinitcpio -p linux</code></pre>
     93 </body>
     94 </html>