Grub не дает загрузиться с флешки

Обновлено: 03.07.2024

Ноутбук моего друга был в автокатастрофе (он в порядке!). Однако ноутбук очень старый, его Acer Aspire 1520 диск CD-ROM сломан и нет флоппи-дисковода.

Я сделал ему USB-загрузку, прежде чем я взглянул на нее и обнаружил, что его BIOS не может загружаться с USB. только , у меня есть консоль GRUB, но он хочет просто установить XP (на USB) и использовать его только для фильмов.

Возможно ли, используя консоль GRUB, получить доступ к USB и запустить установку Windows? Это высокий порядок, но я думаю, что это может быть способ или попытка установить через LAN, что, я думаю, не будет достижимо.

Вот краткий пример команд grub, которые могут работать, объяснения и оговорки ниже.

Скорее всего, для установки после 2010 года.

Скорее всего, для установки до 2005 года.

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

При запуске grub будет проверять ваши устройства и назначать им номера. Все устройства, которые разделены (жесткие диски и флэш-диски), также будут иметь присвоенные номера. Формат (<deviceName>,<partitionIndex>) . В grub2 , индексы разделов изменились, поэтому приведенные выше примеры имеют одинаковый эффект, несмотря на то, что они используют разные корни.

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

После запятой - индекс раздела. Жесткие диски и флэш-диски почти всегда будут разбиты на разделы, поэтому вы должны выбрать правильный (и, скорее всего, только) раздел. CD-ROM обычно не разделяются.

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

Чтобы прокомментировать комментарий нового123456:

Устройство USB должно быть обнаружено как запоминающее устройство большой емкости и обработано как жесткий диск. Итак, в grub введите root (hd (еще не нажимайте Enter), а затем нажмите вкладку один или два раза, чтобы посмотреть, какие жесткие диски Grub могут видеть. Устройство USB, если оно распознано, вероятно, будет hd1. Не указывайте номер раздела; просто добавьте закрывающую скобку. Таким образом, строка будет root (hd1) . Затем введите следующее:

Если это не сработает, измените root (hd1) на root (hd1,0) и повторите попытку.

Если по какой-то причине Grub не может видеть USB-накопитель, попробуйте подключить USB-CD-ROM и перезагрузить его.

Функция chainloader +1 может не работать, если BIOS не подходит для загрузки с USB-ключа (именно поэтому я и хотел использовать Grub в любом случае).

/path/to/iso/file должен быть путь к файлу ISO на USB-клавиатуре. (fd0,msdos1) идентифицирует USB-ключ. Заполнение вкладки очень полезно в строке loopback и не полезно для аргументов vmlinuz

Это не будет ужасно полезно в случае вашего друга (если только я не знаю, как я должен был наткнуться на устройство - возможно, USB-диск cd-rom или USB-дисковод? ), но это потрясающее небольшое приложение, которое помогло мне собрать несколько старых машин для загрузки с USB-устройств, когда их биос не позволил.

Вы не можете загрузиться с usb в grub, если биос не позволяет его самостоятельно. Мне когда-то пришлось настроить какой-то раздел восстановления на жестком диске, содержащем содержимое установочного диска win7, установить grub, а затем использовать его для загрузки установочного раздела win7, чтобы установить его на остальную часть жесткого диска.

Есть флешка с grub'ом и несколькими live дистрами, сделанная мной. Она хорошо загружается через компьютер и qemu в linux (много раз протестировано мной). Есть старенький ноутбук Acer 2010-го года. Обыскал и обсмотрел у ноутбука весь BIOS - про UEFI и Secure Boot ни слова нету. По моему, он работает на BIOS, но флешку загружать не хочет - пишет, что нет загрузочного устройства. Чтобы вы не говорили, что usb порты повреждены - dvd/cd диски и другие флешки, на которые записаны ISO-образы ноутбук загружает нормально.


А флешка у тебя в CMOS-menu как отображается? У меня на старом оборудовании флешки определяются как жесткий диск.

Еще есть небольшая вероятность, что если разметка на флешке GPT, то BIOS не сможет загрузиться. Однако это справедливо для совсем старого оборудования, лет 15+, но мало ли.

Еще одна мысль: а на флешке вообще есть загрузчик в MBR? Или только EFI?

mandala ★★★★ ( 01.07.18 10:57:56 )
Последнее исправление: mandala 01.07.18 10:58:29 (всего исправлений: 1)

На флешке есть mbr, тк на компьютере uefi нет, но она успешно загружается. Таблица разделов dos, размечал флеш сам в fdisk. В меню загрузки отображается как USB HDD: Kingston xxxxx PMAP. Usb же. я вообще хз что делать. Очередная мистика)))


Никакой мистики здесь нет.

Вот только CD/DVD ROM работает по SATA, в худшем (не в твоём, ибо 2010) — IDE.

