Arch linux не загружается с флешки

Обновлено: 07.07.2024

Если ваш Arch Linux не загружается или загружается в чёрный экран, то начните с переключения на другой терминал сочетаниями клавиш Ctrl+Alt+F1, Ctrl+Alt+F2, Ctrl+Alt+F3 и так далее. Если вам это удалось и вы увидели приглашение ввести учётные данные для входа в систему, то дальше всё элементарно — выполните вход и откатите изменения, из-за которых система не запускается.

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

Ещё один пример трудной ситуации — полное удаление загрузочного диска (у меня такое случалось).

Загрузитесь в другую операционную систему — для этого можно установить Linux на флешку и держать эту флешку для подобных случаев. Кстати, вы можете использовать старую флешку, размером меньше 1 гигабайта, чтобы всегда держать на ней Live образ Arch Linux — специально на случай такой проблемы.

Как восстановить загрузочный диск Arch Linux

Если у вас повреждён или удалён загрузочный раздел, то загрузите Live образ Arch Linux с флешки и выполните следующие команды.


Обратите внимание, что вместо nvme0n1p1 вам нужно указать имя вашего загрузочного раздела, это может быть, например, /dev/sdb1. Чтобы посмотреть список всех дисков, выполните команду:

Форматируем разгрузочный раздел в FAT32:

Меняем значение корневой директории на новую:

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

Редактируем содержимое файла:

Удалите то, что там есть и впишите туда:

Создайте конфигурационный файл для добавления пункта Arch Linux в менеджер systemd-boot:

Содержимое файла должно быть следующим:

Обратите внимание на /dev/nvme0n1p2 — это путь до моего диска с системой, замените на свой.

Выйдем из chroot, размонтируем смонтированные разделы и перезагрузимся:

Можно вынимать установочный диск.

Как удалить программу, из-за которой не загружается Arch Linux

Иногда загрузка не выполняется из-за установленной программы или наоборот, из-за удаления необходимого пакета.

Загрузите Live образ Arch Linux с флешки и выполните следующие команды. Обратите внимание, что вместо nvme0n1p1 и nvme0n1p2 вам нужно указать имена разделов вашего диска, это может быть, например, /dev/sdb1 и /dev/sdb2. Чтобы посмотреть список всех дисков, выполните команду:

Меняем значение корневой директории на новую:

По умолчанию вы являетесь пользователем root, но вы можете сменить пользователя существующего в системе, которую мы восстанавливаем. Это может быть полезно, так как нам будет доступна история команд этого пользователя и мы без труда вспомним, какие конфигурационные файлы мы редактировали и какие пакеты устанавливали/удаляли как раз перед невозможностью загрузиться.

Например, на нерабочей системе последние команды выполнялись от пользователя mial, выполним вход как этот пользователь:

На этой странице описаны различные способы создания загрузочной флешки с Arch Linux как для загрузки в системах с BIOS, так и с UEFI. Результатом будет система LiveUSB (подобная LiveCD), которую можно будет использовать для установки Arch Linux, обслуживания системы или в целях восстановления. Обратите внимание, что после выключения все изменения на носителе будут отмены из-за особенностей SquashFS.

Если вам нужно запускать Arch Linux с USB-накопителя с сохранением изменений, посмотрите статью Installing Arch Linux on a USB key. Если вы хотите использовать загрузочный USB-носитель Arch Linux в целях восстановления, посмотрите статью Cмена суперпользователя.

Contents

Создание загрузочного USB для BIOS и UEFI

Используя автоматические инструменты

В GNU/Linux

Через dd
Важно: Это уничтожит безвозвратно все файлы на /dev/sdx . Чтобы восстановить USB-накопитель как пустое, пригодное для использования запоминающее устройство после использования ISO-образа Arch, необходимо удалить подпись файловой системы ISO 9660, выполнив wipefs --all /dev/sdx от суперпользователя, перед разметкой и форматированием. Совет: Узнать имя вашей флешки можно с помощью lsblk . Убедитесь что она не примонтирована.

