Как стать автором
Обновить

Комментарии 28

О, классно! Понадобится на домашнем компьютере — на всякий случай, а то UPS нет, а данные бывают нужны. Впрочем…
У моего рабочего компьютера (Dell Optiplex GX620) такая фишка — он после подачи питания включается на пару секунд и затем выключается. Значит ли это, что он переходит в G2 и для него не нужна эта фишка?
Насколько я понял, эта фишка в статье нужна только что бы выключить комп когда он включился после восстановления питания (из-за «Turn on»), а до пропадания питания он уже был выключен.
Если Optiplex GX620 поддерживает WOL и эта опция включена, то при подаче питания он будет его ждать даже если включился на пару секунд только.
Легко провести эксперимент, что бы проверить это. Вы вытаскиваете кабель из компьютера, потом его вставляете. Ждете, пока он включится-выключится, как вы описали. Если после этого посылка WOL пробуждает его, то вам такая фишка не нужна.
Ваш рабочий ПК скорее всего продувает пыль, брендовые железки любят так делать…
UPS не панацея. Стоял так у меня однажды UPS. Компьютер я настроил так, чтобы он автоматически выключался через несколько минут, когда UPS переходит на автономный режим. И даже не смотря на то, что компьютер выключился — UPS через 2-3 часа разрядился от собственного диода! (ну может блок питания еще чутка потребляет когда компьютер выключен). Так вот, после того как он разрядился — он выключился, и для включения — надо было физически нажать кнопку. Тьфу на такие упс.
С первой частью понятно: чтобы после сбоя была возможность включить компьютер по WakeOnLan надо, чтобы биос умел перевести машину в S5 после сбоя. Но вот зачем считать пинги для включения после сбоя? И мне так кажется, что после того как машина выключится от того что не было пингов в следующий раз она включится без оных. Зачем так? В общем суть вопроса: зачем эти магические пинги?
особенно если вы находитесь за пару тысяч километров от него

Вы кстати не упомянули, что надо держать включенный сервер в локалке, чтобы эти самые WakeOnLan слать. А ведь можно с этого сервере контролировать состояние пациента ибо когда можно WakeOnLan — линк на интерфейсе есть.
Дошло зачем вы так делаете. Только вот как быть с файловыми системами. Обычно ФС не монтируется пока fsck ему не сделается. Не проще проверять состояние ФС, автоматом фиксить и уводить в S5?
Так зачем пинги?
У автора в биосе выставлено не восстанавливать последнее состояние, но включать. А скрипт на WakeOnLan посылает собственно будящий пакет и следом 50 двадцатибайтных пингов (я бы в таком случае между ping и wol еще sleep впилил на время пока пациент просыпается и поднимает интерфейсы). Получает автор по отсутствию пингов детектит что машина сама включилась. Для ручного включения я так понимаю наличествует отдельная запись в грубе.
Но проблема в том, что ОС на пробуждаемой машине может не завестись из-за проблем с файловыми системами.
Понятно, спасибо за объяснение =)
Вы кстати не упомянули, что надо держать включенный сервер в локалке, чтобы эти самые WakeOnLan слать. А ведь можно с этого сервере контролировать состояние пациента ибо когда можно WakeOnLan — линк на интерфейсе есть.

У меня доступ к роутеру по SSH. Скрипт запуска по wol запускается с роутера.
Сейчас достаточно много роутеров, которые перешиваются в DD-WRT или имеют альтернативные прошивки с плюшками.

Только вот как быть с файловыми системами. Обычно ФС не монтируется пока fsck ему не сделается. Не проще проверять состояние ФС, автоматом фиксить и уводить в S5?

Мне хотелось сделать все в самом начале, до работы с ФС. Да и сервера бывают бездисковыми…

Но проблема в том, что ОС на пробуждаемой машине может не завестись из-за проблем с файловыми системами.

Тут нельзя не согласится, но:
1) Вероятность сбоя восстановления на новых ФС очень мала.
2) Компьютер работает не постоянно, сбои еще реже — вероятность сбоя при работающем компьютере будет еще меньше.
3) Если уж надо «не пробиваемое решение» с корневой системой, то можно ее монтировать в ro, накладывая сверху одну из unionfs — например overlayfs. Хотя можно даже сделать ro только /, а /usr rw, тогда ваша система будет доступна, восстановление остальных ФС в ручном режиме. При необходимости / перемонтировать на короткий срок в rw.
У меня похожая задача, но WoL удается поднять, только если есть доступ к компу из локальной сети, Magic Packet посылается по MAC-адресу, и через роутеры не пройдет.
Лет 10 назад я делал выключайщийся сервак 1С. Он включался по расписанию из BIOS, и был установлен Turn on after power falure, но «на всякий случай» все клиентские машины после включения посылали ему Magic Packet. Сбоев не было совсем.

Сейчас я использую похожую схему, и мне бы очень помог WoL который умеет ходить через маршрутизаторы (еще круче — через VPN).
Дело в том, что есть некие USB-девайсы, которые иногда отваливаются. Помогает либо вынуть/вставить девайс, либо выключить комп и включить снова. Перезагрузка компа не помогает.
Сейчас комп включается по расписанию из BIOS в 0:00 каждый день, поэтому задержка после «лечения» зависшего девайса может составлять до суток.
А если бы у меня был бы супер-пурер WoL, с помощью которого я через VPN мог бы разбудить комп, то я бы его поднимал сразу.
Посмотрите, может такое лекарство вам поможет. Вроде как товарищ выключает/включает usb-device в Linux, не трогая его руками.
Такое вероятно возможно только если железо позволяет управлять питанием портов. В большинстве же плат питание USB реализовано напрямую от +5В через самовосстанавливающиеся предохранители. Видимо, по какой-то причине они все же срабатывают и девайс прикидывается «мертвым» поскольку не получает питания. Перезагрузка не передергивает эти предохранители помогает лишь снятие напряжения которое происходит при выключении системы, и то если порт не запитан от дежурного источника — тогда только выдергивание вилки из розетки или девайса из порта.
Возможно, вам нужен PDU с веб-интерфейсом?
«Last State» – к автоматическому включению ПК добавляется возможность восстановления системы в том состоянии, в котором она находилась на момент пропадания питания.
Не совсем. При выбранном параметре Last State после восстановления питания компьютер будет включён в том случае, если он был включён в тот момент, когда питание отключилось. Если же в этот момент он был выключен, то после восстановления питания компьютер включён не будет.
Это и имелось в виду, подкорректировал, чтобы не вызывало не однозначного понимания.
Погуглил немного тему, оказывается WakeOnLan пакеты можно слать из интернета, если отфорвардить должным образом порт на роутере.
Ссылочку можно?
тыц, тыц и википедия все волшебство пакета в шести FF за которыми идет шестнадцать раз написанный MAC. В какой протокол это будит завернуто — неважно.
Пользовался, но глубоко не копал и свято верил что это специально сформированный ethernet фрейм… а оно вон как!
Как я понял, если комп итак постоянно включен, то волшебная опция After Power Failure — Turn on спасет от сбоя в сети? Т.е. как только электричество дадут, комп включится?
Да, вы все правильно поняли. Как только дадут электричество, комп включится.
Спасибо за то, что рассказали об этом. Такая мелочь, такое простое подключение, а решит все мои проблемы.
Как раз недавно активно читал статьи про настройку wake on lan, про перенаправление пакетов через роутер на спец. порт, думал уж статический ip у провайдера брать. Именно чтобы была возможность включить комп, который выключился. А ларчик то просто открывался. И ведь нигде не натыкался на это, читая про wake on lan.

Не всегда спасает. Например, если используются хоть какие-то отличающиеся настройки в BIOS, тот же даунвольтинг, то на некоторых платах, например на X79-UP4, бывает что POST проходит с ошибкой, загрузка дальше не идёт, и нужно вручную выбрать тот же профиль либо Optimized defaults. Естественно все настройки BIOS сбрасываются, включая after power failure. И не поможет даже Wi-Fi розетка.

Была ровно та же проблема — после отключения питания (выдёргивание шнура) компьютер не просыпался через WoL. Карта была тоже Реалтек.
Ситуацию спас ethtool: простой анализ (ethtool eth0 до и после) оказалось, что флаг «wol готов к работе» после включения питания — сбрасывался. Вылечилось простой командой (примерно) в rc.local: /sbin/ethtool eth0 -s wol g :-)
Я думаю, что у вас компьютер не включался по WOL и просто после выключения компьютера без выдергивания шнура, когда в rc.local не было ethtool. Такое случается на некоторых картах или настройках биоса и, действительно, проблема решается через ethtool. Про нее здесь не упоминалось, потому что уже написано много статей до этого топика. К тому же разное железо ведет себя по разному: раньше на картах был разъем WOL для 3х проводного кабеля, потом его убрали в связи с добавлением в PCI функции пробуждения. 3 провода — это два провода питания и сигнальный. Т.е. карточка может запитываться не от шины.

Есть еще `sudo dmidecode | grep Wake`, поверх которого, теоретически, можно придумать костыли. Но ловит ли он включение из G3 - я не проверял.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории