Configuración de Rocky Linux 9#

Note

Configuración en VirtualBox#

Quitar imagen ISO de instalación#

Agregar interfaz host-only#

Configuración del portapapeles y drag and drop#

Configuración de aceleración 3D#

Creación de snapshot#


Configuración de la máquina virtual#

Información del sistema#

Configuración de repositorios#

  • Eleva privilegios utilizando su

    [tonejito@rocky-9 ~]$ su -
    Password:
    [root@rocky-9 ~]#
    
  • Actualiza la lista de paquetes disponibles

    [root@rocky-9 ~]# dnf makecache
        ...
    Metadata cache created.
    

Repositorio EPEL#

  • Instala el paquete epel-release para agregar el repostorio EPEL al sistema.

    [root@rocky-9 ~]# dnf install epel-release
    
        ...
    
    Install  2 Packages
    
    Total download size: 35 k
    Installed size: 38 k
    Is this ok [y/N]: y
    
        ...
    
    Importing GPG key 0x8483C65D:
    Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
    Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
    From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
    Is this ok [y/N]: y
    Key imported successfully
    
        ...
    
    Installed:
    epel-next-release-9-7.el9.noarch            epel-release-9-7.el9.noarch
    
    Complete!
    
  • Actualiza la lista de paquetes disponibles

    [root@rocky-9 ~]# dnf makecache
        ...
    Metadata cache created.
    

Repositorio devel#

  • Habilita el repositorio devel para instalar el paquete network-scripts

    [root@rocky-9 ~]# dnf config-manager --enable devel
    
    [root@alma-linux-9 ~]# dnf -y install almalinux-release-devel
    ...
    
    [root@alma-linux-9 ~]# dnf-config-manager --add-repo https://repo.almalinux.org/almalinux/9/devel/almalinux-devel.repo
    

    Warning

    Rocky Linux 9 no tiene el repositorio devel ni el paquete network-scripts, pero se puede utilizar el RPM de Rocky Linux 9 o Alma Linux 9

    • https://blog.racknerd.com/how-to-install-network-scripts-on-almalinux-9-rockylinux-9-and-centos-stream-9/
  • Actualiza la lista de paquetes disponibles

    [root@rocky-9 ~]# dnf makecache
        ...
    Metadata cache created.
    

Configurar sudo#

  • Eleva privilegios utilizando su

    [tonejito@rocky-9 ~]$ su -
    Password:
    [root@rocky-9 ~]#
    
  • Instala el paquete de sudo

    [root@rocky-9 ~]# dnf install sudo
    Last metadata expiration check: 0:06:35 ago on Tue 22 Feb 2022 01:43:37 AM CST.
    Package sudo-1.8.29-8.el9.x86_64 is already installed.
    
  • Edita el archivo /etc/sudoers

    # visudo
    

    Danger

    • Utiliza únicamente el programa visudo para editar el archivo /etc/sudoers, no lo intentes editar a mano con otro editor común de texto.
    • Si necesitas cambiar el editor, puedes exportar el nombre como variable de entorno: export EDITOR=vim
  • Modifica la línea para no requerir contraseña al ejecutar sudo

    # Allows people in  group wheel to run all commands
    # %wheel	ALL=(ALL)	ALL
    
    ## Same thing without a password
    %wheel	ALL=(ALL)	NOPASSWD:	ALL
    
  • Agrega a tu usuario al grupo wheel para que pueda elevar privilegios

    [root@rocky-9 ~]# usermod -aG wheel tonejito
    
  • Verifica que el usuario esté en el grupo wheel

    [root@rocky-9 ~]# groups tonejito
    tonejito : tonejito wheel
    
  • Reinicia la máquina virtual para aplicar los cambios

    [root@rocky-9 ~]# reboot
        ...
    

Instalar SSH#

  • Instala el servicio de SSH

    [root@rocky-9 ~]# dnf install openssh-server
    Last metadata expiration check: 0:03:25 ago on Tue 22 Feb 2022 01:43:37 AM CST.
    Package openssh-server-8.0p1-12.el9.x86_64 is already installed.
    Dependencies resolved.
    Nothing to do.
    Complete
    
  • Habilita el servicio de SSH

    root@debian-12:~# systemctl enable sshd
    
  • Agrega una regla al firewall de host para permitir el tráfico de entrada SSH

    [root@rocky-9 ~]# firewall-cmd --zone=public --permanent --add-service=ssh
    Warning: ALREADY_ENABLED: ssh
    success
    
    [root@rocky-9 ~]# firewall-cmd --reload
    success
    

Configura la interfaz de red host-only#

  • Revisa que el sistema operativo reconozca la interfaz de red y que esta no se encuentre configurada

    Note

    En este ejemplo, la asignación de interfaces de red es la siguiente:

    • lo: loopback
    • enp0s3: NAT
    • enp0s8: host-only (esta es la interfaz que vas a configurar)
    [root@rocky-9 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:3c:7d:19 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
        valid_lft 83813sec preferred_lft 83813sec
        inet6 fe80::a00:27ff:fe3c:7d19/64 scope link noprefixroute
        valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:2a:29:14 brd ff:ff:ff:ff:ff:ff
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
        link/ether 52:54:00:7b:94:83 brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
        valid_lft forever preferred_lft forever
    
  • Crea el archivo /etc/sysconfig/network-scripts/ifcfg-enp0s8 con el siguiente conetenido

    Note

    • Verifica el nombre de tu interfaz de red
    • Este ejemplo utiliza la interfaz de red enp0s8
    DEVICE=enp0s8
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=no
    NAME=enp0s8
    ONBOOT=yes
    
  • Instala los paquetes de compatibilidad para tener los comandos ifup e ifdown

    [root@rocky-9 ~]# dnf install network-scripts NetworkManager-initscripts-updown
        ...
    

    No existe el paquete network-scripts en Rocky Linux 9,

    Warning

    Rocky Linux 9 no tiene el repositorio devel ni el paquete network-scripts, pero se puede utilizar el RPM de Rocky Linux 9 o Alma Linux 9

    Instalar manualmente las dependencias para network-scripts

    [root@centos-stream-9 ~]# dnf install wget initscripts bc hostname ipcalc iproute kmod
        ...
    

    Descargar alguno de estos RPM e instalarlo

    [root@centos-stream-9 ~]# wget -c -nv https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/n/network-scripts-10.11.8-4.el9.x86_64.rpm
    
    [root@centos-stream-9 ~]# rpm -ivh network-scripts-10.11.8-4.el9.x86_64.rpm
    ...
    
    [root@centos-stream-9 ~]# rm -v network-scripts-10.11.8-4.el9.x86_64.rpm
    ...
    
  • Levanta de manera manual tu interfaz de red

    [root@rocky-9 ~]# ifup enp0s8
    WARN      : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
    WARN      : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
    WARN      : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
    
  • Verifica que la interfaz de red esté configurada

    Note

    En este ejemplo, la asignación de interfaces de red es la siguiente:

    • lo: loopback
    • enp0s3: NAT
    • enp0s8: host-only
    [root@rocky-9 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:3c:7d:19 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
        valid_lft 83693sec preferred_lft 83693sec
        inet6 fe80::a00:27ff:fe3c:7d19/64 scope link noprefixroute
        valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:2a:29:14 brd ff:ff:ff:ff:ff:ff
        inet 172.28.128.8/24 brd 172.28.128.255 scope global dynamic noprefixroute enp0s8
        valid_lft 592sec preferred_lft 592sec
        inet6 fe80::a00:27ff:fe2a:2914/64 scope link
        valid_lft forever preferred_lft forever
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
        link/ether 52:54:00:7b:94:83 brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
        valid_lft forever preferred_lft forever
    

    Note

    Puede que no te aparezca la interfaz de red virbr0

Instalar software#

  • Instala las herramientas de Python en el sistema

    [root@rocky-9 ~]# dnf install python3 python3-devel python3-pip
        ...
    
  • Instala las herramientas de red en el sistema

    [root@rocky-9 ~]# dnf install tcpdump nmap netcat ngrep dsniff wget curl whois bind-utils net-tools iproute iptables iptables-services iputils traceroute ethtool
        ...
    

Instalar wireshark#

  • Instala wireshark utilizando dnf

    [root@rocky-9 ~]# dnf install wireshark wireshark-cli
        ...
    
  • Verifica que exista el grupo de usuarios wireshark

    [root@rocky-9 ~]# getent group wireshark
    wireshark:x:972:
    
  • Agrega tu usuario al grupo wireshark

    [root@rocky-9 ~]# usermod -aG wireshark tonejito
    
  • Verifica que tu usuario pertenezca al grupo

    [root@rocky-9 ~]# groups tonejito
    tonejito : tonejito wheel wireshark
    

Configuración de las herramientas de VirtualBox para Linux#

  • Instala las herramientas de desarrollo para compilar los módulos de kernel

    [root@rocky-9 ~]# dnf groupinstall "Development tools"
        ...
    
    [root@rocky-9 ~]# dnf install make zstd dkms kernel-headers kernel-devel kernel-devel-$(uname -r)
    
  • Inserta la imagen ISO de las utilerías de VirtualBox en la máquina virtual

  • Verifica que la imagen ISO se encuentre montada en /run/media/tonejito/VBox_GAs_7.1.12/ o /media/cdrom

    Warning

    • El nombre de la carpeta puede ser diferente en otras versiones de VirtualBox

    Note

    • Monta la imágen ISO en el directorio si es necesario
    • En este caso tendrás que utilizar el directorio /media/cdrom o similar en lugar del directorio auto-montado en /run/media/tonejito/VBox_GAs_7.1.12

      [root@rocky-9 ~]# mkdir -vp /media/cdrom
      mkdir: created directory '/media/cdrom'
      
      [root@rocky-9 ~]# mount -t iso9660 /dev/cdrom /media/cdrom
      mount: /media/cdrom: WARNING: source write-protected, mounted read-only.
      
    [root@rocky-9 ~]# ls -lA /run/media/tonejito/VBox_GAs_7.1.12/
    total 46923
    dr-xr-xr-x 2 root root      792 Nov 22 09:24 cert
    dr-xr-xr-x 2 root root     1824 Nov 22 09:24 NT3x
    dr-xr-xr-x 2 root root     2652 Nov 22 09:24 OS2
    -r--r--r-- 1 root root      763 Feb 20  2020 AUTORUN.INF
    -r-xr-xr-x 1 root root     6384 Nov 22 09:17 autorun.sh
    -r-xr-xr-x 1 root root     4821 Nov 22 09:17 runasroot.sh
    -r--r--r-- 1 root root      592 Nov 22 09:24 TRANS.TBL
    -r--r--r-- 1 root root  3991991 Nov 22 09:21 VBoxDarwinAdditions.pkg
    -r-xr-xr-x 1 root root     3949 Nov 22 09:16 VBoxDarwinAdditionsUninstall.tool
    -r-xr-xr-x 1 root root  7443891 Nov 22 09:18 VBoxLinuxAdditions.run
    -r--r--r-- 1 root root  9420288 Nov 22 09:10 VBoxSolarisAdditions.pkg
    -r-xr-xr-x 1 root root 16890912 Nov 22 09:21 VBoxWindowsAdditions-amd64.exe
    -r-xr-xr-x 1 root root   270840 Nov 22 09:18 VBoxWindowsAdditions.exe
    -r-xr-xr-x 1 root root  9998128 Nov 22 09:19 VBoxWindowsAdditions-x86.exe
    -r--r--r-- 1 root root      259 Oct  4 10:48 windows11-bypass.reg
    
  • Ejecuta el script de instalación para compilar los módulos de kernel y habilitar los servicios

    [root@rocky-9 ~]# cd /run/media/tonejito/VBox_GAs_7.1.12/
    [root@rocky-9 VBox_GAs_7.1.12]# bash ./VBoxLinuxAdditions.run
    Verifying archive integrity...  100%   MD5 checksums are OK. All good.
    Uncompressing VirtualBox 7.1.12 Guest Additions for Linux ...
    VirtualBox Guest Additions installer
    VirtualBox Guest Additions: Starting.
    VirtualBox Guest Additions: Setting up modules
    VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while.
    VirtualBox Guest Additions: To build modules for other installed kernels, run
    VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
    VirtualBox Guest Additions: or
    VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
    VirtualBox Guest Additions: Building the modules for kernel 5.14.0-570.37.1.el9_6.x86_64.
    
    VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what went wrong
    VirtualBox Guest Additions: reloading kernel modules and services
    VirtualBox Guest Additions: kernel modules were not reloaded
    VirtualBox Guest Additions: kernel modules and services were not reloaded
    The log file /var/log/vboxadd-setup.log may contain further information.
    

    Warning

    • El error que se lanza es por una característica que tiene el kernel de Rocky Linux
      • Este error no debería afectar la funcionalidad de las utilerías de VirtualBox
    • Si aparece un error Kernel headers not found for target kernel actualizar el kernel actual, reiniciar la máquina e intentar de nuevo

      [root@rocky-9 ~]# dnf update kernel kernel-*
      

    Danger

    Si necesitas reintentar la instalación, desinstala las utilerías de VirtualBox, reinicla la máquina e intenta de nuevo

    [root@rocky-9 ~]# /usr/sbin/vbox-uninstall-guest-additions
    ...
    
    [root@rocky-9 ~]# reboot
    
  • Lista los módulos de kernel para revisar que se hayan compilado.

    [root@rocky-9 ~]# ls -l /lib/modules/$(uname -r)/misc/
    total 7972
    -rw-r--r-- 1 root root 3234688 Sep  8 22:52 vboxguest.ko
    -rw-r--r-- 1 root root 2154488 Sep  8 22:52 vboxsf.ko
    -rw-r--r-- 1 root root 2770264 Sep  8 22:53 vboxvideo.ko
    

    Note

    No importa que falte el módulo vboxvideo.ko, sólo se utiliza para las siguientes características

    • Redimensionar la pantalla de la máquina virtual para que se ajuste al tamaño de la ventana
    • Soporte drag and drop para copiar archivos entre la máquina física y la virtual y viceversa
  • Reinicia el equipo y verifica que los módulos de kernel se carguen

    Note

    • En este punto ya podrías utilizar las funciones de resolución automática, portapapeles compartido, carpetas compartidas y arrastrar desde y hacia la máquina virtual para copiar archivos.
    [root@rocky-9 ~]# lsmod | egrep -i 'v(irtual)?box'
    [root@rocky-9 ~]# lsmod | grep -i vbox
    vboxsf                 90112  0
    vboxvideo              32768  0
    vboxguest             385024  3 vboxsf
    drm_vram_helper        20480  1 vboxvideo
    drm_ttm_helper         16384  2 drm_vram_helper,vboxvideo
    drm_kms_helper        266240  3 vmwgfx,drm_vram_helper,vboxvideo
    drm                   585728  9 vmwgfx,drm_kms_helper,drm_vram_helper,vboxvideo,drm_ttm_helper,ttm
    

    Warning

    Si no te aparecen los módulos de kernel, intenta compilar para todas las versiones de kernel que tienes y reinicia la máquina

    [root@rocky-9 ~]# /sbin/rcvboxadd quicksetup all
    ...
    

    Note

    Si aún después de reiniciar la máquina no te aparecen los módulos de VirtualBox, intenta forzar la carga desde el directorio /etc/modules-load.d/ y reiniciar la máquina

    [root@rocky-9 ~]# ls -1 /lib/modules/$(uname -r)/misc/ | sed -e 's/.ko//g' > /etc/modules-load.d/99-virtualbox
    
    [root@rocky-9 ~]# dracut --regenerate-all -f
    ...
    
    [root@rocky-9 ~]# reboot
    

Servicios de VirtualBox en la máquina virtual#

Revisa que los servicios de las utilerías de VirtualBox estén iniciados en el sistema después de haber reiniciado la máquina

[root@rocky-9 ~]# systemctl list-units | egrep 'UNIT|v(irtual)?box'
  UNIT                      LOAD   ACTIVE SUB       DESCRIPTION
  vboxadd.service           loaded active exited    vboxadd.service
  vboxadd-service.service   loaded active running   vboxadd-service.service

Warning

Habilitar los servicios en caso de que no esten iniciados, reiniciar la máquina y verificar de nuevo

[root@rocky-9 ~]# systemctl daemon-reload
[root@rocky-9 ~]# systemctl enable vboxadd.service vboxadd-service.service

Revisa el estado del servicio vboxadd.service

[root@rocky-9 ~]# systemctl status --full --no-pager vboxadd.service
● vboxadd.service
     Loaded: loaded (/opt/VBoxGuestAdditions-7.1.12/init/vboxadd; enabled; preset: disabled)
     Active: active (exited) since Fri 2025-09-28 00:01:02 UTC; 1min ago
    Process: 602 ExecStart=/opt/VBoxGuestAdditions-7.1.12/init/vboxadd start (code=exited, status=0/SUCCESS)
   Main PID: 602 (code=exited, status=0/SUCCESS)
        CPU: 1.234s

Sep 28 00:01:02 rocky-9 systemd[1]: Starting vboxadd.service...
Sep 28 00:01:02 rocky-9 vboxadd[602]: VirtualBox Guest Additions: Starting.
Sep 28 00:01:02 rocky-9 systemd[1]: Finished vboxadd.service.

Revisa el estado del servicio vboxadd-service.service

[root@rocky-9 ~]# systemctl status --full --no-pager vboxadd-service.service
● vboxadd-service.service
     Loaded: loaded (/opt/VBoxGuestAdditions-7.1.12/init/vboxadd-service; enabled; preset: disabled)
     Active: active (running) since Fri 2025-09-28 00:01:02 UTC; 1min ago
    Process: 937 ExecStart=/opt/VBoxGuestAdditions-7.1.12/init/vboxadd-service start (code=exited, status=0/SUCCESS)
      Tasks: 9 (limit: 11078)
     Memory: 4.0M
        CPU: 567ms
     CGroup: /system.slice/vboxadd-service.service
             └─123 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.sh

Sep 28 00:01:02 rocky-9 systemd[1]: Starting vboxadd-service.service...
Sep 28 00:01:02 rocky-9 vboxadd-service[937]: vboxadd-service.sh: Starting VirtualBox Guest Addition service.
Sep 28 00:01:02 rocky-9 vboxadd-service.sh[950]: Starting VirtualBox Guest Addition service.
Sep 28 00:01:02 rocky-9 vboxadd-service.sh[978]: VirtualBox Guest Addition service started.
Sep 28 00:01:02 rocky-9 systemd[1]: Started vboxadd-service.service.

Configuración de carpeta compartida con la máquina física#

  • Una vez que las utilerías de VirtualBox se encuentren configuradas en la máquina virtual, puedes compartir carpetas

Note

Para montar la carpeta compartida de manera manual se utiliza este comando

[root@rocky-9 ~]# mkdir -vp /mnt/shared
[root@rocky-9 ~]# mount -t vboxsf Public /mnt/shared

Puedes usar este comando para probar la carpeta compartida, pero las utilerías de VirtualBox deberían montarla de manera «automágica» al reiniciar la máquina virtual.

  • Verifica que la carpeta compartida esté en la ubicación que seleccionaste

    • Puedes crear algunos archivos o directorios y ver que aparezcan en la máquina física y en la virtual

      [root@rocky-9 ~]# mount | grep vbox
      Public on /mnt/shared type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=0,gid=973,dmode=0770,fmode=0770,tag=VBoxAutomounter)
      

    Warning

    • La carpeta compartida se monta de manera predeterminada con privilegios restrictivos
    • Puedes agregar una entrada a /etc/fstab con la información de montaje que está en /etc/mtab y ajustarla con los identificadores uid y gid de tu usuario

Info

  • Cuando hayas terminado de configurar la máquina Rocky Linux, captura la información de los entregables y envíala en un merge request al repositorio de tareas