Выполните следующую команду, заменив /dev/sdx на ваше устройство, например, на /dev/sdb . (Не добавляйте номер раздела, т.е. не используйте что-то вроде /dev/sdb1 )

В Windows

Через Rufus

Rufus - универсальная утилита для записи ISO на USB-накопители. Просто выберите образ Arch Linux, USB-накопитель, который вы хотите сделать загрузочным, и нажмите СТАРТ.

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

  • Для версий Rufus ≥ 3.0 выберите GPT в Схема раздела. После нажатия СТАРТ вы получите диалоговое окно для выбора режима, выберите Записать в режиме DD-образ.
  • Для версий Rufus < 3.0 выберите режим DD-образ из выпадающего меню напротив пункта "Создать загрузочный диск".
Через USBwriter

Этот способ не требует каких-либо обходных решений и прост как dd в Linux. Вам нужно только скачать образ Arch Linux и использовать утилиту USBwriter с локальными правами администратора для записи USB флешки.

Через win32diskimager

win32diskimager - инструмент для записи iso на USB с GUI для Windows. Просто выберите ваш iso образ и букву USB-носителя (вам может потребоваться сначала отформатировать его для назначения буквы), потом нажмите Write.

Через Cygwin

Убедитесь, что установка Cygwin содержит пакет dd .

Совет: Если вы не хотите устанавливать Cygwin, вы можете скачать dd для Windows здесь. Для получения дополнительной информации смотрите следующий раздел.

Положите образ в ваш домашний каталог:

Запустите cygwin от администратора (это необходимо cygwin'y для доступа к железу). Для записи на USB-носитель выполните следующую команду:

где образ.iso - путь до образа iso без директории cygwin , а \\.\x: - ваша флешка, где x это буква, присвоенная устройству windows, например, \\.\d: .

В Cygwin 6.0 узнайте имя устройства с помощью:

и запишите образ ISO, согласно выходной информации предыдущей команды. Например:

Важно: Это уничтожит безвозвратно всю информацию на USB-накопителе, поэтому убедитесь, что на нем нет важных файлов перед этим.
через dd для Windows

Для начала скачайте последнюю версию dd для Windows. После загрузки распакуйте содержимое архива в каталог Загрузки или в другое место.

Теперь запустите командную строку от администратора. Далее смените директорию с помощью ( cd ) на Загрузки.

Если ISO Arch Linux в другом месте, укажите полный путь до него. Для удобства вы можете поместить образ Arch Linux в ту же папку, что и исполняемый файл dd. Основной формат команды будет выглядеть следующим образом.

Примечание: Буквы дисков в Windows связаны с разделами. Чтобы разрешить выбор всего диска, dd для Windows имеет параметр od , который используется в приведенных выше командах. Однако обратите внимание, что этот параметр относится к версии dd для Windows и может отсутствовать в других реализациях dd. Важно: Из-за использования параметра od все разделы на выбранном диске будут уничтожены. Перед выполнением убедитесь, что вы ввели правильное имя устройства.

Замените все пустые места (обозначенные "x") правильной датой и правильной буквой диска. Вот полный пример.

The factual accuracy of this article or section is disputed.

Примечание: Альтернативно, замените букву устройства на \\.\PhysicalDriveX , где X - физический номер устройства (начинается с 0). Например:

Вы можете узнать физический номер вводом wmic diskdrive list brief в комадную строку или с dd --list .

Любые окна Проводника должны быть закрыты или dd сообщит об ошибке.

В macOS

Сначала, вам нужно идентифицировать USB-устройство. Откройте /Applications/Utilities/Terminal и перечислите все устройства хранения с помощью команды:

Ваше USB-устройство появится, как /dev/disk2 (external, physical) . Убедитесь, что это устройство, которое вы хотите использовать, проверив его имя и размер, а затем используйте его идентификатор для приведенных ниже команд вместо /dev/diskX.

USB-устройства обычно автомонтируются в macOS, и вам необходимо отключить его (не извлечь) перед записью через dd . В Терминале выполните:

Теперь скопируйте ISO образ на устройство. Команда dd похожа на версию dd в Linux, но заметьте, что 'r' перед 'disk' обозначает режим raw, который делает процесс намного быстрее:

Обратите внимание, что в diskX здесь не включается суффикс s1 , иначе USB-носитель будет загружаться только в режиме UEFI, а не в legacy. После завершения macOS может жаловаться, что "The disk you inserted was not readable by this computer" ("Вставленный диск не читается этим компьютером"). Выберите 'Игнорировать'. Устройство USB будет загрузочным.

Используя ручное форматирование

В GNU/Linux

Это способ сложнее, чем запись напрямую через dd . Но преимуществом этого способа - сохранение возможности хранение прочей информации на флешки (ISO образ устанавливается в определенный раздел уже размеченного устройства без изменения оставшихся).

Примечание: Здесь мы будем обозначать нужный раздел как /dev/sdXn . Во всех следующих командах заменяйте X и n на необходимые вам.
  • Убедитесь, что пакет syslinux установлен.
  • Если вы еще не разметили накопитель, то создайте таблицу разделов и/или разделы прежде чем продолжить. Раздел /dev/sdXn должен быть отформатирован в FAT32.
  • Смонтируйте ISO-образ, файловую систему FAT32, расположенную на USB-носителе, а потом скопируйте содержимое ISO образа на накопитель. Затем отмонтируйте образ ISO. Раздел FAT32 должен остаться примонтированным (он будет использоваться в последующих шагах). Например:

Для загрузки требуется либо метка, либо UUID для выбора раздела для загрузки. По умолчанию используется метка ARCH_YYYYMM (с соответствующим годом и месяцем). Поэтому необходимо правильно установить метку раздела, например, используя gparted. Кроме того, вы можете изменить это поведение, отредактировав строки, заканчивающиеся на archisolabel=ARCH_YYYYMM в файле /mnt/usb/arch/boot/syslinux/archiso_sys.cfg (для загрузки с BIOS) и в /mnt/usb/loader/entries/archiso-x86_64.conf (для загрузки с UEFI). Для использования UUID замените эти части строк на archisodevice=/dev/disk/by-uuid/ВАШ-UUID . UUID можно узнать с помощью blkid -o value -s UUID /dev/sdXn .

Важно: Несоответствие метки или неправильный UUID препятствует загрузке с созданного носителя.

В Windows

  • При ручном форматирование не используйте утилиты для создания загрузочных USB для UEFI. Также не используйте dd для Windows, чтобы записать ISO на USB.
  • В командах ниже X: предполагает USB-носитель в Windows.
  • Windows использует обратную косую черту \ для разделения пути, поэтому она в командах ниже.
  • Все команды следует выполнять в командной строке Windows от администратора.
  • > обозначает командную строку Windows.
  • Приведенный выше шаг устанавливает ldlinux.sys Syslinux'а в VBR раздела USB, устанавливает раздел как "активный/загрузочный" в таблице разделов MBR и записывает код загрузки MBR в 1-й 440-байтовый загрузочный код USB.
  • Параметр -d ожидает путь с разделителем пути косой черты, как в *unix системах.

Другие способы для систем с BIOS

В GNU/Linux

Через мультизагрузочную флешку

Этот способ позволяет запускать несколько ISO с одного USB-носителя, включая archiso. Обновление ISO образа на USB-накопителе здесь делается проще, чем в большинстве других методах. Для получения дополнительной информации смотрите Multiboot USB drive.

Через GNOME Disk Utility

В дистрибутивах Linux с GNOME легко можно сделать liveCD через nautilus и gnome-disk-utility . Просто нажмите правой кнопкой мыши на файл .iso и выберите Open With Disk Image Writer. Когда откроется GNOME Disk Utility, укажите флешку в Destination и нажмите Start Restoring.

Создание USB-ZIP накопителя

Некоторые старые системы с BIOS поддерживают загрузку только с USB-ZIP носителя. Этот способ позволяет вам все еще загружаться с накопителя USB-HDD.

Важно: Это уничтожит всю информацию на USB-носителе!
  • Скачайте syslinux и mtools с официальных репозиториев.
  • Найдите вашу флешку с помощью lsblk .
  • Введите mkdiskimage -4 /dev/sdx 0 64 32 (заменив x на букву вашего устройства). Это займет некоторое время.

Теперь выполняйте инструкции из раздела ручного форматирования выше. Раздел будет /dev/sdx4 из-за особенностей работы ZIP-дисков.

Примечание: Не форматируйте накопитель в FAT32; он должен быть в FAT16.

Через UNetbootin

UNetbootin можно использовать на любом дистрибутиве Linux или Windows для копирования iso на USB. Но он перезаписывает syslinux.cfg , поэтому созданная загрузочная флешка не правильно загружается. Из-за этого Unetbootin не рекомендуется -- пожалуйста используйте dd или один из других описанных здесь способов.

Важно: UNetbootin перезаписывает стандартный syslinux.cfg , поэтому его нужно восстановить до использования флешки.

В строке /dev/sdx1 вы должны заменить x на первую свободную букву т.е. на букву, которая следует за последней использованой в системе, на которую устанавливаете Arch Linux (например, если у вас два жестких диска, используйте c .). Вы можете сделать это изменение во время первой фазы загрузки, нажав Tab , когда отображается меню.

В Windows

Через Flashnul

flashnul - утилита для проверки работоспособности и обслуживания Flash-памяти (USB-Flash, IDE-Flash, SecureDigital, MMC, MemoryStick, SmartMedia, XD, CompactFlash и т.д.).

В командной строке вызовите flashnul с параметром -p и определите, какой индекс устройства является вашим USB-накопителем, например:

Когда вы определили, какое вам нужно устройство, вы можете записать образ на него, вызвав flashnul с индексом устройства, -L и с путем к образу, например:

Если вы действительно уверены, что хотите записать данные, введите yes, а затем немного подождите, пока они будут записываться. Если вы получили ошибку "Отказано в доступе", закройте все открытые окна Проводника.

Если вы используете Vista или Win7, вы должны открыть консоль от имени администратора, иначе flashnul не сможет открыть флешку как блочное устройство и сможет писать только через дескриптор диска.

Примечание: Известно, что вам нужно использовать букву диска, а не номер. flashnul 1rc1, Windows 7 x64.

Загрузка установочного носителя из ОЗУ

Notes: Это тот же самый метод, только Syslinux установлен в Windows. Учитывая, что multiboot USB drive может использоваться для загрузки установочного носителя, и он уже упомянут в "Ссылки по теме" вверху, возможно, этот раздел следует перенести туда? (Discuss in Talk:USB flash installation medium (Русский))

Этот способ использует Syslinux и Ramdisk (MEMDISK) для загрузки всего образа Arch Linux в ОЗУ. Поскольку он будет работать полностью из оперативной памяти, вам необходимо убедиться, что система, на которую вы будете его устанавливать, имеет достаточный объем. Минимальное количество ОЗУ - между 500 MB и 1 GB. Этого должно хватить для MEMDISK на основе Arch Linux.

Для получения дополнительной информации о системных требованиях Arch Linux, а также о требованиях для MEMDISK соответственно смотрите Руководство по установке и это. Для справки, вот тема форума об этом.

Совет: После того, как установщик завершит загрузку, вы можете просто извлечь USB-накопитель и даже использовать его на другом компьютере заново. Использование MEMDISK также позволяет загружать и устанавливать Arch Linux с одной и той же USB-флешки.
Подготовка флэш-накопителя USB

Отформатируйте USB-носитель в FAT32. Затем создайте следующие папки на нем.

Копирование нужных файлов на флешку

Далее скопируйте ISO, с которого вы хотите загружаться, в каталог Boot/ISOs . После этого извлеките следующие файлы из последней версии syslinux отсюда и скопируйте их в следующие каталоги.

  • ./win32/syslinux.exe на Рабочий стол или в Загрузки вашей системы.
  • ./memdisk/memdisk в каталог Settings на вашей флешки.
Создание файла настроек

После копирования необходимых файлов перейдите на USB-накопителе в /boot/Settings и создайте файл syslinux.cfg .

Важно: В строке INITRD обязательно используйте имя файла ISO, который вы скопировали в папку ISOs .

Для получения дополнительной информации о Syslinux смотрите статью Arch Wiki.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Оглавление

Можно выделить следующие обстоятельства при которых возникла проблема с загрузкой Linux:

  1. Не загружается Linux Live при записи на флешку
  2. Linux не загружается сразу после установки операционной системы
  3. Linux не загружается после обновления или установки программ (ядра Linux, драйверов)
  4. Linux не загружается из-за аппаратных изменений компьютера (новая видеокарта, новый диск или отключение диска)

1. Не загружается Linux Live при записи на флешку

1.1 Включены опции Quick boot и (или) Secure boot

Причина может быть в том, что в вашем BIOS (UEFI) включены опции Quick boot и (или) Secure boot. Зайдите в БИОС и отключите их.

1.2 Не пользуйтесь Rufus

Не надо пользоваться Rufus для записи образов Linux. Сейчас большинство ISO LIVE образов Linux это гибридные образы: в них имеется поддержка BIOS и UEFI, т. е. они прекрасно работают на старом и новом железе, а Rufus вносит какие-то изменения и просто портит их.

Для записи используйте портативную кроссплатформенную программу Etcher.

1.3 Обновите БИОС вашего компьютера

Если ничего вышеперечисленное не помогло, то обновите BIOS, особенно это относится к владельцам старого железа.

1.4 A start job is running for live-config contains the components that configure a live system during the boot process (late userspace)

2. Linux не загружается сразу после установки операционной системы

2.1 error: attempt to read or write outside of disk “hd0″

3. Linux не загружается после обновления или установки программ

Среди вероятных причин проблем с загрузкой Linux после обновления или установки программ могут быть:

  1. обновление ядра Linux
  2. установка или обновление драйверов для графической карты

3.1 Невозможно загрузиться после установки драйверов видеокарты

Загрузка доходит до меню, но замирает на экране консоли или после ввода логина и пароля

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

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

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

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


Теперь отредактируйте опции загрузки, добавив nomodeset. Для этого найдите строку, начинающуюся со слова linux и в её конец допишите через пробел слово nomodeset. Для продолжения загрузки нажмите F10.

Эта настройка действует только для текущей загрузки и при последующих перезагрузках системы это нужно делать снова.

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

В данный момент на эту проблему жалуются владельцы компьютеров с видеокартами NVidia. Причина, судя по всему, в конфликте последних версий ядра Linux с проприетарными драйверами NVidia и свободными драйверами nouveau. Одним из подтверждений этого является строка

в консоли загрузки.

Для отключения nouveau создайте файл /etc/modprobe.d/blacklist-nouveau.conf и скопируйте в него:

Если вы не можете загрузиться в графический интерфейс, то попробуйте с помощью сочетаний клавиш Ctrl+Alt+F1, Ctrl+Alt+F2, Ctrl+Alt+F3 и так далее перейти в консоль. Залогинтесь там и с помощью консольного редактора создайте в папке /etc/modprobe.d/ файл blacklist-nouveau.conf со следующим содержимым:

Для создания файла с помощью текстового редактора nano:

Или с помощью vim:

3.2 Невозможно загрузиться после обновления ядра

В производных Debian после установки нового ядра могут появляться новые опции в меню загрузки с вариантами загрузки компьютера с предыдущей версией ядра.

На равне с прочими опциями загрузки, также можно явно указать версию ядра Linux для загрузки, в Kali Linux файлы называются, например:

  • /boot/initrd.img-5.4.0-kali2-amd64
  • /boot/initrd.img-5.4.0-kali3-amd64

В Arch Linux и производных текущее ядро имеет имя /boot/initramfs-linux.img, а предыдущее ядро имеет имя /boot/initramfs-linux-fallback.img.

4. Linux не загружается из-за аппаратных изменений компьютера

4.1 Не загружается после добавления/удаления диска

4.2 Новая видеокарта

Как откатить изменения в Linux, если система не загружается

1) После попадания в чёрный экран. Попробуйте нажать Ctrl+Alt+F1. Если ничего не произойдёт, то нажимайте дальше Ctrl+Alt+F2, Ctrl+Alt+F3 и т. д. Ctrl+Alt+F* пока не появится приглашение авторизации.

2) Введите логин и пароль вашего пользователя

3) С помощью менеджера пакета (apt, pacman) удалить пакеты, которые вызвали проблемы. С помощью текстовых редакторов с интерфейсом командой строки (vim, nano) откатите изменения в конфигурационных файлах, которые препятствуют загрузке.

Как увидеть, из-за каких ошибок не загружается Linux

Увидеть ошибки, которые препятствуют загрузке системы, можно двумя способами:

1) на экране во время загрузки

2) с помощью команды journalctl

Иногда система намертво зависает и невозможно воспользоваться командой journalctl, тогда в этом случае остаётся только первый вариант. Но другая проблема в том, что многие дистрибутивы Linux во время запуска компьютера убирают вывод журнала загрузки на экран и/или закрывают его заставкой.

1) Чтобы вернуть показ журнала загрузки системы выполните следующую последовательность действий:

1.1 В меню загрузки нажмите е (или TAB). Откроется окно опций загрузки. Если в нём несколько строк, то передвиньте курсор на строку, которая начинается с

1.2 Посмотрите, встречаются ли в этой строке «quiet» и «splash»?

1.3 Уберите обе эти строки и начните загрузку (кнопку F10). Посмотрите, какие именно ошибки не дают загрузиться системе.

2) Как просмотреть журнал последней загрузки

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

