Headless Pi (без монитора/клавы) с boot loop требует особого подхода — нет SSH, нет логов в реальном времени. Методология ниже.
Шаг 1: получить визуальный канал
Подключить монитор по HDMI к Pi. Если есть клавиатура — подключить тоже (понадобится для emergency mode), но не критично.
Шаг 2: фотографировать каждую стадию loop’а
Текст быстро прокручивается, экран чёрный при reset. Делай серию фото:
- Самое начало (Booting Linux, первые systemd lines)
- Середина (mount, fsck)
- Конец (близко к login prompt) — критично! последняя строка перед чёрным = trigger
Если можно — снять видео одного цикла на телефон, потом разобрать по кадрам.
Шаг 3: измерить время цикла
От первого текста до чёрного экрана:
- ~30–60 сек → ранний systemd timeout (mount unit без
nofail) - ~60–120 сек → late stage (Docker, smartd, multi-user.target)
- ~3+ мин → fsck на большом FS
- Стабильно одинаковое → software trigger (watchdog/timeout)
- Разное при каждом цикле → hardware (PSU, thermal)
Шаг 4: классификация последней строки
| Последнее на экране | Причина |
|---|---|
Kernel panic - not syncing | SoC деградировал / RAM / прошивка |
Oops:, BUG: | Kernel bug, чаще driver |
undervoltage detected | PSU/кабель не тянет |
over_temperature | thermal protection (фан мёртв?) |
Job for X timed out | systemd timeout на конкретный unit |
Reached target Multi-User System потом silent | smartd/Docker/что-то после multi-user |
Started OpenBSD SSH server потом silent | service crash в самом конце |
Dependency failed for /X.mount | mount-блок без nofail |
Started Emergency Mode | mount fail остановил boot, ждёт root password |
| Просто чёрный без сообщения | Hardware reset (watchdog/PSU/SoC) |
Шаг 5: чтение логов через Mac
Если Pi не отвечает, подключить SSD к Mac:
# kern.log — kernel messages, ОЧЕНЬ важно
tail -200 /Volumes/rootfs/var/log/kern.log
# syslog — systemd + services
tail -200 /Volumes/rootfs/var/log/syslog
# Archived
gzcat /Volumes/rootfs/var/log/kern.log.2.gz | grep -iE 'panic|oops|uas|reset|undervolt|over_temperature'Шаг 6: типичные триггеры на Pi 4
- UAS bug на Argon-кейсе —
uas_eh_abort_handlerв kern.log - Watchdog с invalid timeout —
Failed to set timeout to <N>s: Invalid argument - Mount unit без nofail —
Dependency failed for /Xпотом emergency lvm2-monitor.serviceблокирует boot при отсутствующих PV —Monitoring of LVM2 mirrors (0s / no limit)fsck.repair=yesна большом ext4 после нескольких crash’ей — fsck идёт часами- Heat без фана — SoC throttle → reset
- DC-jack / USB-C кабель — under-voltage под нагрузкой
Шаг 7: фиксы без shell
Когда диагноз есть — через правки на Mac:
- systemd.mask= для bypass юнита
- Отключение auto-start через rename .disabled
- Чистка corrupt journal
- Откат
RuntimeWatchdogSecвsystem.conf - Добавить
nofailв/etc/fstab
Связано
Мета
Область:: 00 Linux