Автор Тема: Как настроить клавишу shift в GRUB2 [решено]  (Прочитано 2462 раз)

Оффлайн Maxxximka

  • Завсегдатай
  • *
  • Сообщений: 305
Добрый день, форумчане!

Есть ли способ зайти в меню GRUB, если отключен тамаут и система начинает грузиться сразу?
Shift не работает.
« Последнее редактирование: 04.10.2016 17:42:59 от Skull »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #1 : 23.09.2016 18:03:41 »
Привет!

Видимо не реализовано просто...
https://ubuntuforums.org/showthread.php?t=1904617

Поправьте файл /etc/grub.d/00_header:
# diff -u /etc/grub.d/00_header /etc/grub.d/00_header_new
--- /etc/grub.d/00_header 2016-09-23 15:01:32.188074430 +0500
+++ /etc/grub.d/00_header_new 2016-09-23 15:02:31.308073215 +0500
@@ -285,7 +285,11 @@
 EOF
     else
  cat << EOF
-set timeout=${2}
+if keystatus --shift; then
+    set timeout=-1
+else
+    set timeout=${2}
+fi
 EOF
 
     fi
« Последнее редактирование: 23.09.2016 18:05:42 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #2 : 23.09.2016 18:04:11 »
Может и в багзиллу следует написать...
Сноси Винду, переходи на Линукс ! :)

Оффлайн Maxxximka

  • Завсегдатай
  • *
  • Сообщений: 305
Re: Как настроить клавишу shift в GRUB2
« Ответ #3 : 28.09.2016 09:37:12 »
Куда этот код вставить?
adjust_timeout () {
  if [ "x${found_other_os}" = "x" ] ; then
    if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then
      if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then
    verbose=
      else
    verbose=" --verbose"
      fi

      if [ "x${GRUB_HIDDEN_TIMEOUT}" = "x0" ] ; then
    cat <<EOF
if [ \${timeout} != -1 ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF
      else
    cat << EOF

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #4 : 28.09.2016 10:31:01 »
Куда этот код вставить?
Не надо его вставлять никуда !

Нужно только поправить файл /etc/grub.d/00_header, заменить в нём строку:
set timeout=${2}на
if keystatus --shift; then
    set timeout=-1
else
    set timeout=${2}
fi
После этого перегенировать меню груба:
grub-mkconfig -o /boot/grub/grub.cfg
Сноси Винду, переходи на Линукс ! :)

Оффлайн Maxxximka

  • Завсегдатай
  • *
  • Сообщений: 305
Re: Как настроить клавишу shift в GRUB2
« Ответ #5 : 28.09.2016 10:35:55 »
Спасибо, попробую

Оффлайн Maxxximka

  • Завсегдатай
  • *
  • Сообщений: 305
Re: Как настроить клавишу shift в GRUB2
« Ответ #6 : 28.09.2016 15:04:49 »
Не сработало  :'-(

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #7 : 28.09.2016 15:42:22 »
Не сработало
Покажите содержимое файлов /boot/grub/grub.cfg и /etc/grub.d/00_header.
Сноси Винду, переходи на Линукс ! :)

Инфлэйм

  • Гость
Re: Как настроить клавишу shift в GRUB2
« Ответ #8 : 28.09.2016 18:00:37 »
Есть ли способ зайти в меню GRUB, если отключен тамаут и система начинает грузиться сразу?

Все очень просто, отредактируйте /etc/sysconfig/grub
# Ждём 1 сек. для принудительного входа в отключенное меню по клавише Esc
GRUB_HIDDEN_TIMEOUT=1
Вместо "1" можете поставить свое значение
После чего перегенерируйте груб
« Последнее редактирование: 28.09.2016 18:04:40 от Инфлэйм »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #9 : 28.09.2016 18:11:34 »
GRUB_HIDDEN_TIMEOUT=1
Немного не то... В таком случае будет всё равно время тратиться, вариант по ссылке выше предпочтительней, если нужно именно GRUB_TIMEOUT=0 и ни секундой больше!
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #10 : 28.09.2016 18:23:00 »
Maxxximka
Кажется, понял в чём вероятней всего допустили ошибку. Нужно заменить второе совпадение! Вот кусок из файла привожу:
else
    verbose=" --verbose"
fi
cat << EOF
if sleep$verbose --interruptible ${1} ; then
  set timeout=${2}
fi
EOF
    else
cat << EOF
if keystatus --shift; then
    set timeout=-1
else
    set timeout=${2}
fi
EOF
    fi
}

if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF

Вы, наверно, заменили вот тут:
if sleep$verbose --interruptible ${1} ; then
  set timeout=${2}
fi
Это неправильно!

Ещё маленькое дополнение: предложенный вариант с GRUB_HIDDEN_TIMEOUT=1 не будет работать совместно с вариантом, предложенным по ссылке, то есть либо-либо.
Сноси Винду, переходи на Линукс ! :)

Инфлэйм

  • Гость
Re: Как настроить клавишу shift в GRUB2
« Ответ #11 : 28.09.2016 18:35:14 »
GRUB_HIDDEN_TIMEOUT=1
Немного не то... В таком случае будет всё равно время тратиться, вариант по ссылке выше предпочтительней, если нужно именно GRUB_TIMEOUT=0 и ни секундой больше!
У меня таймаут тоже "0", но перед тем, как начинается грузится система, есть время для нажатия Esc, чтобы перейти в меню груб.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #12 : 28.09.2016 19:38:53 »
У меня таймаут тоже "0", но перед тем, как начинается грузится система, есть время для нажатия Esc, чтобы перейти в меню груб.
Я про то, что всё равно приходится ждать до загрузки системы :) Ведь если не жать Esc, то придётся выждать 3 с., к примеру, чтобы система начала загружаться. В варианте с shift вообще не будет задержки.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Maxxximka

  • Завсегдатай
  • *
  • Сообщений: 305
Re: Как настроить клавишу shift в GRUB2
« Ответ #13 : 30.09.2016 14:47:58 »
Ок! Пойдет и такой способ.
Возможно ли сделать чтобы таймер не светился?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 053
    • Email
Re: Как настроить клавишу shift в GRUB2
« Ответ #14 : 30.09.2016 18:49:40 »
Возможно ли сделать чтобы таймер не светился?
Да.

Привести /etc/grub.d/00_header к исходному состоянию:
apt-get reinstall grub2-commonСкачать файл 00_header.patch (см. вложения) и положить, скажем, в /tmp/.
Выполнить от root (путь до файла /tmp/00_header.patch изменить при необходимости):
patch /etc/grub.d/00_header < /tmp/00_header.patchВ /etc/sysconfig/grub2 проверить настройки:
GRUB_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT=3
#GRUB_HIDDEN_TIMEOUT_QUIET=TRUE
Перегенировать grub2:
grub-mkconfig -o /boot/grub/grub.cfg
Сейчас проверил только что на OS Simply 7 x64 p7, всё работает как надо, при зажатом shift загрузка останавливается на меню.
Сноси Винду, переходи на Линукс ! :)