флешка с grub'ом и несколькими live дистрами

Подозреваю, что где-то ты накосячил. Где конкретно — не знаю, так как вводной информации ну совсем нет (телепаты в бессрочном отпуске, ты, наверное, уже в курсе). Покажи как размечена флэшка ( fdisk -l <your_device> ), конфиг GRUB (на пасту), иерархию на флэшке ( tree -x -L 4 <device_mountpoint> , на пасту).

То, что оно работает на одной машине (и уж тем более на виртуальной) — не означает, что должно работать на всех, увы.

Ноутбук моего друга попал в автомобильную аварию (он в порядке!). Однако ноутбук очень старый - это Acer Aspire 1520, дисковод для компакт-дисков сломан, а дисковод гибких дисков отсутствует.

Я сделал его загрузочным USB, прежде чем я взглянул на него и обнаружил, что его BIOS не может загрузиться с USB. Только , что у меня есть это GRUB консоль , но он стремится просто установить XP (на USB) и использовать его только для фильмов.

Можно ли с помощью консоли GRUB получить доступ к USB и начать установку Windows? Это сложный заказ, но я думаю, что это может быть способ или попытка установки через локальную сеть, что, я не думаю, будет достижимо.

Я попытался бы получить привод USB cd / dvd и работать над тем, чтобы заставить компьютер загружаться к этому. В этом посте показаны необходимые ручные команды - вам просто нужно узнать номер диска, что можно сделать, заполнив вкладку GRUB.

Вот краткий пример команд grub, которые могут просто работать, пояснения и предостережения ниже.

Скорее всего для установки после 2010 года.

Скорее всего, для установки до 2005 года.

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

При запуске grub проверит ваши устройства и назначит им номера. Всем устройствам, которые разбиты на разделы (жесткие диски и флэш-накопители), также будут назначены номера. Формат есть (<deviceName>,<partitionIndex>) . В grub2 , индексы секций изменились, поэтому два приведенных выше примера имеют одинаковый эффект, несмотря на то, что они ищут разные корни.

Ваше первое устройство ( hd0 ) - это устройство, из которого только что загружен grub. После этого вы обычно можете предполагать, что все внутренние устройства будут предшествовать вашим внешним устройствам. Скорее всего, они будут в виде hd числа.

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

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

Иллюстрация 1


Недавно оказался в такой вот ситуации. У меня есть Linux на машине и понадобилось переустановить/или установить другой дистрибутив. Отлично, это же легко! Загрузили дистрибутив с USB диска и вперед! Однако некоторые (особенно старые) машины не умеют загружаться с USB. Это было неприятно (особенно если учесть что я больше не записываю CD/DVD ни для каких нужд). Однако, если у вас есть GRUB1 установленный на машину, вы можете использовать его для загрузки с USB диска и даже переписать что-либо на жестком диске. Это вам конечно не поможет, если у вас компьютер без операционной системы или если у вас какой-нибудь Windows -> тогда, возможно, вам стоит посмотреть в сторону загрузки PXE. Я до сих пор не смог заставить так же работать GRUB2, некоторые вещи там делаются сложнее однако для старых машин этого может вполне хватить.

  1. Сначала определитесь с дистрибутивом (какой хотите загрузить/установить). Я использовал Linux Mint Debian записанный на USB через Unetbootin.
    Они (как и другие дистрибутивы) хранят это в syslinux.cfg, посмотрите пункт default и затем измените подчеркнутые места.
    [code]label unetbootindefault
    menu label Default
    kernel /ubnkern
    Добавить
    initrd=/ubninit boot=live config live-media-path=/casper quiet splash
    [/code]
  1. Загрузите целевую машину со вставленным USB приводом. После загрузки GRUB нажмите Escape и затем C для входа в командную строку GRUB.
  2. Если у вас всего два привода (включая тот что USB) на машине то внутренний будет обозначаться (hd0,0) и внешний (hd1,0), ну или что-то похожее.
    Я набрал следующее, измените у себя так как я показывал выше, нажимая Enter после каждой команды.
    [code]root (hd1,0)
    kernel /ubnkern
    initrd /ubninit boot=live config live-media-path=/casper quiet splash[/code]
  3. Готовы? Наберите boot и нажмите enter.

Так же в GRUB замечательно работает автодополнение по кнопке Tab. Вы можете набрать root (hd нажать Tab и получить список доступных приводов, root (hd0, и получите доступные на приводе разделы и типы файловых систем, и наконец список целевых ядер и initrd образов.

Не загружается 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, возможно вам стоит заглянуть туда, если вы не поняли что-то из этого материала. Что же, ну а на сегодня это все. Надеюсь, что данный материал помог вам разобраться в ошибках. Что, в свою очередь, поможет вам их решить.

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