Форум русскоязычного сообщества Ubuntu
Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- GRUB 2 и Timeout в меню выбора ОС — [РЕШЕНО]
Страницы: [1] 2 Все Вниз
Автор Тема: GRUB 2 и Timeout в меню выбора ОС — [РЕШЕНО] (Прочитано 30730 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Страницы: [1] 2 Все Вверх
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- GRUB 2 и Timeout в меню выбора ОС — [РЕШЕНО]
Страница сгенерирована за 0.039 секунд. Запросов: 23.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Grub timeout style hidden что это
22 апр 2018, 16:45
Ноутбук, mint 18.3 cinnamon, дуалбут.
В /etc/grub.d/40_custom добавил строки: set timeout_style=hidden set timeout=0 Затем update-grub
Проблема в том, что сразу начинает грузиться ось(та что первым пунктом идет в grub). Зажимай шифт- не зажимай, меню grub видимым не сделать.
Как бы мне включить возможность сделать меню видимым при зажатии какой-нибудь клавиши? Но при этом и оставить невидимым, если ничего не нажимать и система автоматически грузилась из первой строки grub?
Я уже пробовал в /etc/grub.d/40_custom добавить:
set timeout_style=hidden if [ "x\$" != "x-1" ]; then if keystatus; then if keystatus --shift; then set timeout=-1 else set timeout=0 fi else if sleep --interruptible $ ; then set timeout=0 fi fi fi
Но shift все-равно не работает. Кроме того, один черный экран, где вслепую приходится вводить код от люкса.
Пробовал выставлять GRUB_HIDDEN_TIMEOUT=10 и GRUB_TIMEOUT=0 + вставлять код, что выше в /etc/grub.d/40_custom , но становилось еще хуже. Но заметил, что Esc отображает grub, но вот если ничего не нажимать, то система автоматически уже не грузится из первой строки grub.
В данный момент я вернул все как было, а именно — сам grub:
GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""
А из /etc/grub.d/40_custom — удалил все, что добавлял ранее.
P.S> после всех изменений всегда делал update-grub.
Последний раз редактировалось пользователем 1 rogoznik; всего редактировалось раз: 22
Причина: BBcode
Как скрыть меню grub и чтобы shift работал?
В /etc/grub.d/40_custom добавил строки: set timeout_style=hidden и set timeout=0 Затем update-grub
Проблема в том, что сразу начинает грузиться ось(та что первым пунктом идет в grub). Зажимай шифт- не зажимай, меню grub видимым не сделать.
Как бы мне включить возможность сделать меню видимым при зажатии какой-нибудь клавиши? Но при этом и оставить невидимым, если ничего не нажимать и система автоматически грузилась из первой строки grub?
Участник с: 17 февраля 2011
FliXis
Зажимай шифт- не зажимай, меню grub видимым не сделать.
А грабу плевать с высокой горки на зажатый шифт.
FliXis
Как бы мне включить возможность сделать меню видимым при зажатии какой-нибудь клавиши?
Погуглить как минимум.
https://aur.archlinux.org/packages/grub-holdshift/
Участник с: 22 апреля 2018
Какой из них лучше использовать?
Участник с: 17 февраля 2011
FliXis
по некоторым причинам я не могу использовать готовый пакет
Даже интересно, по каким же?
FliXis
в чем различие
Первый — проще и у него есть автор. Второй, соответственно, чуть больше и от лукавого от анонимуса. )
В подробности, за ненадобностью, не вникал.
Участник с: 22 апреля 2018
FliXis
по некоторым причинам я не могу использовать готовый пакет
Даже интересно, по каким же? У меня совсем другой дистрибутив, а если точнее, то это mint 18.3 cinnamon. Не найдя помощи на пятерке дугих ресурсов, я пришел сюда. Надеюсь это не запрещено правилами форума, к примеру, на форуме ubuntu(на котором mint и основан) тему снесли и разрешили создать лишь в местной «болталке», где сидит полтора человека.
Так же, я пробовал в /etc/grub.d/40_custom
прописать вот этот кусок кода, который мне посоветовали на лоре:
set timeout_style=hidden if [ "x\$" != "x-1" ]; then if keystatus; then if keystatus --shift; then set timeout=-1 else set timeout=0 fi else if sleep --interruptible $ ; then set timeout=0 fi fi fi
Но shift так и не заработал.
Еще находил руководство, где требовалось закомментить
if [ "x$" != "x" ]; then
в файле 30_os-prober из-за какого-то бага связанного с дуалбутом, но в нем эта строка уже выглядит несколько иначе, чем в том руководстве, что я видел и не стал это пробовать.
Участник с: 17 февраля 2013
FliXis
добавил строки: set timeout_style=hidden и set timeout=0
Клавиша «SHIFT» не поможет с отображением меню Grub2 (без соответствующей доработки), если значение параметра timeout=0
FliXis
Так же, я пробовал в /etc/grub.d/40_custom
прописать вот этот кусок кода, который мне посоветовали на лоре:
Этот код никогда не пробовал, я использую другой, но есть одно НО — это не работает при перегрузке, работает только при включении — после нажатия на кнопку питания, удерживай SHIFT, пока не появится меню.
UPD — насколько помню, нужно приписывать этот код в файл /etc/grub.d/30_os-prober
Пробуй, если не сработает, привожу рабочий вариант, правда у меня grub.cfg самописный, написанный ручками. Привожу самое начало
# cat /boot/grub/grub.cfg
set default=0 # set timeout=0 adjust_timeout () < cat # пункт меню номер 0 menuentry "Arch Linux" < linux /boot/vmlinuz-linux root=/dev/sda3 rw initrd /boot/initramfs-linux.img >….. и далее прописаны еще 3 системы ….
Уточнение
1. Установить значение timeout равным нулю ….. и больше никакие параметры не трогать.
2. Привожу отдельно сам код, без которго клавиша SHIFT работать не будет
adjust_timeout ()
Если не хочешь использовать самописный grub.cfg, попробуй прописать этот код в /etc/grub.d/30_os-prober
Ошибки не исчезают с опытом — они просто умнеют
Участник с: 22 апреля 2018
found_other_os= adjust_timeout () < if [ "$quick_boot" = 1 ] && [ "x$" != "x" ]; then cat " = 0 ]; then set timeout=10 fi EOF fi >
И в самом-самом конце файла зачем-то упоминается еще раз:
adjust_timeout
Мне надо это привести к такому состоянию?
found_other_os= adjust_timeout ()
Как-то стремно, что не загружусь в систему. Я ведь смогу, если вдруг что не так — просто зайти из под лайв-флешки, примотировать корневой раздел и заметить на резервную копию этого файла? Мне не придется выполнять команду update-grub? Я просто не помню как из под флешки дать команду на апдейт примотированному корневому разделу.
На всякий случай еще раз напишу — у меня дуалбут. И забыл упомянуть вначале — стоит luks на всех разделах, кроме boot — не знаю важно это для этой задачи или же нет.
И еще в самом грабе:
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX_DEFAULT=""
И еще вопрос, а в чем разница между добавлением кода в /etc/grub.d/40_custom и редактированием /etc/grub.d/30_os-prober или, например, подсовыванием стороннего /etc/grub.d/31_hold_shift?
Участник с: 17 февраля 2013
# по-умолчанию выбран пункт меню 0 set default=0 set timeout=5 #adjust_timeout () < # cat # пункт меню номер 0 menuentry "Arch Linux" < linux /boot/vmlinuz-linux root=/dev/sda3 rw initrd /boot/initramfs-linux.img ># пункт меню номер 1 menuentry "Arch Linux-lts" < linux /boot/vmlinuz-linux-lts root=/dev/sda3 rw initrd /boot/initramfs-linux-lts.img ># пункт меню номер 2 submenu "Ubuntu" < set root=hd0,2 linux /boot/vmlinuz-3.2.0-39-generic-pae root=/dev/sda2 rw quiet initrd /boot/initrd.img-3.2.0-39-generic-pae ># пункт меню номер 3 menuentry "Windows 7"
GRUB2 — Быстрый старт
Эта статья описывает, как установить и запустить GRUB в простейшей конфигурации. Для перехода с GRUB Legacy на GRUB2 смотрите Миграция на GRUB2.
- 1 Установка GRUB
- 2 Активация загрузчика GRUB
- 3 Автоматическая настройка
- 3.1 Схема именования ядер
- 3.2 Тихая загрузка ядра
- 3.3 systemd
Установка GRUB
Для установки GRUB, сначала задайте для переменной GRUB_PLATFORMS одно или более значение в системном make.conf . Если не определять переменную, то GRUB сам определит, какая платформа установлена в системе. Он определит pc (для MBR стиля установки) для архитектур x86 / amd64 .
Поддержка стандартного ПК (BIOS):
ФАЙЛ /etc/portage/make.conf Пример GRUB_PLATFORMS для ПК с BIOS
GRUB_PLATFORMS="pc"
ФАЙЛ /etc/portage/make.conf Пример GRUB_PLATFORMS для ПК с 64–битным UEFI
GRUB_PLATFORMS="efi-64"
Поддержка и BIOS, и UEFI:
ФАЙЛ /etc/portage/make.conf Пример GRUB_PLATFORMS с несколькими вариантами
GRUB_PLATFORMS="efi-64 pc"
После настройки переменной, установите ПО:
root # emerge —ask sys-boot/grub
Активация загрузчика GRUB
Если применимо, смонтируйте /boot :
root # mount /boot
Если используется EFI платформа, убедитесь, что системный раздел EFI доступен в (смонтирован) в /boot/efi . Этого можно добиться либо с помощью специального раздела ( /boot/efi отформатированного в FAT), либо раздел /boot должен быть полностью отформатирован в файловую систему FAT. Это преобразует /boot в большой системный раздел EFI
Предполагая, что только /boot/efi форматирован в FAT:
root # mount /boot/efi
Запустите утилиту grub-install для копирования нужных файлов в /boot/grub . На платформе PC данная утилита также записывает начальный загрузчик в главную загрузочную область (MBR) или загрузочный сектор раздела.
Для установки GRUB в MBR:
root # grub-install /dev/sda
Installation finished. No error reported.
Для установки GRUB на EFI–совместимую систему:
root # grub-install —target=x86_64-efi
Installation finished. No error reported.
Утилита grub-install может принимать параметр —target для определения ЦПУ/платформы, на которую, grub2 устанавливается. Если данный параметр не задан, то grub-install сам попытается определить параметр. На x86 / amd64 будет использован параметр i386-pc по умолчанию.
Автоматическая настройка
GRUB настраивается при помощи утилиты grub-mkconfig , которая создаёт конфигурационный файл.
grub-mkconfig создаёт конфигурационный файл основываясь на шаблонах расположенных в /etc/grub.d . Стандартных шаблонов, в основном, должно хватить для большинства схем загрузок.
user $ ls /etc/grub.d
00_header 10_linux 20_linux_xen 30_os-prober 40_custom 41_custom README
Поведение данных шаблонов можно контролировать заданием переменных в /etc/default/grub . Смотрите GRUB manual для более подробной информации по настройке GRUB2.
Схема именования ядер
Чтобы grub-mkconfig определила доступные ядра, их имена должны начинаться с vmlinuz- или kernel- .
КОД Пример названий ядер, которые GRUB может определить
/boot/vmlinuz-3.4.3 /boot/kernel-2.6.39-gentoo /boot/kernel-genkernel-x86_64-3.17.1-gentoo-r1
Если используется initramfs, то название файла должно начинаться с initramfs- или initrd- . Версия должна совпадать с версией образа ядра. Файлы, созданные с помощью genkernel , также будут найдены.
КОД Пример названий initramfs, которые GRUB может определить
/boot/initrd.img-3.4.3 /boot/initrd-3.4.3.img /boot/initrd-3.4.3.gz /boot/initrd-3.4.3 /boot/initramfs-3.4.3.img /boot/initramfs-genkernel-3.4.3-gentoo /boot/initramfs-genkernel-x86_64-2.6.39-gentoo
Для создания файла grub.cfg выполните команду grub-mkconfig :
root # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg . Found linux image: /boot/vmlinuz-3.2.9 done
Тихая загрузка ядра
Для загрузки ядра без вывода на экран системных сообщений отредактируйте файл /etc/default/grub , добавив quiet в переменную GRUB_CMDLINE_LINUX_DEFAULT .
ФАЙЛ /etc/default/grub Пример параметров тихой загрузки
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
systemd
Для загрузки systemd при использовании GRUB настройте переменную GRUB_CMDLINE_LINUX таким образом:
Важно
Это больше не является необходимым для sys-apps/systemd , если включён USE–флаг sysv-utils . Он активен по умолчанию в Gentoo, начиная с версии 239.ФАЙЛ /etc/default/grub Systemd пример
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
Загрузка других операционных систем
Утилита grub-mkconfig может также создать конфигурации для загрузки «других» операционных систем. Однако, для это потребуется пакета sys-boot/os-prober .
Для загрузки Windows также должен быть установлен пакет sys-fs/ntfs3g . Это позволит утилите grub-mkconfig исследовать NTFS файловые системы.
Ручная настройка
Использование grub-mkconfig не является обязательным. Файл конфигурации grub.cfg также можно отредактировать вручную.
Переход от формата конфигурации GRUB Legacy к формату конфигурации GRUB 2 обычно довольно прост и требует внесения всего нескольких мелких синтаксических изменений.
ФАЙЛ grub.conf GRUB Legacy
timeout 5 »’title»’ Gentoo Linux 3.2.12 root »’(»’hd0,»’0)»’ »’kernel»’ /boot/kernel-3.2.12-gentoo root=/dev/sda3
ФАЙЛ grub.conf GRUBtimeout'''='''5 '''menuentry ''''Gentoo Linux 3.2.12'''' {''' root'''='''hd0,'''1''' '''linux''' /boot/kernel-3.2.12-gentoo root=/dev/sda3 '''}'''
Заметка
GRUB Legacy нумерует разделы, начиная с 0; GRUB нумерует разделы, начиная с 1. Оба загрузчика нумеруют диски, начиная с 0.Смотрите также
- GRUB — Подробная статья о GRUB, которая содержит больше информации и обширный список дополнительных ресурсов.