917 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как восстановить загрузчик Кали Линукс?

Восстановление Grub2

Grub – это загрузчик, используемый для запуска системы в большинстве дистрибутивов Linux, в том числе и в Linux Mint. Повреждение загрузчика может быть вызвано различными причинами, например, установкой Windows, другого дистрибутива Linux или переразметкой диска, изменением размера и положения разделов на диске и так далее.

В случае с установкой другой системы, чтобы восстановить загрузчик linux mint нам понадобится LiveCD с любым Linux-дистрибутивом. Самая частая задача из этой категории – восстановление Grub после Windows. Если же ошибка возникла из-за работы с разделами или повреждения файловой системы и загрузчик загружается с сообщением Minimal BASH like line editing is supported – это значит что мы можем справиться и без LiveCD своими силами. Конечно, восстановление grub в linux mint с помощью LiveCD системы намного проще, но не всегда под руками есть нужный диск.

В этой статье мы рассмотрим, как выполняется восстановление Grub2 обоими способами. Начнем с более простого способа – с помощью LiveCD. Хотя и статья ориентирована на Linux Mint, но на самом деле подойдет абсолютно для любого дистрибутива, потому что во всех дистрибутивах загрузчик один и тот же, и команды такие же, только версии могут немного отличаться.

Восстановление Grub2 с помощью LiveCD

Начнем с того, что вам нужна LiveCD система, той же разрядности, что и ваша система Linux Mint, на которую был установлен Grub. Причем, неважно будет там графический интерфейс или нет. Обычно все необходимые инструменты поддерживаются всеми дистрибутивами. А нужны нам только утилиты fdisk, mount и chroot. Чтобы восстановить загрузчик grub2 просто следуйте описанным ниже шагам.

Шаг 1. Загрузка LiveCD

Сначала вставьте носитель с LiveCD системой в дисковод или порт USB, если это флешка. Для загрузки с носителя, возможно, вам сначала понадобится зайти в меню BIOS и выставить приоритет загрузки с внешнего устройства.

Для запуска BIOS нажмите Del, F2, F8 или Shift +F2. В открывшимся меню перейдите на вкладку Boot, и в пункте Boot Device Priority или 1st Boot Device выберите нужное устройство:

Дальше перейдите на вкладку Exit и выберите Exit & Save settings.

Дальше начнется загрузка образа.

Шаг 2. Определение разделов

Перед тем как восстановить Grub2, нам нужно понять – на каком разделе установлена система, и на каком разделе были или должны быть файлы загрузчика. Самый простой способ это сделать – воспользоваться утилитой fdisk.

Disk /dev/sdc: 14,5 GiB, 15514730496 bytes, 30302208 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: 0x38972eb0

Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 23949312 29882367 5933056 2,8G 7 HPFS/NTFS/exFAT
/dev/sdc2 29882368 30302207 419840 205M b W95 FAT32
/dev/sdc3 13551616 23949311 10397696 5G 83 Linux
/dev/sdc4 2048 12621823 12619776 6G b W95 FAT32

В выводе программы вы видите – все подключенные к компьютеру разделы, их размер, а также файловую систему. По этим данным вам и предстоит понять, какой раздел используется в качестве корня в вашей системе. Если вы делали разметку вручную, вам не составит труда понять где то, что нужно. Например, у меня загрузчик установлен на раздел /dev/sdc2 размером 205Мб с файловой системой Fat32, а корень – /dev/sdc3 – размером 5 Гигабайт.

Шаг 3. Монтирование файловой системы

Теперь вам предстоит смонтировать вашу корневую файловую систему в каталог /mnt:

mount /dev/sdc3 /mnt

Смонтируем папку с файлами загрузчика:

mount /dev/sdc2 /mnt/boot

Шаг 4. Подготовка к входу в систему

Чтобы восстановить загрузчик linux mint мы будем использовать вашу основную систему Linux, запущенную на ядре от LiveCD. Такую возможность предоставляет команда chroot. Но перед тем, как ее использовать нужно вручную подключить к вашей корневой ФС, смонтированной в /mnt все необходимые файловые системы взаимодействия с ядром – /dev, /sys, /proc:

sudo mount –bind /dev /mnt/dev

$ sudo mount –bind /sys /mnt/sys

$ sudo mount –bind /proc /mnt/proc

Шаг 5. Вход в окружение системы

Для входа в окружение вашей системы используйте команду:

chroot /mnt /bin/bash

Первый параметр указывает папку, в которую была смонтирована корневая файловая система, а второй – оболочка, используемая для интерпретации команд пользователя.

Затем выполните эти команды для загрузки и обновления переменных профиля:

Теперь вы находитесь в Linux Mint, и можете выполнять почти все его программы, разумеется, недоступны сервисы, поскольку во время загрузки не использовалась система инициализации, а также как следствие, недоступно графическое окружение.

Шаг 6. Восстановление Grub2

Теперь восстановление Grub в Linux Mint. Просто выполните следующие команды. Первая, для переустановки загрузчика на жесткий диск:

sudo grub2-install /dev/sdc

Здесь /dev/sdc – имя вашего жесткого диска.

Теперь создадим новый конфигурационный файл:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

Путь к конфигурационному файлу может немного отличаться, так что будьте внимательны.

Еще можно использовать команду:

Но она работает только в Ubuntu и основанных на ней дистрибутивах.

Шаг 7. Готово

Выйдите из окружения chroot командой:

И перезагрузите компьютер:

Теперь все работает.

Восстановление Grub2 без LiveCD

В некоторых случаях повреждения Grub не вызывает полную невозможность загрузки. Например, когда загрузочный код в MBR цел, но программа не может получить доступ к файлам на диске. Тогда загрузчик открывает вместо меню некое подобие терминала с сообщением: Minimal BASH like line editing is supported. С помощью этого терминала мы можем попытаться загрузить систему. Восстановление grub2 без livecd не такая уж и сложная задача, хотя, это сложнее, чем первый способ.

Все что вам потребуется – это знать на каком устройстве расположена система и само ядро Linux. Синтаксис и команды очень похожи на обычные команды bash, но немного отличаются по назначению. В начальном режиме восстановления доступны только несколько команд это ls, insmod, set и unset.

Чтобы посмотреть список подключенных к компьютеру дисков просто выполните:

(hd2,msdos1, hd2,msdos2, hd2,msdos3, hd2,msdos4)

Важно отметить, что в grub диски и разделы именуются немного по другому. Здесь каждый жесткий диск имеет название hd и номер диска, например, hd0 или hd1. Разделы именуются начиная с единицы.

Вы можете работать только с одним разделом в определенный момент. Чтобы установить раздел, с которым нужно работать, нужно указать его в переменной root. Для установки переменных окружения используется команда set. Например, у меня файлы загрузчика grub находятся на /dev/sdc2, то-есть hd2,2:

Загрузим нормальную оболочку grub:

insmod ext2
$ insmod normal
$ normal

После этого можно найти и запустить ядро. Для этого используйте команду linux. Обычно ядро находится папке /boot:

И наконец загружаемся:

Теперь, когда система загрузится, вам останется только открыть терминал, и выполнить следующие команды, чтобы завершить восстановление загрузчика linux mint:

sudo grub2-install /dev/sda

$ sudo grub2-mkconfig -o /boot/grub/grub.cfg

Выводы

Теперь восстановление загрузчика linux mint не вызовет у вас проблем в любых обстоятельствах, независимо от того, есть ли у вас диск с другим дистрибутивом или нет. Если остались вопросы, напишите в комментариях!

Статья Восстанавливаем GRUB в Kali Linux после обновления до Windows 10

Pirnazar

Автор в социальной сети:

Привет всем! Недавно столкнулся с такой проблемой, как восстановление загрузчика 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, следует сначала воспользоваться командой:

должно помочь. Успехов вам!

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
Как быть? Что делать?

Читать еще:  Как отключить слежение 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 тоже самое пишет!

Как загрузиться в режим восстановления или аварийный режим в Ubuntu 18.04

В качестве примера будет использована система Ubuntu 18.04 LTS, но руководство актуально для любой системы, использующей Systemd как подсистему инициализации. Так же мы рассмотрим команды по восстановлению системы Ubuntu без ее переустановки.

Что такое режим восстановления в системах Linux?

Режим восстановления эквивалентен однопользовательскому режиму в дистрибутивах Linux, которые используют демон SysV в качестве диспетчера служб по умолчанию. В режиме восстановления все локальные файловые системы будут примонтированы, но только некоторые важные службы будут запущены. Например, сетевые сервисы не будут запущены. Режим восстановления Linux полезен в ситуациях, когда система не может нормально загрузиться. Кроме того, в данном режиме мы можем выполнить некоторые важные операции по восстановлению, например, такие как сброс root пароля.

Что такое аварийный режим?

В отличие от режима восстановления, в аварийном режиме не монтируются точки монтирования файловых систем, службы и сокеты не будут запущены. Аварийный режим подходит для отладки.

Загрузка в режим восстановления в Ubuntu 18.04 LTS

Запустите установленную систему Ubuntu. Когда появится меню Grub, выберите первую запись и нажмите e для редактирования.

Если у вас не отобразилось меню Grub, то нужно нажать клавишу ESC сразу после исчезновения логотипа BIOS.

Найдите строку, начинающуюся со слова «linux», удалите значение «$vt_handoff» и в конце этой строки введите следующее значение (Чтобы быстрее достичь конца строки, просто нажмите CTRL + e или используйте клавишу END или стрелки LEFT / RIGHT на клавиатуре):

После того, как вы добавили вышеприведенное значение, нажмите сочетание клавиш CTRL + x или F10, чтобы загрузить систему в режим восстановления. Через несколько секунд вы попадете в режим восстановления (однопользовательский режим) в качестве пользователя root. Нажмите Enter.

Затем введите следующую команду для монтирования файловой системы root (/) в режим чтения / записи:

Загрузка в аварийный режим

Загрузка операционной системы Linux в аварийный режим аналогична описанному выше методу. Все, что вам нужно сделать, это заменить «systemd.unit= rescue.target» на «systemd.unit = emergency.target» при редактировании меню Grub.

После того, как вы добавили «systemd.unit=emergency.target», нажмите Ctrl + x или F10, чтобы продолжить загрузку в аварийный режим.

Вы можете подключить корневую файловую систему в режим чтения / записи с помощью команды:

Переключение между режимами восстановления и аварийный режимом и наоборот

Если вы загрузились в режим восстановления, то из него же можно переключиться в аварийный режим с помощью следующей команды:

Аналогично, чтобы переключиться с аварийного режима в режим восстановления, введите команду:

Режим восстановления Recovery mode в Linux

Еще одним режимом, которым можно воспользоваться для восстановления системы, является режим Recovery mode. Примечателен он тем, что содержит предустановленные утилиты для восстановления.

Для запуска режима восстановления необходимо загрузиться в меню Grub, выбрать Дополнительные параметры.

Затем из появившегося списка выбрать первое (верхнее) ядро с надписью (recovery mode).

Как вы можете видеть на рисунке ниже, как только система загрузится в режим восстановления, вам будет показано меню инструментов, которые решают различные общие проблемы с загрузкой системы. Стоит попробовать каждый из них, который как вам кажется, может решить вашу проблему.

Clean, например, удалит неиспользуемые файлы, если вы подозреваете, что проблема связана с полным диском. dpkg попытается исправить любые сломанные пакеты программного обеспечения. (Средство “dpkg”может потребовать, чтобы вы сначала включили сеть (network). Опция root запустит командную строку от имени суперпользователя.

Теперь вы знаете, что такое режим восстановления, аварийный режим и Recovery mode, а также как загрузиться в эти режимы в Ubuntu 18.04. Как я уже упоминал, приведенные здесь шаги будут работать во многих последних версиях Linux, в которых используется Systemd.

Как восстановить операционную систему Ubuntu без переустановки

Рассмотрим популярные и действенные методы восстановления операционной системы Ubuntu. Если вы столкнулись с тем, что ваша система не запускается после обновления, установки драйверов или по каким-нибудь другим причинам, то вам стоит воспользоваться данной инструкцией.

На экране входа в систему воспользуйтесь комбинацией клавиш CTRL + ALT + F1 для переключения в виртуальную консоль tty1, возможно вам придется переключится на другую виртуальную консоль, в таком случае воспользуйтесь этой же комбинацией клавиш, но с F2 или F3 и т.д. И затем выполните следующие команды:

Если причиной того, что система не загружается стала установка видеорайвера Nvidia, то для решения проблемы его нужно удалить:

И обновить систему:

И перезагрузить систему:

Так же может помочь переустановка рабочего окружения. Для Ubuntu это будет следующая команда (не влияет на пользовательские данные):

Рекомендую периодически делать резервные копии системы и домашнего каталога пользователя, соответствующими инструментами. Например, для резервного копирования в среде Linux можно воспользоваться утилитой QT5-FSArchiver.

Восстановление загрузчика GRUB в Linux

Загрузчик GRUB является универсальным, гибким и достаточно надёжным инструментом для организации загрузки операционных систем (ОС). Однако при наличии некоторых обстоятельств и факторов. От которых не застрахована ни одна система. Могут возникать сбои, в результате которых загрузка системы может быть некорректной или вовсе невозможной. Если в данном случае точно установлено, что система не загружается из-за неработоспособности самого загрузчика. То в данной ситуации далеко не всё так сложно и безнадёжно. Как может показаться некоторым неопытным пользователям или системным администраторам. В большинстве случаев загрузку системы можно довольно быстро и относительно легко восстановить, не прибегая к переустановке системы. Для этого существуют давно проверенные способы, о которых будет рассказано в данной статье.

Почему «ломается» загрузчик GRUB?

Естественно, само по себе ничего не происходит. Если «сломалась» загрузка GRUB – значит что-то на это повлияло. Очень часто в подобных ситуациях пользователи говорят, что системную конфигурацию не изменяли, а GRUB вдруг перестал работать. И они отчасти правы.

На самом деле GRUB довольно чувствителен к любому изменению как своей, так и системной конфигурации, каким бы универсальным и удобным он ни был. Так, например, изменение идентификатора раздела, хранящего ядра (/boot), уже приведёт к невозможности загрузки системы. И GRUB здесь и ни причём. Нужно искать причину, по которой изменился идентификатор раздела. А они могут быть самыми разными. К примеру, даже если компьютер долгое время не использовался и на его платы не подавалось питание. То это также может быть причиной сброса некоторых настроек BIOS (по причине севшей батареи). Что может привести при последующем после длительного перерыва включении переопределению параметров оборудования. От которых зависит, в некоторых случаях, и идентификатор раздела. Это лишь одна из причин неработоспособности GRUB, самая неочевидная, которую не могут предусмотреть ни разработчики GRUB, ни создатели системных плат.

Наличие ошибок на разделах диска, человеческий фактор (особенно среди малоопытных пользователей) также очень часто являются причиной неработоспособности GRUB. Главное, что нужно понимать — это то, что в большинстве случаев причиной является внешний фактор. A GRUB – это довольно уязвимое место, чувствительное практически к любым внешним воздействиям, поскольку это программная среда, организующая передачу управления компьютером от BIOS (UEFI) к ОС.

Способы восстановления GRUB

В данной статье будут рассмотрены два самых эффективных способа восстановления GRUB:

  • с помощью LiveCD/DVD – самый «народный» метод, с ним вполне справляются новички;
  • работа в командной консоли GRUB – ручная загрузка системы и восстановление GRUB «родной» системной среды, очень полезно, когда нет возможности воспользоваться LiveCD/DVD или другим загрузочным устройством.

Как нетрудно догадаться, восстановление GRUB напрямую связано с загрузкой системы. Основная работа по восстановлению именно в этом и заключается — загрузить родную системную среду альтернативными способами или вручную. Далее, в подавляющем большинстве случаев, восстановление GRUB осуществляется одной командой:

Существуют также и другие команды:

Последние стоит использовать, если не помогла команда grub-update. Первая из них устанавливает сам загрузчик GRUB на указанное устройство (не на раздел!). В данном случае вместо sdN может быть sda, sdb, и т. д. Но никак не sda1, sdb2 (т. е. на разделы — числовой индекс в конце означает номер раздела на устройстве) и т. д. — это очень важно, поскольку GRUB устанавливается только на устройство.

Вторая команда создаёт конфигурационный файл GRUB исходя из текущей конфигурации системы. Анализируется информация о количестве имеющихся в системе ядер, их версий и т. д. В результате формируется оптимальная и безопасная конфигурация загрузки системы. Если ядер несколько, то будет сформирован список, который может быть доступен (в меню загрузки GRUB) для выбора определенного ядра для загрузки. По-умолчанию GRUB загружает ядро самой свежей версии.

Как можно видеть, ничего сложного в восстановлении/установке GRUB нет. Теперь можно перейти к рассмотрению альтернативных способов, собственно, загрузки системной среды для восстановления GRUB.

Примечание: вместо команд grub-install и grub-mkconfig могут использоваться команды grub2-install и grub2-mkconfig соответственно. Это зависит от используемой системы (дистрибутива).

Загрузка и восстановление с помощью LiveCD

При использовании любого из альтернативных вариантов загрузки «родной» системы очень полезно сначала узнать (или убедиться), с какого устройства происходит загрузка. Необходимо заранее это выяснить в настройках BIOS компьютера. Это необходимо, если придётся не просто обновить конфигурацию загрузчика, а полностью его переустановить. А для этого очень желательно устанавливать его на то устройство, которому из BIOS передаётся управление для дальнейшей загрузки ОС. Для BIOS материнских плат MSI это выглядит примерно следующим образом:

Читать еще:  Xiaomi mi max 64 прошивка. Xiaomi Mi Max - устанавливаем прошивку MIUI8 - aslenkov. Отключение проверки цифровой подписи драйверов

Рис. 1: BIOS MSI — просмотр и настройка приоритета устройств для загрузки системы.

Как можно видеть, для данной системы загрузочным устройством является SSD-накопитель «Samsung SSD 860 EVO 250 GB». А пока это наименование можно запомнить или где-нибудь записать.

Теперь можно загрузиться с любого Live-образа используя для этого оптический CD/DVD-диск или накопитель USB-Flash. Опуская технические подробности, важно заметить, что для этого должны быть сделаны соответствующие настройки в BIOS компьютера. В качестве Live-образа рекомендуется использовать ту же систему, что и установлена на компьютере.
Итак, загрузившись в Live-режиме, первым делом следует запустить командную консоль. Далее, необходимо определить корневой раздел системы, для которой нужно восстановить загрузчик. Это нужно, чтобы войти в программную среду «родной» системы из непосредственно Live-режима и использовать весь доступный инструментарий, в том числе и команды по восстановлению GRUB.

Монтирование корневого и загрузочного раделов

С помощью команды fdisk определяем какой раздел и на каком устройстве используется родной системой как корневой:

Как можно видеть, в системе два диска — sda и sdb. Тут нужно сориентироваться и вспомнить, как размечался диск изначально при установке системы. И определить по данным вывода, какой раздел является корневым. В данном случае это раздел sda2. Его теперь нужно примонтировать командой mount:

Необходимо также примонтировать и раздел /boot. Но очень важно заметить, что если в качестве /boot используется отдельный раздел (а не подкаталог в корневом разделе, как в большинстве современных дистрибутивов, например Ubuntu), то его монтирование будет выглядеть следующим образом:

В данном случае последняя команда приведена условно, как пример. На самом деле файлы загрузчика для данного примера хранятся в подкаталоге /boot, который уже был примонтирован от sda2, и поэтому в последней команде в данном случае нет необходимости.

Подготовка программной среды для работы

Поскольку в Live-режиме загружено и работает ядро Live-системы, то оно же будет использоваться и для работы с примонтированными разделами (корневой и /boot). Но для этого необходимо к корневому разделу родной системы (которая уже смонтирована в /mnt) также примонтировать и другие файловые системы (ФС), без которых ядро Live-системы не сможет корректно работать — /sys, /dev и /proc, они же необходимы для взаимодействия с ядром. Другими словами, загруженное из Live-образа ядро нужно настроить на полноценную работу с корневой ФС родной системы, добавив к ней ФС из Live-системы:

Далее необходимо определить программное окружение среды, указав каталог /mnt и интерпретатор команд:

Эта команда указывает, где должны выполняться команды и какое программное окружение для этого должно использоваться. В данном случае, теперь ядро Live-образа может полноценно работать с ФС родной системы. Используя все её пакеты, команды, файлы и прочие доступные ресурсы.

Восстановление загрузчика

Теперь нужно обновить MBR (главную загрузочную запись) диска, установив на него загрузчик GRUB. Здесь и нужно вспомнить, какой диск является загрузочным, исходя из конфигурации BIOS. Поскольку ранее это уже было определено, то теперь остаётся узнать, как это устройство обозначается в системе. Для этого полезно выполнить следующий скрипт:

Данный скрипт отработает, если в родной системе установлена утилита hdparm. Но поскольку в большинстве Linux-дистрибутивов она предустановлена и доступна «из коробки», то беспокоиться не о чем.

Как можно видеть, устройству «Samsung SSD 860 EVO 250GB», который ранее был определён как загрузочный, соответствует его определение в системе как /dev/sda . Именно на него и следует производить установку GRUB:

Создание файла конфигурации GRUB:

Ну и напоследок можно выполнить:

Если при выполнении команды grub-install возникают какие-либо ошибки, то можно выполнить её с ключом —recheck. Если же всё нормально, то можно выйти из режима chroot командой:

Далее необходимо отмонтировать все ранее примонтированные устройства и ФС:

Если /boot монтировался из отдельного раздела, то его также необходимо отмонтировать:

Ну и наконец, необходимо отмонтировать также и корневой раздел:

Далее можно перезагрузиться без Live-образа (сделав соответствующие настройки в BIOS и снова указав в качестве загрузочного «Samsung SSD 860 EVO 250GB»). И проверить, что GRUB загружает родную систему.

Загрузка из командной консоли GRUB

Иногда бывает так, что GRUB установлен, но в результате каких-либо сбоев его рабочая конфигурация была повреждена и загрузка ОС в штатном режиме невозможна. Обычно в таких случаях в меню GRUB появляются сообщения об ошибках с приглашением перейти в режим командной консоли загрузчика по нажатию клавиши «C». В этом режиме GRUB предоставляет довольно большой набор полезных команд. С помощью которых можно, в частности произвести ручную загрузку системы. Эти же команды, кстати, выполняются загрузчиком при чтении его файла конфигурации.

Рис. 2: Внешний вид командной консоли GRUB.

Итак, первое, что нужно сделать после входа в командную консоль GRUB – это выполнить команду ls. В результате будет выведен список всех доступных в системе дисков и разделов.

Определение и выбор раздела загрузки

Однако, обозначает GRUB разделы по-своему. Например вместо привычного sda4 будет (hd0,gpt2), а вместо sdb1 будет (hd1,gpt3). Таким образом, как можно видеть, устройства в формате GRUB нумеруются цифрами, так же как и разделы. Но разделы нумеруются в обратном порядке. Например на устройстве sda с пятью разделами, разделу sda2 в формате GRUB будет соответствовать запись (hd0,gpt4), sda1 – (hd0,gpt5) и т. д. Этот принцип можно и нужно брать на вооружение при работе с разделами в командной консоли GRUB. Ведь для ручной загрузки системы необходимо правильно определить и указать корневой раздел или раздел /boot .

Примечание: префикс «gpt» в обозначении разделов в формате GRUB может быть другим. Например «msdos» (когда GRUB не смог определить тип разметки), но в данном примере разделы размечены в формате GPT.

Если известно, что /boot находится на разделе sda2, у которого пять разделов. То с большой степенью вероятности это будет (hd0,4) в формате GRUB. Префикс «gpt» для раздела можно не указывать. Ну а если же изначальную структуру разделов вспомнить или определить не представляется возможным. То остаётся только перебирать или угадывать.
Команда ls выведет примерно следующее:

Эта информация и должна помочь быстрее угадать, на каком разделе находится /boot .

Важно заметить, что если «угадано» верно, то будет загружена родная система так, как она загружалась в штатном режиме.

Ручная загрузка ядра

Пусть для ручной загрузки выбран раздел (hd0,4) — т. е. sda2. Нужно задать этот раздел в качестве корневой файловой системы:

Подключение модулей для работы с ФС Ext2/3/4:

Для других типов ФС нужно подключать соответствующие модули: bfs, xfs или zfs.
Подключение модуля normal для полноценного запуска и работы GRUB:

Если после этих команд штатная загрузка не начнётся, то остаётся её продолжить вручную. Для этого нужно попытаться найти доступные ядра и выбрать нужное для загрузки. Для этого следует ввести команду linux /boot/vmlinuz и нажать клавишу :

Рис. 3: Определение доступных ядер и выбор нужного для загрузки с помощью команды «linux».

Как можно видеть, команда linux обнаружила в системе два ядра. И автоматически подготовила следующую команду для выбора нужного. Остаётся только дописать «1-generic», если нужно загрузить ядро версии 4.18.0-21-generic. Указать корневой раздел и выполнить команду:

Важно заметить, что указывается тот же корневой раздел, что и в команде set root, только уже в классическом формате.

Далее, нужно указать соответствующий образ ядра. В котором содержится всё необходимое для инициализации и создания программной среды для его работы, с помощью команды initrd:

Теперь всё готово, можно выполнить загрузку:

Если всё сделано правильно и выбран нужный раздел загрузки, то будет загружена «родная» система так, как это происходит в штатном режиме. Ведь всё, что было проделано вручную — это основной набор команд, хранящихся в файле /boot/grub/grub.cf g и выполняемых GRUB автоматически.

Далее, в загруженной системе нетрудно восстановить работу загрузчика с помощью инструкций, приведенных выше.

Заключение

В заключение необходимо напомнить, что были рассмотрены наиболее распространённые неполадки в работе загрузчика GRUB, а также причины их появления. На примерах были подробно рассмотрены основные и самые доступные способы восстановления работы GRUB.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Восстановление GRUB

В данной статье рассматривается процесс восстановления загрузчика GRUB 2.

Причины, по которым может понадобится восстановить GRUB, могут быть разными.

Очень часто требуется восстанавливать GRUB после установки Windows. Если у вас был установлен Linux и вы установили в соседний раздел или на соседний диск Windows, то после перезагрузки компьютера загрузится Windows, как будто Linux вообще пропал. Загрузчик GRUB даже не появился. Иногда подобное происходит при обновлении существующего Windows.

Иногда требуется восстановление GRUB после установки Linux, когда неверно был выбран раздел для установки загрузчика.

Во всех случаях нужно выполнить восстановление загрузчика GRUB. Существуют разные способы восстановления. В данном руководстве рассматривается процесс использованием загрузочного Live-образа Linux. Загрузившись в Live-систему вам нужно будет ввести несколько команд, чтобы выполнить восстановление. Рассматривается способ восстановления без использования сторонних программ.

Также иногда различают процесс восстановления для систем с BIOS и с UEFI. Описанный ниже способ рассматривает оба этих случая. Я тестировал его как на компьютерах с традиционным BIOS, так и с UEFI.

Подготовка

Для восстановления GRUB потребуется загрузочный диск или флешка с дистрибутивом Linux. Если у вас его нет, то нужно скачать образ с дистрибутивом. Например, можно скачать ISO образ Ubuntu.

Для создания загрузочной флешки можно воспользоваться программой Etcher. Она работает в Linux, Windows и MacOS. Подробная инструкция: Как создать загрузочную флешку.

Загрузка в Live-режиме

Теперь нужно загрузиться с созданного диска или флешки.

Чтобы это сделать сначала нужно в BIOS выбрать приоритет загрузки с CD/DVD или с USB (если вы используете флешку).

На современных компьютерах, где используется BIOS/UEFI, для входа в BIOS нужно при включении компьютера удерживать специальную клавишу. У разных производителей клавиша может быть разной. Обычно это: F2 , Del , F10 , Esc , F11 или F3 .

Читать еще:  Как запретить доступ к реестру ?

На старых компьютерах, где используется классический BIOS, чтобы войти в BIOS нужно при загрузке компьютера, в самом начале, когда появляется логотип материнской платы, нажать специальную клавишу. Для разных материнских плат клавиша может быть разной. Обычно это одна из клавиш: Del , F1 , F2 , F8 , F10 или какая-нибудь другая, или даже сочетание клавиш. Подробности: Настройка BIOS для загрузки с CD/DVD-диска или с USB-носителя

Открываем терминал

Итак, вы загрузились в Live-режиме. Теперь нужно открыть терминал.

В Ubuntu и некоторых других дистрибутивах это можно сделать нажатием сочетания клавиш Ctrl+Alt+T . Или запустить терминал через меню программ.

Определение разделов

Теперь нужно определить раздел диска, на котором был установлен GRUB.

Выведем список разделов, для этого выполняем команду (в конце команды стоит строчная буква L):

Вывод fdisk для BIOS

Пример вывода команды:

В моем случае мы видим 2 диска: /dev/sda (SSD диск) и /dev/sdb (флешка, с которой сейчас загружена Live-система).

Нас интересует диск /dev/sda . На диске /dev/sda создано несколько разделов. В моем случае /dev/sda4 , на котором установлен Windows, а также 4 раздела с пометкой Linux (см. последний столбец таблицы). У вас скорее всего может быть один раздел Linux (корневой раздел) или два раздела (корневой и home). На одном из этих разделов установлен GRUB.

То есть из таблицы вы должны определить какой раздел является корневым, на нем скорее всего у вас установлен GRUB. В моем случае GRUB установлен в раздел /dev/sda2 . Далее по тексту я буду его использовать (вы должны будете указывать свой раздел).

Иногда бывает, что для загрузчика GRUB выделен отдельный раздел (он называется boot-раздел). Если это так, то на следующем шаге вам нужно будет примонтировать корневой раздел и раздел с загрузчиком.

Вывод fdisk для UEFI

Для новых компьютеров с UEFI вывод команды fdisk -l может быть примерно следующим:

Нам нужно определить, на каком разделе установлен Linux (корневой раздел), а также определить EFI-раздел. В моем случае это разделы: /dev/nvme0n1p5 и /dev/nvme0n1p1 , которые расположены на диске /dev/nvme0n1 .

Монтирование разделов

Примонтируем корневой раздел. Выполняем команду (вместо /dev/sda2 вы должны указать свой раздел):

Мы примонтировали раздел /dev/sda2 в директорию /mnt .

Если для загрузчика у вас выделен отдельный раздел, то нужно примонтировать еще и его (вместо /dev/sdX укажите ваш boot-раздел):

Теперь можно посмотреть содержимое директории /mnt , чтобы убедиться, что мы примонтировали верный раздел:

Вывод команды должен быть примерно следующим. Обратите внимание есть ли в этом списке каталог /boot , так как именно в нем установлен GRUB.

Также можно проверить, что директория boot не пустая:

У меня вывод команды выглядит следующим образом. Обратите внимание на присутствие каталога с именем grub .

Далее нужно создать ссылки на несколько директорий, к которым GRUB должен иметь доступ для обнаружения всех операционных систем. Для этого выполните команды:

Монтирование EFI-раздела

Если у вас используется UEFI, то еще нужно примонтировать EFI-раздел в директорию /mnt/boot/efi (выше я указал пример вывода команды fdisk -l в котором показан EFI-раздел):

Выполняем chroot на /mnt

На предыдущем шаге мы смонтировали все необходимые директории в директорию /mnt . Теперь переключимся (выполним chroot ) на данную директорию. Выполняем команду:

Генерация файла конфигурации GRUB

Данный шаг нужно выполнять не всем. Если у вас был установлен GRUB и вы уверены, что его конфигурация верная, то можно перейти к следующему шагу.

Для генерации файла конфигурации GRUB используется команда update-grub . Данная команда автоматически определяет файловые системы на вашем компьютере и генерирует новый файл конфигурации. Выполняем команду:

В выводе команды будет показано, какие операционные системы были найдены.

Если вдруг утилита update-grub не определила ваш Windows (у меня такое было для UEFI), то можно будет запустить update-grub повторно уже из вашей Linux-системы, когда вы в нее загрузитесь (мне это помогло и Windows определился).

Устанавливаем GRUB

Осталось выполнить установку GRUB на диск. Мы определили раздел на котором у нас установлен GRUB на первом шаге данного руководства. В моем случае это раздел /dev/sda2 , который расположен на диске /dev/sda .

Для установки GRUB используется команда grub-install , которой нужно передать в качестве параметра диск, на который будет выполняться установка (в моем случае это диск /dev/sda ):

https://askubuntu.com/questions/88384/how-can-i-repair-grub-how-to-get-ubuntu-back-after-installing-windows
If Ubuntu is installed in EFI mode, and EFI partition UUID has changed, you may need to update it in /etc/fstab. Compare it:
blkid | grep -i efi
grep -i efi /etc/fstab

Перезагрузка компьютера

Выходим из окружения chroot, для этого выполняем команду:

Отмонтируем все разделы, которые мы примонтировали:

Если вы монтировали boot-раздел, то его тоже нужно отмонтировать:

Если вы монтировали EFI-раздел, отмонтируем:

Отмонтируем корневой раздел:

Перезагружаем компьютер. Для этого выполняем команду:

Если во время перезагрузки компьютера меню GRUB не появилось, то это еще не значит, что он не восстановился. Возможно, просто установлена нулевая задержка и меню не показывается. Чтобы показать меню GRUB нужно во время загрузки, после того, как появился логотип материнской платы:

  • удерживать клавишу Shift , если у вас классический BIOS;
  • нажать Esc , если у вас UEFI.

Если у вас, при выполнении grub-update, не определился Windows и не был добавлен в меню GRUB, то уже загрузившись в вашу систему Linux (не LiveCD), откройте терминал и выполните:

Мне это помололо на компьютере, который использует UEFI.

Шпаргалка

Мы рассмотрели процесс восстановления загрузчика GRUB 2. Для удобства привожу краткую шпаргалку по командам, которые мы выполняли. Учитывайте, что названия и имена разделов ( /dev/sd. ) у вас могут отличаться.

Error no such partition или как восстановить загрузчик Кали Линукс?

Всем привет, после обращений пользователей описываю пару вероятных решений проблем о том, как быстро восстановить загрузчик Кали Линукс без переустановки системы. Один из описанных способов пригодится вам, даже если вы просто решили ПЕРЕУСТАНОВИТЬ Windows.

Во втором способе упоминается о том, как решить “проблему наоборот” – Кали Линукс Есть, а Windows пропала.

Итак, после штатного завершения сеанса в Windows и очередного включения ноутбука тот сообщил, что у меня…

error: no such partition.

Entering rescue mode…

Нет, мол, больше такого раздела на жёстком диске. Проблема понятна – загрузчик Кали помахал рукой, унеся за собой ещё и записи о двух Windows, располагавшихся рядом. Как итог: ни Линукс ни Windows не загружаются.

ЧТО ИСПОЛЬЗУЕТСЯ ДЛЯ ВОССТАНОВЛЕНИЯ?

  • битый загрузчик от Кали Линукс Rolling с Windows 7
  • диск liveDVD с Кали Линукс (на всякий случай)
  • загрузочный Windows 7 (вообще просто лежит)

Как восстановить файлы?

Ничего не надо восстанавливать: они, конечно же, на месте. Но первым же желанием было воткнуть загрузочный диск с Windows, пройти процедуру восстановления загрузочного сектора, временно теряя при этом доступ к Кали. Не безвозвратно, конечно. Так как…

вариант второй позволит восстановить загрузчик Кали Линукс в любом случае

Если вы решите пойти этим путём (или что-то уже пошло не так), стоит лишь:

  • загрузиться с диска с Windows 7 (8/10) подходящей версии
  • выйти в консоль Восстановления системы

  • вызвать командную строку и выбрать букву диска, где лежит Windows. Сделать это просто: сама Windows присваивает им буквы C или D. Почти всегда это D. Так в консоли и наберите:
  • проверьте командой

есть ли на диске папки Windows. Их вы ни с чем не перепутаете. Если всё на месте, вводим финишную команду:

Windows появится после перезагрузки. Можно будет скачать недостающий образ Кали и после этого перейти к варианту 2 . Но это путь через Китай.

Как восстановить загрузчик Кали Линукс? Вариант первый.

Его попробовать я не успел. И смысл метода в том, что вы вообще не покидаете пределов ремонтного терминала Кали и пытаетесь отремонтировать загрузчик “наживую”. Приводимый пример – самый действенный для всех Линукс систем по восстановлению погибшего загрузчика.

Что понадобится для первого варианта?

Диски ждут очереди, а мы начинаем работу с терминалом. Прямо из терминала grub rescue Проверьте список видимых разделов командой:

Терминал выдаст всё, что обнаружил в виде списка в одной строке типа:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Мол, три раздела ( msdosX ) на одном ( hd0 ) винчестере. Пробуем каждый из них по порядку командами:

Если терминал возвращает ошибку о том, что тип файловой системы загрузчику неизвестен (в силу исторических обстоятельств понимает в типах файловых структур он до сих пор немного):

Переходим к следующему разделу, пока не увидите:

Как обнаружите, идём проторенной давно дорожкой: возвращаем root нашему разделу (я для примера взял первый из моих же – он им и оказался):

Ставим триггер описателя:

Вставляем в ядро модуль (ничего указывать больше не нужно – ни путь, ни файл):

И попробуем загрузчик сразу проявить себя:

Появилось? Должно. Загрузитесь в Кали, минуя Windows, и введите команды, которые проверят и сохранят новый загрузчик:

Если после перезагрузки вас снова выбрасывает в ремонтный терминал, повторите описанные шаги, добавив туда команды

Таким образом можно восстановить загрузчик Линукс не прибегая ни к каким инструментам вообще.

Как восстановить загрузчик Кали Линукс? Вариант 2.

Что понадобится для второго варианта?

  • прямые руки
  • загрузочный диск с Кали Линукс

Я пошёл другой проторенной тропинкой и воспользовался по старинке загрузочным liveDVD с Кали. Она сохранилась на виртуальном дисководе в числе других (флешка Кали Persistance не прокатила). Как уже отмечалось, такой способ восстановления загрузчика универсален, так как позволяет вернуть загрузчик Линукс при переустановке Windows (впоследствии я этим и воспользовался, окончательно перейдя на Windows 10 с Windows 7).

Для начала (уже из-под живой Кали) я загрузил утилиту по работе с разделами (проверил наименование разделов):

номер раздела с Кали отлично читается – искать не нужно: /dev/sda3

А теперь в терминале вот эти команды; по порядку или в строку через && :

Посматривайте на терминал, он должен обнаружить и входную точку в Windows записью (по-русски или на английском):

Найден Windows 7 на /dev/sdaX

Перезагружаемся, LiveDVD с Кали вынимаем.

Входим в Кали через отремонтированный загрузчик обычным порядком и проверив, на месте ли Windows:

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: