detachbox
СтраницыНеполадки ноды

Неполадки ноды

Каждый ✗ и каждый неудачный шаг печатает своё исправление, а та же команда, запущенная снова, продолжает установку с места остановки. Начните со строки, которую она напечатала. Ниже собрано то, с чем администраторы сталкиваются чаще всего.

Проверка говорит, что диск не пустой

На диске есть разделы, таблица разделов, файловая система или сигнатура, а установщик никогда не стирает диск за вас. Если на нём ничего нужного нет, выполните sudo wipefs -a /dev/sdb для вашего диска. Если диск входит в пул ZFS, строка называет пул: сначала уничтожьте его командой sudo zpool destroy <pool>, и вместе с ним пропадут все файлы на нём. Диск с LVM проверка так и называет. Сначала снимите LVM: pvs /dev/sdb назовёт группу томов, vgremove <group> уничтожит её тома, затем выполните pvremove /dev/sdb.

Проверка находит на сервере другие программы

Нода занимает сервер целиком, поэтому Docker, LXD, Incus или cloudflared, поставленные не установщиком, или другой пул ZFS останавливают установку. Строка перечисляет каждую находку с командой, которая её удаляет, например apt-get purge docker-ce docker.io или snap remove --purge lxd. Удалите их или возьмите чистый сервер.

Не проходят Secure Boot или заголовки ядра

Нода собирает собственный модуль ZFS. Выключите Secure Boot в прошивке или зарегистрируйте ключ DKMS: apt-get install dkms, затем mokutil --import /var/lib/dkms/mok.pub и подтвердите его при следующей загрузке. Для заголовков: apt-get update && apt-get install linux-headers-$(uname -r); если в apt их всё равно нет, apt-get full-upgrade и перезагрузка в самое новое ядро.

Не проходят исходящие соединения, TLS или часы

  • Проверка исходящих соединений называет каждый адрес, который не ответил. Разрешите к ним исходящий TCP, а к туннелю Cloudflare ещё и UDP 7844. Полный список есть на странице Что нужно серверу.
  • Проверка TLS называет центр, которым подписан полученный сертификат. Пропускайте api.detachbox.com и *.argotunnel.com без инспекции TLS.
  • Часы: timedatectl set-ntp true, и пустите сервер к его серверам NTP по UDP 123.

На диске сохранённый пул

Прежнюю ноду на этом сервере удалили, сохранив пул, и новая установка отказывается от этого диска: новая нода никогда не забирает файлы старой. Дайте новой ноде другой диск (lsblk -d -o NAME,SIZE,MODEL,SERIAL перечисляет диски) или, если в сохранённом пуле ничего нужного нет, выполните команду из строки проверки: её uninstall --confirm --destroy-pool уничтожит пул со всем содержимым и уберёт ZFS и detachbox-node-host. Если сохранённый пул снова импортировали, чтобы прочитать файлы, его находит проверка других программ на сервере: sudo zpool export boxes возвращает его на диск, а команда удаления из строки проверки убирает его.

Токен не принят

Зарегистрировать сервер с токеном можно в течение 7 дней, а после регистрации токен ещё 7 дней принимает повторные запуски той же установки.

  • «The server does not know this token, or it expired»: попросите у вашего контакта в detachbox новый токен.
  • This token was already used by another machine: строка называет имя хоста, адрес и время того сервера. Токен принадлежит первому серверу, который с ним зарегистрировался. Если тот сервер не ваш, не пользуйтесь нодой и сразу напишите в поддержку detachbox; для другого своего сервера попросите новый токен.
  • «The server has not finished setting up this node's tunnel and certificate»: попросите у вашего контакта в detachbox новый токен и запустите команду с ним.
  • «This token's node is live already»: токен израсходован на работающую ноду. На сервере, который с ним зарегистрировался, нода уже работает: откройте https://my.detachbox.com. Для другого сервера попросите новый токен: каждому серверу нужен свой.
  • Сервер зарегистрировался с другим токеном: запустите команду с ним.

Команда остановилась до проверок

  • no answer from https://api.detachbox.com: серверу нужен исходящий HTTPS (порт 443). Когда он появится, запустите ту же команду снова.
  • this token downloaded node-host several times lately: подождите столько минут, сколько названо, и запустите ту же команду снова.
  • the server asks this machine to slow down (429): запустите ту же команду снова через минуту.
  • Сервер не на Ubuntu 26.04 и x86_64 или команда запущена не от root: строка скажет, что именно.

Запись установки не читается

/var/lib/detachbox-node/install/state.json — запись установки о том, что она сделала на сервере. Если сервер потерял питание, пока она писалась, и установка, и удаление останавливаются со словами does not read: без записи ни одна из них не знает, что здесь принадлежит ноде, и гадать не станет. Отправьте эту строку вашему контакту в detachbox. Чтобы начать заново, снимите ноду руками, как перечислено в разделе «Удаление вручную» на странице Удаление ноды, потом выполните sudo rm /var/lib/detachbox-node/install/state.json и запустите команду установки снова.

--destroy-pool оставляет диск

--destroy-pool стирает диск, только если всё на нём принадлежит установке. Чаще всего встречаются два отказа:

  • Диск is not the disk the pool boxes was made on: имя диска сменилось после установки, например /dev/sdb стал /dev/sdc. lsblk -o NAME,WWN,SERIAL найдёт записанный диск под его нынешним именем. Или запустите uninstall --confirm без --destroy-pool: так диск останется, а всё остальное удалится.
  • Диск или раздел «holds …, which this install did not put there» или несёт метку ZFS другого пула. Если на нём ничего нужного нет, очистите его сами командой sudo wipefs -a /dev/sdb; uninstall --confirm без --destroy-pool удалит остальное.

Уже идёт другой запуск

Одновременно работает только одна установка или одно удаление. Сообщение называет начало того запуска и его процесс. Следите за ним командой sudo tail -f /var/lib/detachbox-node/install/install.log. Если он действительно завис, sudo kill <pid> остановит его за секунды; потом запустите ту же команду снова.

Шаг не прошёл

До шага 6 detachbox-node-host ещё нет в PATH: проверки запускает та же команда установки с добавленным --check, которая ничего не меняет и токен не тратит.

  • Пакеты: apt не достучался до pkgs.zabbly.com, pkg.cloudflare.com или вашего зеркала apt; команда с --check проверит путь к ним.
  • OpenZFS: apt не поставил то, что нужно сборке, или выпуск не скачался с github.com и release-assets.githubusercontent.com; команда с --check проверит путь туда. Оборванная сборка начнётся заново с чистого дерева. Если не справился DKMS, dkms status и /var/lib/dkms/zfs/2.4.4/build/make.log скажут почему.
  • Incus: sudo journalctl -u incus -n 50 показывает, что сказал Incus.
  • Базовый образ: его последние строки называют часть сборки, которая не удалась; файлы она скачивает с адресов, которые проверяет команда с --check.
  • cloudflared и node-host: sudo journalctl -u detachbox-node-host -u cloudflared-detachbox -n 50 объясняет причину.
  • Подъём со стороны сервера: если через 10 минут сервер так и не достал до node-host, команда укажет на туннель, которому нужны исходящие TCP и UDP 7844. Если сервер остановил подъём, строка скажет почему, и ваш контакт в detachbox это тоже видит. Если через 45 минут нода так и не заработала, запустите sudo detachbox-node-host doctor, а потом ту же команду установки, чтобы следить дальше.

Журналы

ЖурналЧто в нём
/var/lib/detachbox-node/install/install.logКаждый запуск установки, каждая строка каждой команды
sudo journalctl -u detachbox-node-hostnode-host
sudo journalctl -u cloudflared-detachboxТуннель
sudo journalctl -u incusIncus
/var/log/detachbox-node-uninstall.logУдаление вместе со всеми прошлыми запусками установки

Что отправить в поддержку

Неудачный шаг установки сам уходит в detachbox вместе с вашим токеном. Для всего остального:

  1. Когда нода уже зарегистрирована, запустите sudo detachbox-node-host doctor --report. Команда отправит в detachbox результат doctor и сведения о сервере. До этого неудачный шаг уже сам ушёл в detachbox.
  2. Напишите на support@detachbox.com или откройте Поддержка в кабинете, приложив строку с ошибкой и последние строки журнала: sudo tail -n 100 /var/lib/detachbox-node/install/install.log.