Неполадки ноды
Каждый ✗ и каждый неудачный шаг печатает своё исправление, а та же команда, запущенная снова, продолжает установку с места остановки. Начните со строки, которую она напечатала. Ниже собрано то, с чем администраторы сталкиваются чаще всего.
Проверка говорит, что диск не пустой
На диске есть разделы, таблица разделов, файловая система или сигнатура, а установщик никогда не стирает диск за вас. Если на нём ничего нужного нет, выполните 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-host | node-host |
sudo journalctl -u cloudflared-detachbox | Туннель |
sudo journalctl -u incus | Incus |
/var/log/detachbox-node-uninstall.log | Удаление вместе со всеми прошлыми запусками установки |
Что отправить в поддержку
Неудачный шаг установки сам уходит в detachbox вместе с вашим токеном. Для всего остального:
- Когда нода уже зарегистрирована, запустите
sudo detachbox-node-host doctor --report. Команда отправит в detachbox результат doctor и сведения о сервере. До этого неудачный шаг уже сам ушёл в detachbox. - Напишите на support@detachbox.com или откройте Поддержка в кабинете, приложив строку с ошибкой и последние строки журнала:
sudo tail -n 100 /var/lib/detachbox-node/install/install.log.