¿Cómo mantener un disco duro en Linux? Comandos comunes para el mantenimiento del disco duro
En los sistemas Linux, el disco duro es el componente central que almacena todos los datos y archivos del sistema. Este artículo le presentará en detalle los comandos y trucos comunes para el mantenimiento de discos duros en Linux, ayudándole a gestionar y mantener mejor su disco duro.
Renderizando...
En los sistemas Linux, el disco duro es un componente central que almacena todos los datos y archivos del sistema. El mantenimiento y la monitorización periódicos del disco duro no solo garantizan el funcionamiento estable del sistema y evitan la degradación del rendimiento debido a la falta de espacio, sino que también permiten detectar a tiempo posibles problemas de hardware, previniendo así eficazmente la pérdida de datos. Este artículo le presentará en detalle los comandos y trucos comunes para el mantenimiento de discos duros en Linux, ayudándole a gestionar y mantener mejor sus discos duros.
## Introducción: La Importancia del Mantenimiento del Disco Duro
El mantenimiento del disco duro no se trata solo de limpiar archivos basura, sino que también abarca la monitorización del estado de salud del disco, la comprobación de la integridad del sistema de archivos, la optimización del rendimiento de E/S, entre otros aspectos. Un disco duro saludable es la base para el funcionamiento eficiente de un sistema Linux. Ignorar el mantenimiento del disco duro puede provocar:
* **Disminución del rendimiento del sistema**: La falta de espacio en el disco duro o el exceso de fragmentación pueden ralentizar gravemente la velocidad del sistema.
* **Bloqueo de aplicaciones**: Algunas aplicaciones requieren espacio temporal, y la falta de espacio puede impedir su correcto funcionamiento.
* **Riesgo de pérdida de datos**: Las fallas del disco duro suelen ir precedidas de señales. La detección temprana puede evitar la pérdida permanente de datos.
* **Inestabilidad del sistema**: Los errores del sistema de archivos pueden provocar bloqueos o impedir el arranque del sistema.
## I. Ver Información Básica del Disco Duro
Antes de realizar cualquier operación de mantenimiento, comprender la estructura física y lógica del disco duro es el primer paso.
### 1. Listar Información de Dispositivos de Bloque: `lsblk`
El comando `lsblk` se utiliza para listar todos los dispositivos de bloque disponibles (como discos duros, particiones, unidades USB, etc.) y sus relaciones mutuas.
```bash
lsblk
```
**Ejemplo de Salida:**
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 191.9G 0 part /
sr0 11:0 1 1024M 0 rom
```
* **`NAME`**: Nombre del dispositivo (por ejemplo, `sda` indica el primer disco duro SCSI, `sda1` indica la primera partición de `sda`).
* **`SIZE`**: Tamaño del dispositivo o partición.
* **`TYPE`**: Tipo de dispositivo (`disk` indica disco duro, `part` indica partición, `rom` indica unidad de CD/DVD).
* **`MOUNTPOINTS`**: Punto de montaje del dispositivo.
### 2. Ver Información de Particiones: `fdisk -l` o `parted -l`
Estos dos comandos se utilizan para ver la información de la tabla de particiones del disco duro. `fdisk` es compatible con tablas de particiones MBR y GPT, mientras que `parted` es más potente y admite más tipos de particiones.
```bash
sudo fdisk -l
# O
sudo parted -l
```
**Nota:** Estos comandos requieren privilegios de root para ver la información de todos los discos duros.
### 3. Ver Sistemas de Archivos Montados: `mount`
El comando `mount` sin argumentos muestra todos los sistemas de archivos montados actualmente en el sistema. Esto es muy útil para saber qué particiones se están utilizando y sus opciones de montaje.
```bash
mount
```
**Ejemplo de Salida:**
```
/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/sda1 on /boot type ext4 (rw,relatime)
/dev/sdb1 on /data type xfs (rw,relatime,attr2,inode64,noquota)
```
## II. Ver el Uso del Disco Duro
Comprender el uso general del disco duro es el primer paso del mantenimiento.
### 1. Ver el Uso General del Espacio en Disco de Sistemas de Archivos: `df -h`
El comando `df` (disk free) se utiliza para mostrar el uso del espacio en disco de los sistemas de archivos. La opción `-h` muestra el tamaño en un formato legible para humanos (como G, M).
```bash
df -h
```
**Ejemplo de Salida:**
```
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 797M 1.8M 795M 1% /run
/dev/sda3 192G 85G 100G 46% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda1 976M 180M 729M 20% /boot
tmpfs 797M 12K 797M 1% /run/user/1000
```
* **`Filesystem`**: Nombre del sistema de archivos.
* **`Size`**: Tamaño total del sistema de archivos.
* **`Used`**: Espacio utilizado.
* **`Avail`**: Espacio disponible.
* **`Use%`**: Porcentaje de espacio utilizado.
* **`Mounted on`**: Punto de montaje del sistema de archivos.
**Preste especial atención a la columna `Use%`. Si el porcentaje de uso de un punto de montaje se acerca al 100%, debe abordarse de inmediato.**
### 2. Ver el Uso de Inodos: `df -i`
Además del espacio en disco, los sistemas de archivos también gestionan inodos (nodos índice). Cada archivo o directorio ocupa un inodo. Si se agotan los inodos, no se podrán crear nuevos archivos aunque el espacio en disco sea suficiente.
```bash
df -i
```
**Ejemplo de Salida:**
```
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 999550 427 999123 1% /dev
tmpfs 199887 706 199181 1% /run
/dev/sda3 12582912 378900 12204012 4% /
tmpfs 999550 1 999549 1% /dev/shm
tmpfs 199887 3 199884 1% /run/lock
/dev/sda1 256K 336 256K 1% /boot
tmpfs 199887 16 199871 1% /run/user/1000
```
**Preste también atención a `IUse%`. Si es demasiado alto, puede indicar la existencia de una gran cantidad de archivos pequeños.**
## III. Buscar Archivos y Carpetas que Ocupan Mucho Espacio
Cuando `df -h` muestra que una partición se está quedando sin espacio, el siguiente paso es averiguar qué archivos o carpetas están ocupando mucho espacio.
### 1. Ver el Tamaño de Cada Subdirectorio en un Directorio Específico: `du -h --max-depth=1`
El comando `du` (disk usage) se utiliza para estimar el uso del espacio en disco de archivos o directorios. Combinado con `-h` (legible para humanos) y `--max-depth=1` (solo muestra subdirectorios de primer nivel), puede localizar el problema rápidamente.
```bash
sudo du -h --max-depth=1 /path/to/directory
# Ejemplo: Ver el tamaño de cada subdirectorio de primer nivel en el directorio raíz
sudo du -h --max-depth=1 /
```
**Ejemplo de Salida:**
```
4.0K /srv
16K /lost+found
4.0K /mnt
4.0K /cdrom
1.8G /opt
1.1G /home
8.0K /media
1.2G /root
4.0K /snap
1.4G /boot
1.3G /etc
1.6G /bin
2.0G /lib
1.7G /sbin
2.0G /dev
1.9G /run
2.0G /sys
1.9G /tmp
1.9G /proc
2.0G /usr
2.0G /var
2.0G /lib64
2.0G /initrd.img
2.0G /vmlinuz
192G /
```
Con este comando, puede profundizar capa por capa para encontrar el directorio que ocupa más espacio.
### 2. Buscar el Archivo/Directorio Más Grande en el Directorio Actual: `du -sh * | sort -rh`
Este comando combinado lista el tamaño de todos los archivos y subdirectorios en el directorio actual y los ordena de mayor a menor.
```bash
sudo du -sh * | sort -rh
```
* `du -sh *`: Estima el tamaño total de todos los archivos y subdirectorios en el directorio actual y lo muestra en formato legible para humanos.
* `sort -rh`: El comando `sort` se utiliza para ordenar. `-r` significa orden inverso (de mayor a menor), y `-h` significa ordenar numéricamente en formato legible para humanos.
**Ejemplo de Salida:**
```
85G var
1.1G home
1.0G usr
900M opt
500M root
...
```
### 3. Buscar Archivos de un Tamaño Específico o Mayor: `find`
El comando `find` es muy potente y puede buscar archivos según diversas condiciones. Por ejemplo, para buscar todos los archivos mayores de 1 GB en el directorio `/var`:
```bash
sudo find /var -type f -size +1G -print0 | xargs -0 du -h | sort -rh
```
* `find /var -type f -size +1G`: Busca en el directorio `/var` archivos de tipo archivo (`-type f`) y cuyo tamaño sea mayor que 1 GB (`-size +1G`).
* `-print0`: Separa la salida con caracteres nulos para evitar problemas causados por espacios o caracteres especiales en los nombres de archivo.
* `xargs -0 du -h`: Toma la salida de `find` como entrada para `du -h` y calcula el tamaño de cada archivo.
* `sort -rh`: Vuelve a ordenar para mostrar los archivos más grandes.
---
## IV. Monitorizar el Rendimiento de E/S del Disco Duro
El rendimiento de E/S del disco duro afecta directamente la velocidad de respuesta del sistema. Monitorizar la E/S puede ayudarle a detectar si algún proceso está realizando operaciones de lectura/escritura excesivas en el disco.
### 1. Monitorizar E/S de Procesos en Tiempo Real: `iotop`
La herramienta `iotop` puede mostrar en tiempo real qué procesos están realizando operaciones intensivas de lectura/escritura en disco, similar a cómo el comando `top` monitoriza la CPU y la memoria.
```bash
sudo iotop
```
**Nota:** `iotop` generalmente necesita ser instalado por separado.
* Debian/Ubuntu: `sudo apt install iotop`
* CentOS/RHEL: `sudo yum install iotop` o `sudo dnf install iotop`
### 2. Estadísticas de E/S: `iostat`
El comando `iostat` (parte del paquete `sysstat`) se utiliza para informar sobre estadísticas de CPU y estadísticas de E/S de dispositivos.
```bash
sudo iostat -x 1 5
```
* `-x`: Muestra estadísticas extendidas.
* `1 5`: Actualiza cada 1 segundo, mostrando un total de 5 veces.
**Ejemplo de Salida (parcial):**
```
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
```
* `r/s`, `w/s`: Número de solicitudes de lectura/escritura por segundo.
* `rkB/s`, `wkB/s`: Cantidad de datos de lectura/escritura por segundo (KB).
* `%util`: Utilización del dispositivo. Si se acerca al 100%, puede indicar un cuello de botella de E/S.
---
## V. Limpiar Espacio en Disco
Limpiar el espacio en disco es una parte importante del mantenimiento diario.
### 1. Limpiar Caché del Gestor de Paquetes
Los gestores de paquetes (como APT, YUM, DNF) descargan los paquetes de instalación en una caché local al instalar software. Estos archivos de caché ocupan mucho espacio.
* **Debian/Ubuntu (APT):**
```bash
sudo apt clean # Limpia todos los archivos de paquetes descargados
sudo apt autoclean # Limpia los archivos de paquetes que ya no son necesarios
```
* **CentOS/RHEL (YUM/DNF):**
```bash
sudo yum clean all # Limpia todos los archivos de caché
# O para DNF
sudo dnf clean all # Limpia todos los archivos de caché
```
### 2. Limpiar Archivos de Registro (Logs)
Los archivos de registro del sistema y de las aplicaciones suelen almacenarse en el directorio `/var/log` y pueden volverse muy grandes después de un funcionamiento prolongado.
* **Comprender `logrotate`:** Los sistemas Linux suelen utilizar la herramienta `logrotate` para gestionar automáticamente los archivos de registro, rotándolos, comprimiéndolos y eliminándolos periódicamente. Puede comprobar los archivos de configuración en `/etc/logrotate.conf` y en el directorio `/etc/logrotate.d/`.
* **Limpieza manual de registros antiguos:** Si la configuración de `logrotate` es inadecuada o los registros crecen demasiado rápido, puede ser necesario limpiarlos manualmente.
**Advertencia:** Antes de eliminar archivos de registro, asegúrese de comprender su contenido e importancia. Eliminar un archivo de registro que se está escribiendo puede causar problemas.
```bash
# Busca y elimina todos los archivos de registro antiguos comprimidos con extensión .gz
sudo find /var/log -type f -name "*.gz" -delete
# Busca y elimina todos los archivos de registro antiguos con extensión .log.1
sudo find /var/log -type f -name "*.log.1" -delete
# Vacía el contenido de un archivo de registro grande específico (sin eliminar el archivo en sí)
sudo truncate -s 0 /var/log/syslog
```
### 3. Limpiar Archivos Temporales
El sistema y las aplicaciones crean archivos temporales, que generalmente se almacenan en los directorios `/tmp` y `/var/tmp`.
* Los archivos en el directorio `/tmp` suelen eliminarse después de reiniciar el sistema.
* Los archivos en el directorio `/var/tmp` generalmente no se eliminan después de reiniciar el sistema, pero se limpian periódicamente.
* **Limpieza manual:**
**Advertencia:** Tenga mucho cuidado al limpiar el directorio `/tmp`, ya que los programas en ejecución pueden estar utilizando archivos de allí. Es mejor hacerlo durante una ventana de mantenimiento del sistema o después de un reinicio.
```bash
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
```
### 4. Limpiar Archivos Grandes en el Directorio de Inicio del Usuario
El directorio de inicio del usuario (`/home/username`) suele ser el mayor consumidor de espacio, especialmente los archivos de descarga, video, imágenes, etc. Utilizar los comandos `du` y `find` presentados anteriormente le ayudará a localizar y limpiar estos archivos.
```bash
# Busca archivos mayores de 500 MB en el directorio de inicio del usuario actual
find ~/ -type f -size +500M -print0 | xargs -0 du -h | sort -rh
```
---
## VI. Comprobación del Estado de Salud del Disco Duro
Además del espacio y el rendimiento, el estado físico del disco duro también es crucial. La tecnología S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) nos ayuda a monitorizar el estado de salud del disco duro.
### 1. Utilizar `smartctl` para Comprobar la Información S.M.A.R.T.
El comando `smartctl` es parte del paquete `smartmontools` y se utiliza para interactuar con discos duros que admiten S.M.A.R.T.
**Instalar `smartmontools`:**
* Debian/Ubuntu: `sudo apt install smartmontools`
* CentOS/RHEL: `sudo yum install smartmontools` o `sudo dnf install smartmontools`
**Comprobar el estado de salud del disco duro:**
```bash
sudo smartctl -a /dev/sda
```
Reemplace `/dev/sda` con el nombre de su dispositivo de disco duro (que puede encontrar con `lsblk`).
**Ejemplo de Salida (información clave parcial):**
```
SMART overall-health self-assessment test result: PASSED
...
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 000 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Always - 0
```
**Explicación de métricas clave:**
* **`SMART overall-health self-assessment test result: PASSED`**: Este es el indicador más importante, que significa que el disco duro ha pasado la autocomprobación. Si muestra `FAILED`, el disco duro puede tener problemas graves.
* **`Reallocated_Sector_Ct` (ID 5)**: Contador de sectores reasignados. Cuando el disco duro detecta sectores defectuosos, los marca y los reemplaza con sectores de repuesto. Si este valor no es cero y sigue aumentando, indica que el disco duro está desarrollando sectores defectuosos físicos.
* **`Current_Pending_Sector` (ID 197)**: Contador de sectores pendientes actuales. Indica que hay sectores marcados como "inestables" y que esperan ser reasignados. Si este valor no es cero, se debe prestar mucha atención.
* **`Offline_Uncorrectable` (ID 198)**: Contador de sectores incorrectibles fuera de línea. Indica que hay sectores que no se pueden leer ni escribir y que no se pueden corregir con ECC. Si este valor no es cero, generalmente significa que el disco duro ya tiene sectores defectuosos irrecuperables.
**Si encuentra anomalías en estas métricas clave, ¡haga una copia de seguridad de sus datos inmediatamente y considere reemplazar el disco duro!**
## VII. Mantenimiento y Copias de Seguridad Periódicas
* **Comprobaciones periódicas:** Se recomienda comprobar el uso del disco duro y la información S.M.A.R.T. al menos una vez al mes.
* **Copias de seguridad de datos:** Cualquier disco duro puede fallar en cualquier momento. **Las copias de seguridad periódicas de datos importantes son la garantía definitiva contra la pérdida de datos.** Puede utilizar comandos como `rsync`, `tar` o herramientas de copia de seguridad profesionales para realizar copias de seguridad.
* **Comprobación del sistema de archivos:** Para particiones que no son la raíz, puede comprobar la integridad del sistema de archivos con el comando `fsck` después de desmontarlas. Para la partición raíz, generalmente se comprueba automáticamente al arrancar el sistema.Comentario
Inicia sesión para ver y publicar comentarios
Ir a iniciar sesión