restarting Mac server


Настройка автоматического перезапуска Mac mini c установленным сервером UBUNTU после отключения электричества

📌 Введение

Mac mini 2010 года (модель Macmini4,1) построен на чипсете NVIDIA MCP89. Поведение компьютера при восстановлении питания после сбоя управляется аппаратным регистром. В macOS эта функция включается галочкой «Запускать после сбоя питания» в настройках энергосбережения. Однако в Linux эта настройка не сохраняется между перезагрузками, поэтому её нужно применять автоматически при каждом старте системы.

Инструкция рассчитана на Mac mini с уже установленным и работающим Linux.


🔍 Шаг 1. Проверьте модель устройства

Откройте терминал и выполните команду:

cat /sys/devices/virtual/dmi/id/product_name

Ожидаемый результат:

Macmini4,1

Если вывод отличается, значит у вас другая модель, и адреса PCI-устройств ниже могут не подойти. В этом случае потребуется уточнить параметры для вашей модели.


⚙️ Шаг 2. Определите адрес PCI-устройства

Выполните команду, чтобы найти LPC-мост NVIDIA:

lspci | grep -i lpc

Для Macmini 4,1 вы должны увидеть примерно такую строку:

00:03.0 ISA bridge: NVIDIA Corporation MCP89 LPC Bridge (rev a2)

Запомните адрес 00:03.0 — он понадобится в следующих командах.


🧪 Шаг 3. Проверьте команду вручную

Прежде чем настраивать автозапуск, убедитесь, что команда работает. Выполните:

sudo setpci -s 00:03.0 0x7b.b=19

Если команда отработала без ошибок, значит адрес и значение регистра подходят. Можно переходить к следующему шагу.

Пояснение: команда записывает значение 0x19 в регистр 0x7b, включая режим «включаться автоматически после восстановления питания».


📝 Шаг 4. Создайте службу systemd

Так как настройка сбрасывается после каждой перезагрузки, нужно, чтобы команда выполнялась автоматически при старте Linux.

4.1. Создайте файл службы

sudo nano /etc/systemd/system/enable-autorestart.service

4.2. Вставьте следующее содержимое

[Unit]
Description=Enable Mac mini auto-restart after power failure
After=default.target

[Service]
Type=oneshot
ExecStart=/usr/bin/setpci -s 00:03.0 0x7b.b=19

[Install]
WantedBy=default.target

4.3. Сохраните и выйдите

  • Ctrl+O — сохранить
  • Enter — подтвердить имя файла
  • Ctrl+X — выйти из редактора

4.4. Активируйте службу

sudo systemctl daemon-reload
sudo systemctl enable enable-autorestart.service

✅ Шаг 5. Проверьте результат

5.1. Проверка статуса службы

systemctl status enable-autorestart.service

Успешный статус — active (exited) или аналогичный.

5.2. Реальный тест с отключением питания

  1. Корректно выключите сервер:

    sudo shutdown -h now
    
  2. Дождитесь полного выключения.

  3. Выдерните кабель питания и подождите около 30 секунд.

  4. Вставьте кабель питания обратно.

Ожидаемый результат: Mac mini должен запуститься сам, без нажатия кнопки питания.


⚠️ Важные замечания

Пункт Пояснение
Настройка не сохраняется Значение регистра сбрасывается при каждом выключении, поэтому нужна служба systemd
Разные модели — разные параметры Не применяйте адреса и значения от других моделей Mac mini
Защита оборудования Рекомендуется использовать ИБП (UPS), чтобы избежать частых сбоев питания и повреждения файловой системы
Сначала выключите, потом тестируйте Перед тестом с выдёргиванием кабеля обязательно корректно выключите систему

🔧 Если что-то не работает

  1. Команда setpci не найдена — установите пакет pciutils:

    # Debian/Ubuntu
    sudo apt install pciutils
    
    # Fedora/RHEL
    sudo dnf install pciutils
    
    # Arch
    sudo pacman -S pciutils
    
  2. Адрес устройства другой — проверьте вывод lspci | grep -i lpc и замените 00:03.0 в командах и в файле службы на фактический.

  3. Служба не запускается — проверьте логи:

    journalctl -u enable-autorestart.service
    
  4. После выдёргивания кабеля Mac mini не включается — попробуйте другое значение регистра (0x1b, 0x1a) и повторите тест. Значения могут отличаться в зависимости от ревизии платы.


📋 Краткая шпаргалка

# 1. Проверить модель
cat /sys/devices/virtual/dmi/id/product_name

# 2. Найти адрес LPC-моста
lspci | grep -i lpc

# 3. Проверить команду вручную
sudo setpci -s 00:03.0 0x7b.b=19

# 4. Создать службу
sudo nano /etc/systemd/system/enable-autorestart.service
# (вставить содержимое из Шага 4.2)

# 5. Активировать службу
sudo systemctl daemon-reload
sudo systemctl enable enable-autorestart.service

# 6. Проверить статус
systemctl status enable-autorestart.service

Готово.

Теперь ваш Mac mini под управлением Linux будет автоматически включаться после восстановления питания.


Document Вы также можете ознакомиться с полезными командами терминала здесь … 🔗