- Как обновить загрузчик GRUB в Debian и производных дистрибутивах (Kali Linux, Ubuntu, Linux Mint)
- Когда нужно обновлять загрузчик GRUB в /boot/grub/
- Проверка, используется ли GRUB в операционной системе
- Как обновить загрузчик GRUB в /boot/grub/
- Связанные статьи:
- Статья Восстанавливаем GRUB в Kali Linux после обновления до Windows 10
- О том о сем бложик
Как обновить загрузчик GRUB в Debian и производных дистрибутивах (Kali Linux, Ubuntu, Linux Mint)
Загрузчик операционной системы GRUB устанавливается и обновляется в Linux как и любой другой пакет программного обеспечения. Но особенностью загрузчика является то, что даже после обновления пакета, фактически работающие файлы загрузчика, которые находятся в разделе, монтируемом по пути /boot/grub/, не обновляются автоматически.
То есть при выходе новых версий GRUB, пакет в вашей ОС обновляется автоматически.
Но сам загрузчик, который устанавливается на отдельном разделе диска и монтируется по пути /boot/grub/, не обновляется.
Чтобы начать использовать новые функции, которые добавлены в новые версии GRUB, вам нужно вручную обновить загрузчик.
Когда нужно обновлять загрузчик GRUB в /boot/grub/
Сигналом, что вышла новая версия GRUB, является примерно следующие сообщения:
Setting up grub-common (2.06-8+kali1) . . Setting up grub2-common (2.06-8+kali1) . . Setting up grub-pc-bin (2.06-8+kali1) …
Ещё один признак, что обновился пакет GRUB — запрос на обновление дефолтного файла конфигурации GRUB.
Чтобы использовать новые функции, представленные в этом обновлении GRUB, рекомендуется установить его в MBR или UEFI. Из-за потенциальной несовместимости конфигурации рекомендуется выполнить как установку, так и создание конфигурации.
То есть если вы видите эти сообщения, значит вам нужно обновить загрузчик в /boot/grub/.
Проверка, используется ли GRUB в операционной системе
Чтобы убедиться, что в качестве загрузчика используется именно GRUB, выполните следующую команду:
Если файл /boot/grub/grub.cfg найден, значит используется GRUB, если файл grub.cfg не найден, значит GRUB не используется и обновлять его не нужно. То есть не нужно выполнять действия, показанные в данной статье!
Как обновить загрузчик GRUB в /boot/grub/
Для обновления загрузчика нужно выполнить команду вида:
grub-install --recheck /dev/DISK
Где в качестве /dev/DISK нужно указать имя вашего диска.
Имена дисков можно проверить командой:
Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 104857566 104855519 50G 83 Linux Disk /dev/vdb: 450 KiB, 460800 bytes, 900 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
В данном случае именем диска является /dev/vda. Обратите внимание, что /dev/vda — это не загрузочный или какой-то другой раздел — это весь диск.
Итак, команда для обновления GRUB в /boot/grub/ в моём случае следующая:
grub-install --recheck /dev/vda
Installing for i386-pc platform. Installation finished. No error reported.
Также необходимо создать новый файл конфигурации следующей командой:
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file . Found linux image: /boot/vmlinuz-6.0.0-kali6-cloud-amd64 Found initrd image: /boot/initrd.img-6.0.0-kali6-cloud-amd64 Found linux image: /boot/vmlinuz-6.0.0-kali5-cloud-amd64 Found initrd image: /boot/initrd.img-6.0.0-kali5-cloud-amd64 Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. done
Обновление загрузчика GRUB и обновление конфигурации GRUB завершилось успешно. При следующей загрузке, ваша операционная система будет использовать новые функции, которые были добавлены обновлением GRUB.
Связанные статьи:
Статья Восстанавливаем GRUB в Kali Linux после обновления до Windows 10
Привет всем! Недавно столкнулся с такой проблемой, как восстановление загрузчика GRUB на ноуте с двумя операционками – Windows 10 и Kali Linux. В интернете пришлось довольно долго искать необходимый мануал, поскольку с подобным мало кто сталкивается. В основном пишут о восстановлении GRUB в Ubuntu, а это не совсем подходит для Kali. Поэтому решил поделиться своим опытом – возможно кому-то пригодится.
Вообще-то две (а иногда и более) принципиально различных ОС на моих компьютерах уживаются уже несколько лет, ничего удивительного в этом нет. Главное сохранить правильную очередность при установке ОС. Сначала ставим винду, оставляя часть диска неразмеченным под Linux, а после уже устанавливаем и последнюю ОС. Загрузчик Linux-а при этом автоматически определяет, что установлена Windows или другая ОС и вам остается только выбирать при загрузке нужную систему.
Так было до последнего времени и на новом ноуте – стояла Windows 8.1 и Kali Linux. Все работало без проблем, пока не решил попробовать новую Windows 10 (инсайдер-версию) для теста. Ее установил на место старой 8.1 при этом хитрая форточка, как всегда, перезаписала загрузчик GRUB. Переустанавливать Kali Linux не хотелось, поскольку там было сделано достаточно много настроек и наработок. Поэтому пришлось искать другой выход.
Для восстановления загрузчика нам понадобится LiveCD версия линукс, установленная на оптический диск, или usb носитель. Загружаемся с нашего носителя в обычном режиме, открываем консоль. Если вы не помните на каком разделе у вас стоит Linux, следует сначала воспользоваться командой:
/dev/sda1 29 8369 66999082+ 83 Linux /dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS /dev/sda3 13996 14593 4803435 5 Extended Видим, что наша Linux стоит в разделе / dev / sda1
Далее можем выполнять следующие команды (обращайте внимание на каком разделе у вас стоит Linux, его и подставляете вместо sda1)
mount /dev/sda1 /mnt mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys chroot /mnt grub-install /dev/sda update-grub exit umount /mnt/dev/pts umount /mnt/dev umount /mnt/proc umount /mnt/sys umount /mnt
Все! Делаем reboot и наблюдаем знакомое меню выбора ОС. Если вдруг пункт Windows в нем отсутствует (что очень маловероятно), выполняем в консоли под root-ом еще одну команду:
должно помочь. Успехов вам!
MIRK
05.10.2015 в 18:40
Прошу помочь в таком вопросе, перерыл кучу всего в гугле, но там либо нечего нет, либо я не понимаю что и как, а вопрос собственно вот в чем при установки кали линукс с флешки вместо стандартной установки появляется консоль grub и все что делать далее я вообще не понимаю, прошу обратить внимание на то что до этого стояла кали я ее не правильно снес и хотел поставить эту сверху но не фига не получилось конечно же, поставил другой вообще винт который фиг знает как отфарматирован но раб 100% биос его видит и флешку тоже, что и как уставновить подскажите пожалуйста, аж самому интересно взять и сделать научиться как нужно))заранее спасибо)
DOCENT
05.10.2015 в 22:07
Я если честно запутался в этой истории ))) Поподробней, неспеша, с запятыми. Может чем подскажу.
ANDREY
15.11.2015 в 01:25
Здравствуйте,
Правильно ли я понял, что если у меня /boot отдельным разделом, то мне проделывать все эти операции там?
ANDREY
15.11.2015 в 02:01
Не хватило терпения дождаться) Попробовал проделать все с boot разделом – нет этих папок (dev, proc, sys)
Пробовал через раздел с Линуксом – grub2 не видит Кали, только Винда…
Вот мой список разделов:
SSD
/dev/sdb1 * Linux (/boot)
/dev/sdb2 Linux (основной)
HDD
/dev/sda1 Linux (swap)
/dev/sda2 Linux (/home)
/dev/sda3 * Windows
Как быть? Что делать?
ANDREY
15.11.2015 в 02:33
Сам спросил, сам отвечу.
Сначало смонтировал как советовал автор.
mount /dev/sdb2 /mnt
А потом отдельно папку boot
mount /dev/sdb1 /mnt/boot
Ну и соответственно grub инсталил на sdb
grub-install /dev/sdb
В конце при umount /mnt Система руганулась что папка занята. После ребута полёт нормальный.
Большое спасибо Автору статьи, она мне очень помогла.
РОМАН
25.11.2015 в 19:00
что делать если kali linux 2.0 не может распознать команду update-grub?
АЛЕКСАНДР
27.02.2016 в 14:00
у меня ноутбук asus k56cb. стоит widows 8.1, рядом поставил kali linux 2.0. Grub не появился, грузится только винда. Получилось сделать из этой статьи всё кроме последнего. У меня тоже не знает команды update-grub. Может в биосе что-то поменять, но я ничего не нашел
АЛЕКСАНДР
27.02.2016 в 15:32
а почему update-grub команду не распознает не знаете?
КОНСТАНТИН
07.03.2016 в 07:18
в ubuntu восстанавливал загрузчик без проблем, тут грузанулся с kali live cd пишу –bind и т.д. – а в ответ –bind command not found
как решить эту проблему? grub-install тоже самое пишет!
О том о сем бложик
TL;DR: Бездумный dist—upgrade на Linux — это плохо. А ещё это может поломать grub и система не сможет загрузиться. На помощь в этом случае придет LiveCD, где нужно будет выполнить несколько простых команд.
И вновь приветствую всех в своем блоге.
Знаете, что может быть лучше отдыха в субботу? Эксперименты с ноутбуком! А знаете чем у меня всегда заканчиваются эксперименты? Конечно же проблемами с загрузкой!
Начну с того, что на ноутбуке у меня реализован дуалбут между Windows 10 и Kali Linux. На Kali Linux я захожу раз в несколько месяцев, и за это время успевает выйти достаточно много обновленных версий для установленных пакетов.
А знаете что я люблю делать еще больше, чем экспериментировать? Обновлять! Ведь это так здорово, когда после обновления ты смотришь как изменился функционал или внешний вид приложения!
Именно поэтому каждый мой заход на Kali Linux начинается с выполнения двух команд:
sudo apt-get update
sudo apt-get dist-upgrade
И вот, вновь выполнив уже привычные команды, я перезагрузил ноутбук и столкнулся с таким вот неприятным сообщением:
error: symbol ‘grub_file_filters’ not found.
Entering rescue mode…
grub rescue>
К счастью, у меня была заранее записанная флэшка с установщиком Kali Linux, который можно загрузить и как Live систему. так что оставалось лишь найти в гугле подходящие команды для восстановления. Увы, сейчас я уже не найду ссылок, но зато есть четкая последовательность команд, которая помогла мне с восстановлением загрузчика.
В первую очередь, загружаемся с линуксового LiveCD/LiveUSB (желательно конечно с Kali Linux) и запускаем терминал.
Дальше, нужно найти раздел с установленной Kali Linux на компьютере. Для этого я поочередно монтировал sda1,sda2,sdb1,sdb2 в /mnt, и каждый раз через ls смотрел его содержимое. Если там будет иерархия с папками /dev, /root, /var и т.п., то это нужный раздел. В моём случае, это был sda1.
Как только раздел найден, остается лишь выполнить следующие команды (только не забудьте заменить sda1 и sda на ваш раздел соответственно).
sudo mount /dev/sda1 /mnt
sudo mount —rbind /dev /mnt/dev
sudo mount —rbind /proc /mnt/proc
sudo mount —rbind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda
update-grub
После чего, можно делать reboot, и радоваться починенной загрузке двух систем!
Вот не очень качественные фотографии, где я вводил данные команды. Опечатки в процессе ввода прилагаются.
UPD: Данный способ помог мне и с этой ошибкой:
error: symbol ‘grub_calloc’ not found.
grub rescue>