Либо используйте следующую команду для сохранения информации о последней загрузки в файл:

Использование однопользовательского режима для восстановления системы

В крайнем случае, если не удаётся войти даже в интерфейс командной строки из-за зависания системы, воспользуйтесь однопользовательским режимом. Подробности об этом режиме, а также какие опции нужно указать смотрите в статье «Как в Linux сбросить забытый пароль входа». В этой статье также даются подсказки о подключении диска для записи и о том, как отредактировать опции загрузки Linux в различных дистрибутивах.

Не загружается Linux, чиним загрузчик GRUB

Любите экспериментировать? Наверняка вы когда-либо пытались произвести какие-то действия со своей Linux-системой, причем не так важно какие были цели: изучение и познание новых возможностей или же какая-то более конкретная цель, в виде исправления той или иной ошибки. В любом случае, при работе с дистрибутивами Linux, для загрузки которых, в большинстве случаев, и используется Grub, с последним могут возникать неприятные проблемы, ввиду которых дальнейшая эксплуатация системы просто-напросто невозможна. В этой статье вы узнаете, что делать, если не загружается Linux. Как вести себя в подобной ситуации и какие действия производить, чтобы починить загрузчик Grub. Пожалуй, начнем.

Что такое Grub

GRUB_screenshot

Grub (или GRand Unified Bootloader) - загрузчик операционных систем с открытым исходным кодом. Распространяется он под лицензией GNU GPL, в полностью свободном виде. С помощью этого замечательного лоадера можно сделать много всего - основная же функция не ограничивается загрузкой лишь одной операционной системы. Вы можете иметь куда больше операционных систем на своем ПК, загружая любую из них с помощью Grub. На скриншоте выше вы можете видеть как примерно Grub выглядит. Кстати говоря, если вы захотите установить Ubuntu 18.04 рядом с Windows, вам определенно понадобится помощь Grub.

