Como crear una unidad de montaje automático con Systemd en Debian 12
¿Que es una unidad de montaje automático en Systemd?
Una unidad de montaje de montaje de systemd es un pequeño servicio que se encarga de montar automáticamente un sistema de archivos cuando iniciamos el sistema operativo.
Requisitos
- Sistema Debian 12 actualizado.
- Privilegios de root o sudo.
- Acceso a internet.
Escenario
La unidad de montaje la crearemos en una máquina virtual con Debian 12, la cual tiene 2 discos duros, uno de 9GB (sistema operativo) y otro de 1GB (disco sin usar).
root@mount-systemd:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 738M 0 rom
vda 254:0 0 9G 0 disk
├─vda1 254:1 0 8G 0 part /
├─vda2 254:2 0 1K 0 part
└─vda5 254:5 0 975M 0 part [SWAP]
vdb 254:16 0 1G 0 disk
└─vdb1 254:17 0 1022M 0 part
Vamos a crear una unidad de montaje para que monte automáticamente el disco de 1GB en la ruta ‘/mnt/vdb1’ cuando iniciemos el sistema operativo.
Creación de la unidad de montaje
Para crear la unidad de montaje, vamos a crear un archivo con extensión ‘.mount’ en el directorio ‘/etc/systemd/system/’.
Nota: El nombre del archivo de la unidad de montaje es muy importante ya que debe tener el mismo nombre que el punto de montaje o dará error.
Voy a poner algunos ejemplos de se nombraría el archivo dependiendo del punto de montaje.
Posible directorio de montaje | nombre del archivo de la unidad |
---|---|
/mnt/vdb1 | mnt-vdb1.mount |
/mnt/smb/usuario | mnt-smb-usuario.mount |
/mnt/proxmox/backup/vm | mnt-proxmox-backup-vm.mount |
/home | home.mount |
/var/logs | var-logs.mount |
Es bastante sencillo, solo hay que poner el nombre del punto de montaje y añadirle la extensión ‘.mount’. Pero si es la primera vez que creas una unidad de montaje puede resultar un poco confuso.
Ahora continuamos con la creación de la unidad de montaje.
root@mount-systemd:~# nano /etc/systemd/system/mnt-vdb1.mount
[Unit]
Description= Montaje de la partición vdb1 en el directorio /mnt/vdb1
Wants=local-fs.target
After=local-fs.target
[Mount]
What=/dev/vdb1
Where=/mnt/vdb1
Type=ext4
[Install]
WantedBy=multi-user.target
- Description: Descripción de la unidad de montaje.
- Wants: Especifica que la unidad de montaje depende de la unidad local-fs.target.
- After: Especifica que la unidad de montaje se inicia después de la unidad local-fs.target.
- What: Especifica el dispositivo que se va a montar.
- Where: Especifica el punto de montaje.
- Type: Especifica el tipo de sistema de archivos.
- WantedBy: Especifica que la unidad de montaje se inicia cuando se inicia el sistema operativo.
Guardamos los cambios y salimos del editor de texto.
Reinicimos el demonio de systemd para que reconozca la nueva unidad de montaje.
root@mount-systemd:~# systemctl daemon-reload
Ahora podemos iniciar la unidad de montaje.
root@mount-systemd:~# systemctl start mnt-vdb1.mount
Comprobamos que el servicio se ha iniciado correctamente.
root@mount-systemd:~# systemctl status mnt-vdb1.mount
● mnt-vdb1.mount - Montaje de la partición vdb1 en el directorio /mnt/vdb1
Loaded: loaded (/proc/self/mountinfo; disabled; preset: enabled)
Active: active (mounted) since Mon 2023-10-02 12:29:09 CEST; 15min ago
Where: /mnt/vdb1
What: /dev/vdb1
Tasks: 0 (limit: 2306)
Memory: 28.0K
CPU: 2ms
CGroup: /system.slice/mnt-vdb1.mount
oct 02 12:29:09 mount-systemd systemd[1]: Mounting mnt-vdb1.mount - Montaje de la partición vdb1 en el directorio /mnt/vdb1...
oct 02 12:29:09 mount-systemd systemd[1]: Mounted mnt-vdb1.mount - Montaje de la partición vdb1 en el directorio /mnt/vdb1.
Comprobamos que el disco se ha montado correctamente.
root@mount-systemd:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 738M 0 rom
vda 254:0 0 9G 0 disk
├─vda1 254:1 0 8G 0 part /
├─vda2 254:2 0 1K 0 part
└─vda5 254:5 0 975M 0 part [SWAP]
vdb 254:16 0 1G 0 disk
└─vdb1 254:17 0 1022M 0 part /mnt/vdb1
Como podemos ver, el disco se ha montado correctamente en el directorio ‘/mnt/vdb1’.
Ahora para que la unidad se monte automáticamente cuando iniciemos el sistema operativo, tenemos que habilitar la unidad de montaje.
root@mount-systemd:~# systemctl enable mnt-vdb1.mount
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-vdb1.mount → /etc/systemd/system/mnt-vdb1.mount.
Para comprobar que la unidad se monta automáticamente, reiniciamos la máquina.
root@mount-systemd:~# reboot
Comprobamos que el disco se ha montado automáticamente.
root@mount-systemd:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sr0 11:0 1 738M 0 rom
vda 254:0 0 9G 0 disk
├─vda1 254:1 0 8G 0 part /
├─vda2 254:2 0 1K 0 part
└─vda5 254:5 0 975M 0 part [SWAP]
vdb 254:16 0 1G 0 disk
└─vdb1 254:17 0 1022M 0 part /mnt/vdb1
Como podemos ver, el disco se ha montado automáticamente en el directorio ‘/mnt/vdb1’ cuando iniciamos el sistema operativo.
Con esto ya hemos creado una unidad de montaje automático con Systemd en Debian 12.