Objetivos de la practica
- Identificar todo el hardware de un equipo Linux sin abrirlo (CPU, RAM, disco, placa base, perifericos).
- Utilizar dmesg y los logs del sistema para detectar errores de hardware.
- Analizar el estado de los discos: particiones, espacio, salud S.M.A.R.T.
- Diagnosticar problemas de conectividad de red paso a paso.
- Gestionar servicios de hardware con systemctl.
- Crear un script Bash de diagnostico automatizado para el taller.
Requisitos previos
| Requisito | OK |
|---|---|
| Practica 09 (Explorando Ubuntu) completada | |
| Maquina virtual con Ubuntu funcionando | |
| Conexion a Internet disponible en la VM |
Preparacion: instalar herramientas de diagnostico
Antes de empezar, instala las herramientas que usaremos:
sudo apt updatesudo apt install smartmontools net-tools traceroute lshw inxi -y
Parte 1 - Inventario de hardware desde la terminal (40 min)
En Linux, existen comandos muy potentes para identificar todo el hardware de un equipo sin necesidad de abrirlo. Esto es esencial cuando recibes un equipo en el taller y necesitas saber con que estas trabajando.
Resumen rapido con inxi
| Comando | Resultado |
|---|---|
inxi -Fxz |
inxi -Fxz es el comando mas rapido para tener un resumen completo del equipo. La opcion -z oculta datos sensibles (MAC, serial) por privacidad.
Procesador (CPU)
| Comando | Que identifica | Resultado |
|---|---|---|
lscpu | grep -i "model name\|socket\|core\|thread\|mhz\|architecture" |
CPU: modelo, nucleos, hilos, velocidad | |
cat /proc/cpuinfo | grep "model name" | head -1 |
Nombre exacto del procesador |
Memoria RAM
| Comando | Resultado |
|---|---|
free -h |
|
sudo dmidecode -t memory | grep -i "size\|speed\|manufacturer\|type:" | head -10 |
Placa base y BIOS
| Comando | Resultado |
|---|---|
sudo dmidecode -t baseboard | grep -i "manufacturer\|product\|serial" |
|
sudo dmidecode -t bios | grep -i "vendor\|version\|release" |
Dispositivos PCI y USB (tarjetas y perifericos)
| Comando | Que identifica | Resultado |
|---|---|---|
lspci |
Dispositivos PCI (grafica, red, audio, etc.) | |
lspci | grep -i "vga\|3d\|display" |
Tarjeta grafica | |
lspci | grep -i "network\|ethernet\|wifi" |
Tarjeta(s) de red | |
lspci | grep -i "audio" |
Tarjeta de sonido | |
lsusb |
Dispositivos USB conectados |
Ficha tecnica del equipo
Con los datos obtenidos, completa esta ficha tecnica del taller:
| Componente | Datos del equipo |
|---|---|
| Placa base (fabricante / modelo) | |
| BIOS (version) | |
| CPU (modelo, nucleos, velocidad) | |
| RAM (cantidad, tipo, velocidad) | |
| Tarjeta grafica | |
| Tarjeta de red | |
| Tarjeta de sonido | |
| Sistema operativo y kernel |
Captura 1: Terminal con inventario de hardware (inxi o lspci + lscpu)
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura con comandos de inventario de hardware
Parte 2 - Logs del sistema y deteccion de errores de hardware (30 min)
Cuando un equipo tiene problemas intermitentes (cuelgues, reinicios, perifericos que no funcionan), los logs del sistema son la clave para encontrar la causa. En Linux, el kernel registra todo lo que ocurre con el hardware.
dmesg - Mensajes del kernel
| Comando | Resultado |
|---|---|
dmesg | grep -i "error" | tail -10 |
|
dmesg | grep -i "fail" | tail -5 |
|
dmesg | grep -i "usb" | tail -10 |
|
dmesg | grep -i "ata\|sata\|disk\|sda" | tail -10 |
|
dmesg | grep -i "eth\|enp\|wlan\|network" | tail -10 |
dmesg | grep -i "error\|fail\|panic". Si un USB no funciona, busca dmesg | grep -i usb. Si el disco da problemas, busca dmesg | grep -i "ata\|i/o error".
Logs del sistema con journalctl
| Comando | Resultado |
|---|---|
journalctl -p err -b --no-pager | tail -10 |
|
journalctl -p err -b --no-pager | wc -l |
|
journalctl --list-boots |
Has encontrado errores en los logs? Si es asi, describe el mas relevante. Si no hay errores, que indica eso sobre el estado del equipo?
Captura 2: Terminal mostrando logs del sistema (dmesg o journalctl)
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura de dmesg o journalctl con logs del sistema
Parte 3 - Diagnostico de discos y almacenamiento (40 min)
Particiones y espacio en disco
| Comando | Que analiza | Resultado |
|---|---|---|
lsblk -f |
Discos, particiones y sistema de ficheros | |
df -h |
Espacio usado/libre por particion | |
sudo fdisk -l 2>/dev/null | grep "Disk\|/dev/" |
Tamano fisico del disco y particiones |
Donde se gasta el espacio?
| Comando | Resultado |
|---|---|
sudo du -sh /var/log /tmp /home /var/cache 2>/dev/null |
|
sudo du -h /var/log | sort -rh | head -5 |
|
sudo find / -type f -size +50M 2>/dev/null | head -10 |
Salud del disco con S.M.A.R.T.
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) es un sistema de auto-diagnostico integrado en los discos duros y SSD. Permite predecir fallos antes de que ocurran.
| Comando | Resultado |
|---|---|
sudo smartctl -i /dev/sda |
|
sudo smartctl -H /dev/sda |
Limpieza de espacio (como lo haria un tecnico)
| Comando de limpieza | Que limpia | Espacio liberado |
|---|---|---|
sudo apt clean |
Cache de paquetes descargados | |
sudo apt autoremove -y |
Paquetes huerfanos | |
sudo journalctl --vacuum-size=50M |
Logs antiguos (deja solo 50MB) |
Captura 3: Diagnostico de discos (lsblk, df -h, smartctl)
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura con diagnostico de discos
Parte 4 - Diagnostico de problemas de red (40 min)
Paso 1: Identificar la configuracion de red
| Comando | Resultado |
|---|---|
ip addr show |
|
ip route show |
|
cat /etc/resolv.conf |
Extrae estos datos:
| Dato | Valor | Es correcto? |
|---|---|---|
| Interfaz de red activa | ||
| Direccion IP | ||
| Puerta de enlace | ||
| DNS |
Paso 2: Probar conectividad por capas (igual que en Windows)
| Comando | Que probamos | Resultado |
|---|---|---|
ping -c 4 127.0.0.1 |
Pila TCP/IP local | |
ping -c 4 [tu gateway] |
Conexion al router | |
ping -c 4 8.8.8.8 |
Internet (sin DNS) | |
ping -c 4 www.google.es |
Internet + DNS |
Paso 3: Trazar ruta y consultar DNS
| Comando | Resultado |
|---|---|
traceroute 8.8.8.8 |
|
nslookup www.google.es |
|
ss -tuln |
Equivalencia de comandos de red Linux - Windows
| Linux | Windows equivalente | Funcion |
|---|---|---|
ip addr show |
Ver configuracion de red | |
ping -c 4 |
Probar conectividad | |
traceroute |
Trazar ruta | |
ss -tuln |
Ver puertos en escucha |
Captura 4: Diagnostico de red (ping, traceroute, ss)
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura con diagnostico de red
Parte 5 - Servicios de hardware y monitorizacion del rendimiento (30 min)
Servicios de hardware con systemctl
| Comando | Resultado |
|---|---|
systemctl status NetworkManager |
|
systemctl status systemd-udevd |
|
systemctl status cups 2>/dev/null || echo "No instalado" |
|
systemctl list-units --type=service --state=failed |
NetworkManager esta fallado, no habra red. Si cups esta fallado, no podra imprimir.
Monitorizacion del rendimiento
| Comando | Que analiza | Resultado |
|---|---|---|
uptime |
Tiempo encendido y carga | |
free -h |
RAM en uso | |
ps aux --sort=-%mem | head -6 |
Top 5 procesos por RAM | |
ps aux --sort=-%cpu | head -6 |
Top 5 procesos por CPU | |
cat /proc/loadavg |
Carga del sistema (1, 5, 15 min) |
Tiempo de arranque (diagnostico de arranque lento)
| Comando | Resultado |
|---|---|
systemd-analyze |
|
systemd-analyze blame | head -10 |
Captura 5: Monitorizacion de rendimiento y servicios
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura con rendimiento y/o servicios del sistema
Parte 6 - Script de diagnostico automatizado para el taller (40 min)
Igual que hicimos en Windows, vamos a crear un script Bash que ejecute todo el diagnostico automaticamente y genere un informe. Este tipo de scripts son herramientas reales que los tecnicos usan en su dia a dia.
Script: Diagnostico completo del equipo Linux
- Crea el archivo:
nano ~/diagnostico_equipo.sh - Escribe el siguiente codigo:
#!/bin/bash
# ==========================================
# Script de diagnostico de equipos - Taller
# Curso IFCT0309 - Montaje y Reparacion
# ==========================================
FECHA=$(date "+%d/%m/%Y %H:%M:%S")
INFORME="$HOME/diagnostico_$(hostname)_$(date +%Y%m%d).txt"
mostrar() {
echo "$1" | tee -a "$INFORME"
}
mostrar "=========================================="
mostrar " INFORME DE DIAGNOSTICO DE EQUIPO"
mostrar " Fecha: $FECHA"
mostrar " Tecnico: $(whoami) @ $(hostname)"
mostrar "=========================================="
mostrar ""
mostrar "=== 1. PROCESADOR ==="
lscpu | grep -i "model name\|core\|thread\|mhz" | tee -a "$INFORME"
mostrar ""
mostrar "=== 2. MEMORIA RAM ==="
free -h | grep -i "mem\|swap" | tee -a "$INFORME"
mostrar ""
mostrar "=== 3. DISCOS Y PARTICIONES ==="
lsblk -f | tee -a "$INFORME"
mostrar ""
df -h / | tail -1 | tee -a "$INFORME"
mostrar ""
mostrar "=== 4. TARJETA GRAFICA ==="
lspci | grep -i "vga\|3d\|display" | tee -a "$INFORME"
mostrar ""
mostrar "=== 5. TARJETA DE RED ==="
lspci | grep -i "network\|ethernet" | tee -a "$INFORME"
echo "IP: $(hostname -I)" | tee -a "$INFORME"
mostrar ""
mostrar "=== 6. ESTADO DE SALUD ==="
# Verificar disco
SMART=$(sudo smartctl -H /dev/sda 2>/dev/null | grep "result" || echo "S.M.A.R.T. no disponible")
echo "Disco S.M.A.R.T.: $SMART" | tee -a "$INFORME"
# Verificar RAM
RAM_TOTAL=$(free -m | grep Mem | awk '{print $2}')
RAM_USADA=$(free -m | grep Mem | awk '{print $3}')
RAM_PCT=$((RAM_USADA * 100 / RAM_TOTAL))
echo -n "RAM: ${RAM_USADA}MB / ${RAM_TOTAL}MB (${RAM_PCT}%) - " | tee -a "$INFORME"
if [ "$RAM_PCT" -gt 90 ]; then
echo "CRITICO" | tee -a "$INFORME"
elif [ "$RAM_PCT" -gt 70 ]; then
echo "AVISO" | tee -a "$INFORME"
else
echo "OK" | tee -a "$INFORME"
fi
# Verificar disco
DISCO_PCT=$(df / | tail -1 | awk '{print $5}' | tr -d '%')
echo -n "Disco /: ${DISCO_PCT}% usado - " | tee -a "$INFORME"
if [ "$DISCO_PCT" -gt 90 ]; then
echo "CRITICO" | tee -a "$INFORME"
elif [ "$DISCO_PCT" -gt 70 ]; then
echo "AVISO" | tee -a "$INFORME"
else
echo "OK" | tee -a "$INFORME"
fi
# Verificar red
echo -n "Conectividad: " | tee -a "$INFORME"
if ping -c 1 8.8.8.8 &>/dev/null; then
echo "OK" | tee -a "$INFORME"
else
echo "SIN CONEXION" | tee -a "$INFORME"
fi
mostrar ""
mostrar "=== 7. SERVICIOS CRITICOS ==="
for SVC in NetworkManager systemd-udevd cron; do
ESTADO=$(systemctl is-active "$SVC" 2>/dev/null || echo "no encontrado")
printf " %-25s %s\n" "$SVC:" "$ESTADO" | tee -a "$INFORME"
done
mostrar ""
mostrar "=== 8. ERRORES RECIENTES ==="
ERRORES=$(journalctl -p err -b --no-pager 2>/dev/null | wc -l)
echo "Errores en este arranque: $ERRORES" | tee -a "$INFORME"
if [ "$ERRORES" -gt 0 ]; then
journalctl -p err -b --no-pager 2>/dev/null | tail -5 | tee -a "$INFORME"
fi
mostrar ""
mostrar "=========================================="
mostrar " Informe guardado en: $INFORME"
mostrar "=========================================="
- Guarda (Ctrl+O) y cierra (Ctrl+X).
- Dale permisos:
chmod +x ~/diagnostico_equipo.sh - Ejecutalo:
sudo ~/diagnostico_equipo.sh - Revisa el informe:
cat ~/diagnostico_*.txt
Pega aqui la salida completa del script:
Analisis del script
| Elemento del script | Explica que hace |
|---|---|
| tee -a "$INFORME" |
|
if [ "$RAM_PCT" -gt 90 ]; then |
|
for SVC in NetworkManager systemd-udevd cron; do |
|
ping -c 1 8.8.8.8 &>/dev/null |
Que mejoras le harias a este script para usarlo en un taller real? (piensa en que informacion falta o que comprobaciones adicionales harias)
Captura 6: Script de diagnostico ejecutandose
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura del script de diagnostico ejecutandose
Parte 7 - Preguntas de reflexion
Responde a cada pregunta con un minimo de 3 lineas.
1. Te traen un equipo con Ubuntu que "no detecta el WiFi". Sin abrir la torre, que comandos usarias para diagnosticar si el problema es del hardware, del driver o de la configuracion? Describe el procedimiento paso a paso.
2. Un servidor Linux muestra que el disco esta al 95% de uso. Describe paso a paso como diagnosticarias que esta ocupando el espacio y que acciones de limpieza realizarias (usando los comandos de esta practica).
3. Compara las herramientas de diagnostico de hardware de Linux (lspci, lsusb, dmidecode, dmesg) con las de Windows (Get-CimInstance/Get-PhysicalDisk en PowerShell, driverquery, sfc). Que sistema te parece mas potente para diagnosticar hardware y por que?
4. Por que es importante que un tecnico de reparacion sepa usar la terminal, si puede diagnosticar hardware abriendo la torre y mirando los componentes fisicamente? Da al menos 3 razones.
Entrega de la practica
Sube tu practica completada al canal #entrega-practicas del Discord del curso en formato PDF.
Capturas requeridas
| # | Descripcion | OK |
|---|---|---|
| 1 | Inventario de hardware (inxi, lspci, lscpu) | |
| 2 | Logs del sistema (dmesg o journalctl) | |
| 3 | Diagnostico de discos (lsblk, df, smartctl) | |
| 4 | Diagnostico de red (ping, traceroute, ss) | |
| 5 | Servicios y rendimiento | |
| 6 | Script de diagnostico ejecutandose |
Formato del mensaje en Discord
Practica: Diagnostico de Equipos con la Terminal de Ubuntu
[Adjuntar documento PDF y capturas de pantalla]
Criterios de evaluacion
| Criterio | Puntuacion | Desglose |
|---|---|---|
| Inventario de hardware | 2.0 puntos | Comandos ejecutados + ficha tecnica completa + dispositivos PCI/USB |
| Logs y deteccion de errores | 1.0 punto | dmesg y journalctl usados + errores analizados |
| Diagnostico de discos | 1.5 puntos | Particiones + espacio + S.M.A.R.T. + limpieza documentada |
| Diagnostico de red | 1.5 puntos | Procedimiento sistematico + equivalencias Windows-Linux |
| Servicios y rendimiento | 1.0 punto | Servicios verificados + rendimiento analizado + arranque |
| Script de diagnostico | 2.0 puntos | Script ejecutado + analisis de codigo + mejoras propuestas |
| Preguntas de reflexion | 1.0 punto | 4 preguntas respondidas con argumentacion (min 3 lineas) |
| Total | 10 puntos |
Penalizaciones
| Motivo | Penalizacion |
|---|---|
| Entrega fuera de plazo (sin justificacion) | -2 puntos |
| Capturas insuficientes (menos de 3) | -1 punto |
| Respuestas copiadas de Internet o de otro companero | -3 puntos |
| Respuestas de una sola linea en preguntas que piden minimo 3 lineas | -0.5 puntos por pregunta |
Lista de verificacion de entrega (firma del alumno)
Antes de subir tu practica, confirma que has incluido todo:
| Dato | Tu respuesta |
|---|---|
| Nombre del alumno | |
| Firma | |
| Fecha de entrega |