Grub используется в большинстве дистрибутивов Linux в качестве загрузчика по-умолчанию. Разумеется и с ним иногда возникают проблемы. Этим самые проблемы чреваты полным отказом операционной системы. Поэтому для починки Grub нам понадобятся дополнительные инструменты. Какие именно - узнаете далее.

От чего могут возникнуть проблемы

Одна из самых распространенных причин - это неправильный порядок установки двух операционных систем (Linux и Windows). Допустим, если вы захотите установить две этих операционных системы на свой ПК - вам непременно стоит знать правильную последовательность:

  • Сначала устанавливаем Windows
  • И только потом уже Linux

Если, например, сделать наоборот, то как раз-таки Grub будет поврежден; система будет грузиться напрямую в Windows, а дистрибутив Linux останется недоступным.

Grub может сломаться и по другим причинам. Например, из-за попыток ручного изменения параметров запуска (при недостатке опыта), в таком случае нужно будет либо вручную убирать лишнее, либо полностью переустанавливать Grub.

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

Для этого способа нам понадобится флешка с дистрибутивом Linux на борту. Подойдет любой: от Ubuntu, Arch или даже Linux Mint. Здесь нужен только терминал, поэтому подойдет даже версия без графической оболочки.

Как создать LiveCD/USB

Само собой, нам понадобится носитель, на который мы временно (а может и нет) запишем систему. Сохраните все важные файлы, которые были на этом носителе, после чего (имеется ввиду на другом ПК, желательно под управлением Windows) запишите загруженный образ дистрибутива на носитель. В качестве примера мы будем использовать дистрибутив Ubuntu.

