После прочтения статьи в Википедии по этому вопросу я хотел бы предложить несколько дополнительных решений: Изменить порядок загрузки в BIOS :) Самый лучший и самый безопасный: используйте fdisk для удаления " bootable "из любых разделов на этом диске. Большинство MBR ищут «загрузочный» раздел для загрузки по цепочке, поэтому я ожидал бы, что GRUB просто ничего не сделает, если таких разделов нет. Не тестировали. Если это не поможет, попробуйте установить бесплатный клон стандартного MBR-кода: установите пакет mbr и используйте команду install-mbr следующим образом: sudo apt-get install mbr
sudo install-mbr -i n -p D -t 0 /dev/sda
Кредиты: Статья в Википедии
Из чтения статьи в Википедии у меня сложилось впечатление, что единственной вещью, которая идентифицирует MBR, является ее подпись, которая находится в самом конце сектора (байты 510 и 511). Первые 446 байт MBR должны содержать машинные инструкции. Предполагается, что BIOS должен передать управление загрузчику независимо от фактического содержимого первых 446 байт, если присутствует подпись MBR:
На компьютерах IBM, совместимых с ПК, загрузочная прошивка, содержащаяся в BIOS ROM загружает и выполняет основную загрузочную запись. [14] ... Таким образом, ожидается, что начало MBR будет содержать инструкции машинного языка реального режима. [14] BIOS считывает MBR с запоминающего устройства в физическую память, а затем направляет микропроцессор в начало загрузочного кода. Из-за ограниченного размера раздела кода MBR он обычно содержит только небольшую программу, которая копирует дополнительный код (например, загрузчик) из запоминающего устройства в память. Затем управление передается этому коду, который отвечает за загрузку реальной операционной системы. ... Последовательность загрузки в BIOS загрузит первый действительный MBR, который он находит в физической памяти компьютера по адресу 0x7C00. Последняя инструкция, выполненная в коде BIOS, будет «прыгать» на этот адрес, чтобы выполнить непосредственное выполнение в начале копии MBR. Первичная валидация большинства BIOS - это подпись 0xAA55 в конце, хотя разработчик BIOS может выбрать другие проверки, такие как проверка того, что MBR содержит допустимую таблицу разделов без записей, относящихся к секторам за пределами сообщаемой емкости диска.Итак, я понимаю, что MBR всегда должен содержать загрузчик, и обнуление первых 446 байтов этого не остановит BIOS от попытки загрузки с диска - но это, скорее всего, заставит компьютер зависать при попытке выполнить недопустимый код.
always Кроме того, в этой статье предполагается, что для того, чтобы диск выглядел «не загружаемым» для BIOS, вы должны фактически отредактировать подпись MBR на и сектора (используя любой редактор диска). Я не уверен, что это повлияет на ОС, увидев таблицу разделов на диске, хотя ... но по крайней мере вы всегда можете изменить эти байты обратно ...
Другим способом gnome является использование dbus.
dbus-send --system --print-reply \
--dest="org.freedesktop.UPower" \
/org/freedesktop/UPower \
org.freedesktop.UPower.Suspend
Для этой команды есть два преимущества pm-suspend.
Он заблокирует ваш экран (после возобновления ), если этот параметр выбран в gnome. Он не требует привилегий root, поэтому его легко добавить в виде сочетания клавиш, например.Как упоминалось в комментариях об обмене Suspend в последней строке на Hibernate, создается команда спящего режима:
dbus-send --system --print-reply \
--dest="org.freedesktop.UPower" \
/org/freedesktop/UPower \
org.freedesktop.UPower.Hibernate
Если спящий режим выбрасывает Error org.freedesktop.UPower.GeneralError: not authorized, ваш пользователь может не допускается спящий режим. Измените или создайте /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla, чтобы он содержал следующий раздел: (источник)
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Это было проверено на (source) .
Примечание: Это в основном то же самое, что и ответ qbi, но он обновлен для работы с более новыми версиями Ubuntu, включая спящий режим.
Если вы хотите, чтобы ваш компьютер был приостановлен через один час, потому что вы хотите лечь спать, слушая любимую радиостанцию, откройте терминал и введите:
sudo bash -c "sleep 1h; pm-suspend"
и ваш компьютер засыпает через 1 час.
Вы можете заменить 1h на то, что вы хотите: h в течение часов, m в течение минут, s для
Спокойной ночи!
Si vous voulez juste que votre ordinateur se mette en ville vousleus vous endormir en ecoutant votre radio préférée, ouvrez Terminal et tapez:
sudo bash -c "sleep 1h; pm-suspend"
et votre ordinateur s'endormira dans une heure.
Vous pouvez remplacer 1h par ce que vous voulez: h pour les heures, m залить минуты, s
Bonne nuit!
Si quieres suspender tu computadora en una hora porque quieres и dormir escuchando tu estación de radio favorita, tan solo abre el terminal y escribe:
sudo bash -c "sleep 1h; pm-suspend"
y tu computadora se quedará dormida en 1 hora.
Puedes reemplazar 1h por lo que desees: h para horas, m para minutos, s para segundos, [ f18] para días.
¡Buenas noches!
Для Ubuntu 12.04 LTS и Ubuntu 13.04
Чтобы получить спящий режим:
sudo pm-hibernate
Чтобы получить Suspend:
sudo pm-suspend
Вы можете использовать файл /sys/power/state для этого. Сначала выясните, какие состояния поддерживаются:
user@linux:_> cat /sys/power/state
standby mem disk
root@linux:~> echo -n mem > /sys/power/state # suspend to ram
root@linux:~> echo -n disk > /sys/power/state # suspend to disk
или через dbus:
# Приостановить dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call --print-reply --reply-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Suspend #Hibernate dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call --print-reply --reply-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.HibernateВ соответствии с этой записью в панели запуска вышеупомянутый интерфейс был удален. Так что в Ubuntu это не сработает.
Чтобы отключить систему (14.04) из командной строки (или комбинации клавиш), используйте:
dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true
Я нашел это, играя с gdbus, который может отображать доступные интерфейсы: [!d1 ]
Чтобы просмотреть службы, доступные на шине:
dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
Чтобы найти методы:
gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
Ответ dbus-send Адама Паэтница не работал, как предполагалось для меня на ясном; машина разбудила разблокировку, хотя диспетчер gnome-power установлен для блокировки экрана при пробуждении. Я хочу, чтобы экран был заблокирован при пробуждении, и обнаружил, что следующее:
$ gnome-screensaver-command --lock && pmi action hibernate
Я полагаю, это не зависит от конфигурации gnome, но я не тестировал это. [ ! d1]
, так как 15.04 systemD - стандартная система init, поэтому есть новая команда, которая будет использоваться:
systemctl suspend
Новый интерфейс
... который работает в 15.10 Wily и, возможно, Utopic и Vivid.
dbus-send --print-reply --system \
--dest=org.freedesktop.login1 \
/org/freedesktop/login1 \
org.freedesktop.login1.Manager.Suspend boolean:true
Полезно это не требует sudo, в отличие от команды pm-suspend.
Вот как поставить удаленную машину в режим ожидания по ssh:
ssh -t 192.168.1.4 'sudo nohup &>/dev/null bash -c "(sleep 1; echo -n mem >/sys/power/state) &"' x@192.168.1.4's password: [sudo] password for x: Connection to 192.168.1.4 closed./ sys / power / state работает в Ubuntu 13.10. pmi дает ошибку Dbus.
Лично я экспериментировал с методом pmi. Однако, когда я попробовал это, у меня появилось сообщение об ошибке: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Тем не менее, есть обходной путь в третьем комментарии к этому отчету об ошибке, который, похоже, сработал для меня (я использую Ubuntu 13.03).
Обновление для тех, кто, как и я, все еще работает над системами KDE / Ubuntu 14.04. Чтобы заблокировать использование qdbus и приостановить использование dbus. Полная команда:
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Чтобы спящий режим, т.е. приостановить работу с жестким диском вместо ОЗУ, замените команду «Suspend» в конце команды на «Hibernate».
Чтобы просто заблокировать экран без приостановки, xscreensaver-command -lock будет работать, если вы набираете только 1 дефис для опции «-lock» и только если заставка работает. На самом деле это не очень полезная команда. Использовать i3lock проще, но тогда вы не получите аккуратного диалогового окна входа в систему, чтобы вернуться к работе, как это будет при использовании qdbus.
Следующее работает для меня в 16.04 (с настольным компьютером Gnome):
gnome-screensaver-command --lock && compsleep
Я также установил его как пользовательскую комбинацию клавиш с помощью панели настроек Gnome в виде клавиш "Shift-Super-X".