Я переупаковал приведенные ответы в этом потоке в отдельный пример:
#!/usr/bin/env python2
import signal
from gi.repository import Gtk
def bind_accelerator(accelerators, widget, accelerator, signal='clicked'):
key, mod = Gtk.accelerator_parse(accelerator)
widget.add_accelerator(signal, accelerators, key, mod, Gtk.AccelFlags.VISIBLE)
def on_recompute_base_encryption_key_hash(widget):
print 'Thinking... (This could take forever)'
def main():
if 'gtk':
window = Gtk.Window()
window.connect("delete-event", Gtk.main_quit)
if 'accelerator-demo':
# Accelerators
accelerators = Gtk.AccelGroup()
window.add_accel_group(accelerators)
# Widget
target_widget = Gtk.Button('Recompute Base Encryption Key Hash')
target_widget.connect('clicked', on_recompute_base_encryption_key_hash)
window.add(target_widget)
# Bind
bind_accelerator(accelerators, target_widget, '<Control>b')
window.show_all()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()
if __name__ == '__main__':
main()
Также доступен как gist: https://gist.github.com/thorsummoner/230bed5bbd3380bd5949 [!d1 ] Примечание: сигнал по умолчанию clicked, а не activate, потому что приложения никогда не должны подключаться к сигналу ::activate, но использовать сигнал Gtk.Button ::clicked.
Я бы сделал это комментарием, но это было бы слишком долго. Я не уверен, что это будет решение или просто догадка, но здесь идет ...
Я предполагаю, что вы установили grub на sdb, но вы загружаетесь из sda. Когда вы устанавливаете grub, вам нужно сделать две вещи: 1. Установите что-то в главной загрузочной записи (MBR) диска, который установлен для загрузки вашим BIOS. Это sda в вашей системе. MBR этого диска, видимо, имеет только загрузчик Windows, а не grub. 2. Скажите этому загрузчику, где найти файл меню grub, обычно в /boot/grub/grub.cfg последнего раздела Linux. Обратите внимание, что если код MBR не знает, где искать, это не имеет значения ни в чем, что находится в menu.lst, потому что его никогда не будет видно.
Самый простой способ исправить проблему для загрузки и записи Live CD под названием Super Grub Disk.
Другим способом является использование командной строки и запуск grub-install, рассказывающий, где поставить MBR-код, но я думаю, что это довольно понятно.
; вам нужно будет установить диск для этого и запустить его с живого компакт-диска. Команда будет выглядеть примерно так: sudo grub-install --root-directory=/location of root directory /dev/sda Вам нужно будет указать правильное расположение корневого каталога дистрибутива для файла grub.cfg, если только он не запущен в живой системе (я никогда не пробовал это, но это может возможно, хотя, вероятно, и не рекомендуется). Если вы хотите пройти этот маршрут, я уверен, что вы можете найти пошаговые инструкции.
После того, как MBR настроен, вы можете запустить sudo update-grub, чтобы обновить файл меню.
Вы также можете использовать настройку BIOS, чтобы выбрать, какую ОС загружать, путем выбора диска 1 или диска 2. Это должно работать, хотя я нашел, что это было проблематично в долгосрочной перспективе, потому что grub в конечном итоге будет установлен на диск 1 по ошибке.