Идем на официальную страницу загрузки. Загружаем любую понравившуюся версию (лучше взять новейшую для десктопа), после чего записываем ее на USB/CD.

С помощью Rufus:

Последняя версия приложения доступна на официальном сайте. Сразу после загрузки и запуска/установки мы увидим такое окно:

Rufus

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

Rufus obraz

Находим загруженный образ через менеджер, после чего жмем "Старт".

С помощью Etcher:

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

Ну а теперь, собственно, можно переходить к восстановлению Grub. Вставляем флешку в наш ПК (где сломан загрузчик), после чего перезагружаем его с этой самой флешки. Как только мы войдем в лайв-систему, сразу открываем терминал, после чего проделываем следующие действия:

Открываем таблицу разделов с помощью команды:

Примерно такая таблица будет выведена на экран:

По этой таблице мы видим, что Linux, в нашем случае, расположен на разделе /dev/sda1.

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

Теперь, для записи grub в MBR, нужно ввести следующую команду:

Если нужно только восстановить MBR диска (после переустановки Windows, к примеру), то этих действий будет вполне достаточно.

Если же необходимо обновить и меню grub (после установки Windows), то нужно выполнить еще и эту команду:

Вот и все, восстановление закончено!

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

Помимо вышеописанного способа, при восстановлении Grub с помощью LiveCD можно использовать и этот. Тут мы будем использовать утилиту chroot.

Здесь нам, опять же, понадобится таблица разделов. Вводим уже известную команду:

В выводе снова будет эта таблица. Теперь нам надо присмотреться к ней еще внимательнее.

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

Обратите внимание, что если если разделы /boot или /var находятся отдельно, то Вам нужно будет примонтировать их в /mnt/boot и /mnt/var.

Далее мы переходим в окружающую среду chroot с помощью команды:

И теперь, наконец-таки переустанавливаем Grub с помощью следующей команды:

Если все прошло успешно, выходим из chroot, используя команду:

Далее нужно отмонтировать все разделы. Для этого вводим в терминал:

В случае, если вы монтировали раздел /boot введите команду:

Теперь перезагружаем систему с помощью:

Можно также обновить меню Grub, используя команду:

Восстановление Grub в rescue mode

Если по каким-то причинам у вас нет доступа к LiveCD/USB-носителю, а также к компьютеру, с помощью которого этот самый носитель можно было бы сделать, то этот способ для вас.

Само восстановление проходит таким образом: сначала мы подгружаем все модули, чтобы открыть доступ ко всей функциональной части Grub, после чего запуститься с нужного раздела. Надо понимать, что Grub состоит из двух частей:

Одна из этих частей (первая) записана в MBR диска. В ней присутствует базовый функционал и ничего больше (консоль в rescue mode).

Стало быть, нам нужно определить, в каком разделе находится вторая часть Grub (находится в каталоге /boot/grub), и после чего подгрузить все недостающие модули. А вот уже после этого мы сможем запустить загрузчик с нужного раздела. В rescue mode есть всего четыре команды:

Для начала вводим следующую команду:

В выводе будет что-то подобное:

В некоторых случаях Grub неправильно опеределяет файловые системы находящиеся на разделах дисков. В данном примере загрузчик показывает их как msdos. Мы должны попытаться угадать диски, которые видим. В примере доступно два диска. Диск с индексом 0 содержащий три раздела, и диск с индексом 1 содержащий два раздела. Если вы знаете структуру своих дисков, определить нужный труда не составит.

В загрузчике Grub разделы нумеруются в обратном исчислении. Не очень ясно какой именно из разделов назван, к примеру (hd0,msdos3). Чтобы было более понятно, можно использовать вид (hd0,1). Если в грабе отсчет дисков идет с 0, а разделов с 1, то можно определить, что операционная система установлена в первый раздел первого раздела - (hd0,1). Используем следующую команду:

С помощью этих команд мы приказываем системе использовать какой-то конкретный диск, для выполнения всех остальных операций (в нашем случае, это диск (hd0,1)). Чтобы проверить есть ли на данном диске загрузчик, введем эту команду:

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

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

Чтобы закрепить результат (и не проделывать все то же самое после перезапуска ПК), нужно зайти в терминал своего дистрибутива Linux, где с root правами выполнить следующую команду:

sdX - диск, на который должен быть установлен Grub.

Если операционная система расположена на разделе с файловой системой btrfs, то нам необходимо выполнить следующие команды:

И подгрузить модули:

Ну и теперь запустить GRUB:

Восстановление Grub с помощью утилиты Boot repair

1335260967

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

Чтобы установить boot repair, вы можете воспользоваться одним из приведенных способов:

  • Запись и установка специального образа диска Boot Repair (и дальнейшая загрузка с него)
  • Установка Boot repair из PPA-репозитория в LiveCD/USB дистрибутиве.

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

В утилите будет доступно два варианта на выбор:

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

Create a BootInfo summary создает Boot-Info-Script – скрипт, который позволяет диагностировать большинство проблем при загрузке.

Здесь же есть и Advanced options. Он включает в себя варианты для восстановления и настройки загрузчика Grub2 (загрузка по-умолчанию, опции загрузки ядра, отображение или скрытие GRUB при загрузке, удаление GRUB). С помощью этих же инструментов, вы можете восстановить MBR и т.д.

Вам обязательно стоит заглянуть на официальный сайт Boot Repair. Там вы сможете найти более подробную информацию обо всех возможностях и особенностях программы. Там же будет доступна информация о выходе новых версий: фиксах и улучшениях самой утилиты, а также многом и многом другом.

Выводы

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

Возможно вас заинтересуют и другие похожие материалы про починку загрузчика Grub2. Например, в этом материале вы узнаете, как починить GRUB2 если Ubuntu не хочет загружаться. Там более подробно рассказывается, как фиксить груб с помощью утилиты Boot Repair, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

Читайте также: