Разное

Как установить grub загрузчик: Установка загрузчика Grub | Losst

Содержание

Как установить и настроить загрузчик Grub

Введение

Как правило, дополнительная настройка GRUB не требуется, все необходимые файлы устанавливаются на компьютер самостоятельно во время инсталляции ОС Linux. Нет необходимости заново устанавливать загрузчик, если, например, пользователю нужно провести конфигурацию, так как в этом случае следует только редактировать содержимое /boot/grub/ menu.lst.

Как произвести правильную установку и настройку — в статье ниже

Установка GRUB целесообразна в том случае, если его физически не существует на устройстве, иными словами, он может быть стёрт после инсталляции другой системы (чаще всего Windows). Иногда случается и такое, что копии загрузчика не функционируют должным образом или GRUB, по желанию владельца ПК, заменяется другим типовым загрузчиком. Какими бы ни были причины, установка GRUB, в любом случае, должна производиться исключительно с «живой» системы (Knoppix, например). Дело в том, что без функционирующего загрузчика, запустить на ПК дистрибутив Linux, который располагается на жёстком диске, попросту не выйдет. В статье рассмотрим способы установки и настройки загрузчика GRUB.

Загрузчик позволяет выбрать, какую запустить операционную систему

Что представляет собой загрузочный сектор?

Если владелец ПК уверен в своих силах и знаниях, ему будет достаточно прочесть лишь раздел, в котором пошагово расписан процесс установки загрузчика GRUB, однако тем юзерам, которые впервые сталкиваются с подобной проблемой, лучше предварительно узнать об особенностях BIOS и MS DOS.

Жёсткий диск разделён на несколько секторов, в первом из которых осуществляется основная запись диска (пользователи привыкли именовать её как MBR). Для этого требуется всего 512 байт, в которых «спрятана» небольшая программка. Следующий сектор занимает таблица разбиения диска, которая, по обычаю, состоит из четырёх главных разделов, объёмом 64 байта, и цифровой подписи (только 2 байта).

Особенности загрузочного сектора

Загрузочный сектор можно назвать основой основ, так как он находится в MBR и во всех остальных разделах. Как показывает практика, его заключают во все 16 секторов, на которые разделён любой жёсткий диск. Несмотря на тот факт, что в большинстве современных файловых систем, данные, которые включает загрузчик, располагаются не в первом секторе: система XFS, например, нуждается во всех работоспособных секторах диска. Поэтому, в случае, когда данные загрузчика стираются, файловая система полностью разрушается.

Включение устройства

В момент запуска компьютера, в первую очередь начинает запускаться непосредственно сам BIOS. В этот момент происходит считывание данных, хранящихся в MBR первого диска. Спустя несколько секунд, содержимое «идёт» к оперативной памяти, где происходит проверка на наличие в последних байтах шестнадцатеричных кодов 55 АА. Такая проверка заключается в необходимости идентифицировать носители для их последующей загрузки. Небольшая программка, хранящаяся в MBR, необходима при совпадении представленных кодов. Первая программа «цепляет» следующую, расположенную в загрузочном секторе активного раздела, чтобы впоследствии активировать её, и, как следствие, запустить ОС Windows.

В случае наличия не одного жёсткого диска, пользователь может настроить в BIOS порядок, согласно которому будет производиться запуск конкретных жёстких дисков в момент загрузки системы. Благодаря этой особенности, новые ПК имеют возможность загружать систему как с внешнего диска, так и с USB-накопителя. Естественно, изменив порядок загрузки в BIOS, юзер может загружать систему посредством CD и DVD-дисков.

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

Чтобы в будущем не приходилось разбираться с загрузчиками и думать о том, каким образом должна осуществляться настройка GRUB, пользователь должен знать, как установить две операционные системы от разных производителей таким образом, чтобы они не конфликтовали между собой. Как показывает практика, разумнее всего установить изначально загрузчик системы Linux, чтобы впоследствии иметь возможность выбора относительно запускаемой системы.

Однако, если на устройстве стоит одна из последних версий ОС от компании Microsoft (позднее 9х/ME), то в загрузчике системы можно сделать так, чтобы он самостоятельно «беспокоился» о GRUB. Огромным преимуществом такой возможности является отсутствие необходимости лишний раз разбираться с особенностями MBR. Правда, далеко не каждый современный юзер сможет самостоятельно произвести такую манипуляцию, так как процесс этот достаточно сложный. Всё придётся делать вручную.

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

Для чего важно создать копию MBR?

После того, как будет принято решение совершить GRUB install, пользователю необходимо создать резервную копию MBR. Дело в том, что неправильно внесённые изменения «помогут положить» как Windows, так и Linux. В этом случае неизбежно понадобится система Knoppix или установочный DVD-диск для Windows, которые помогут отредактировать загрузочный сектор. Исправить свои действия можно будет в несколько раз быстрее, если в наличие будет резервная копия MBR. Для этого следует выполнить нижеприведённые команды:

root# dd if=/dev/sda of=/boot/bootsektor.scsi bs=1 count=446

Восстановление загрузочного сектора может быть осуществлено только посредством команды:

root# dd if=/boot/bootsektor.scsi of=/dev/sda bs=1 count=446

Однако, следует учесть, что посредством этих команд пользователю удастся изменить лишь 446 байт MBR.

Инсталляция в MBR жёсткого диска

GRUB install можно производить сразу же, как только будет создан соответствующий конфигурационный файл (задаётся посредством команды /boot/grub/menu.lst). В каталоге grub в обязательном порядке должны присутствовать такие файлы, как stage1, stage2 и *_stagel_5. В случае их отсутствия, в этот раздел следует записать файлы, содержащиеся в GRUB.

Дальнейшие манипуляции заключаются в запуске загрузчика GRUB и выполнении команды setup. Значения hdl,12 должны быть заменены на имя устройства GRUB раздела диска, содержащего /boot. Следует быть предусмотрительным, так как раздел /boot может располагаться не в системной папке, а в другой.  Hd0 отвечает за область хранения загрузочного сектора основного жёсткого диска.

SUSE во время инсталляции пополняется файлом /etc/grub.conf., в котором содержатся команды, относящиеся непосредственно к GRUB install. Если что-то пошло не так, пользователь ПК может в любой момент процедуры заново запустить установку. Помочь в этом может команда grub < /etc/grub.conf.

Способы инсталляции загрузчика

Установка GRUB может быть произведена не только в MBR. По желанию, загрузчик можно расположить в любом загрузочном секторе абсолютно любого жёсткого диска. Несмотря на то, что бывают ситуации, когда такое решение оказывается неоправданным, в перечисленных ниже случаях, установка GRUB в другой раздел весьма упрощает задачу юзера.

Прибегнуть к GRUB install можно в том случае, если запуск загрузчика осуществляется посредством аналогичного устройства Windows. Также решение будет целесообразным, если на компьютере установлено несколько вариантов ОС Linux и ранее инсталлированный GRUB пользователь не собирается менять на другой загрузчик.

Предпочтительнее для оптимизации процесса выбирать системный раздел Linux. Иными словами, если операционная система находится в /dev/sda7, для правильной установки, пользователь должен использовать нижеприведённые команды. Главным различием установки GRUB в MBR или системный раздел является необходимость указать в setup вместо hd0 выбранный раздел.

<code>root# grub grub> root (hd1,12)

grub> setup (hd0,6) (Установка в загрузочный сектор /dev/sda7) grub> quit</code>

Прежде чем осуществить GRUB install, следует учесть одну особенность некоторых файловых систем, так как иногда загрузочные сектора раздела не могут быть использованы загрузчиком или иным типовым приложением. В частности, одной из таких систем является XFS — инсталлированный в её загрузочный сектор GRUB, попросту разрушит всю файловую систему.

Инсталляция на USB-накопитель

Благодаря современным технологиям, каждый желающий может загрузить операционную систему посредством USB-накопителя. Если GRUB install будет производиться непосредственно с внешнего носителя информации, а не с помощью Windows или Linux, пользователь должен проверить правильность распознавания накопителя материнской платой.

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

Следующим шагом должна стать активизация поддержки USB-накопителя, для чего в BIOS предусмотрен отдельный параметр. При распознавании USB-накопителя как отдельного загрузочного диска, в BIOS будет изменён список, согласно которому GRUB поочерёдно списывает данные с носителей. В качестве первого диска станет USB-накопитель, остальные жёсткие диски станут доступны посредством hdl и hd2. Если возникнет необходимость, перед GRUB install можно изменить /boot/grub/devices.map.

Если всё сделать правильно, установка GRUB с внешнего носителя будет более чем успешной. GRUB распознаёт флеш-накопитель как hdn+1, где n является числом, соответствующим последнему внутреннему жёсткому диску. Последующая установка GRUB в MBR посредством внешнего накопителя информации нуждается в выполнении нижеприведённой команды:

<code>root# grub grub> root (hd1,12)

grub> setup (hd2) (инсталляция в MBR флеш-накопителя) grub> quit

</code>

Дальнейшая перезагрузка ПК должна помочь GRUB появиться в MBR и запустить все имеющиеся системы, которые содержатся в menu.lst. В случае возникновения ошибок, следует зайти через меню загрузчика в интерактивный режим, нажимая кнопку С. Активация команды, состоящей из слова cat и нажатия на клавишу табуляции, помогает узнать пользователю о тех названиях, которые загрузчик присвоил всем жёстким дискам. С помощью клавиши Esc можно выйти назад в меню, а кнопка Е поможет изменить ранее написанные для загрузки команды и вновь их исполнить.

Если ОС Linux хранится на флеш-накопителе или внешнем жёстком диске, который можно подключить к компьютеру исключительно через USB-порт, пользователю следует учесть несколько важных проблем. Дело в том, что GRUB install может быть осуществлён не с первого раза, вероятнее всего, придётся несколько раз изменять настройки BIOS и обозначения приводов. Будет лучше, если все свойства, хранящиеся в файле menu.lst, будут настраиваться только вручную.

Кроме того, в файле Initrd следует хранить все важные USB-модули. При работе с Ubuntu в разделе /etc/fstab и строке kernel, расположенной в menu.lst, нужно указывать не сами названия устройств, так как после перезагрузки системы они могут быть изменены, а номера UUID. Пользователь может самостоятельно в menu.lst посредством uuid указать именно тот каталог, в который впоследствии будут помещены ядро и файл Initrd.

Заключение

Несмотря на кажущуюся сложность, произвести GRUB install может каждый. Содействие с новомодными материнскими платами предусматривает простую и беспроблемную работу любой операционной системы, в том числе и Linux, которая может быть инсталлирована непосредственно на самом USB-накопителе. Настроить правильно все параметры и создать все условия для бесперебойного существования двух различных систем нелегко, кроме свободного времени и знаний, пользователь должен обладать немалым опытом, которого нет у тех, кто только начинает знакомство со средой Linux.

GRUB — загрузчик системы | Русскоязычная документация по Ubuntu

GRUB (GRand Unified Bootloader1)) — программа-загрузчик операционных систем.
GRUB является эталонной реализацией загрузчика, соответствующего спецификации Multiboot и может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.
После настройки GRUB пользователь при включении компьютера видит список операционных систем, которые установлены на его компьютер и которые можно загрузить, выбрав подходящую и нажав Enter.
GRUB позволяет пользователю при загрузке задавать произвольные параметры и передавать их в ядро Multiboot-совместимой ОС для дальнейшей обработки.
GRUB — самый популярный загрузчик в мире Linux и является загрузчиком по умолчанию в большинстве известных дистрибутивов.

Здесь и далее в иных статьях под названием программы GRUB подразумевается GRUB 2, который используется в операционных системах семейства Ubuntu начиная с версии 9.10, до него использовался GRUB первой версии, сейчас известный как GRUB Legacy. GRUB 2 полностью переписан с нуля и не имеет ничего общего с GRUB Legacy, разработка которого была остановлена в пользу более совершенного и мощного GRUB.

Первые шаги

При первом сравнении GRUB со старым GRUB Legacy самым весомым различием оказывается измененная структура файлов конфигурации.

Настройка GRUB производится теперь принципиально иным способом — основным файлом конфигурации является «/boot/grub/grub.cfg«. Однако же, не торопитесь править его так, как привыкли это делать с «menu.lst» в GRUB Legacy. При внимательном прочтении мы видим в начале файла «grub.cfg» такие строки:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

И об этом нас предупреждают не просто так. Ведь «grub.cfg» генерируется автоматически с использованием нескольких скриптов. Поэтому после следующего обновления GRUB ваш «grub.cfg» будет создан заново, и все ваши правки будут утрачены.

Кроме файла «grub.cfg», отвечающего за загрузочное меню, имеются файл «/etc/default/grub» и папка «/etc/grub.d«. Рассмотрим их подробнее.

/etc/default/grub

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

GRUB_DEFAULT=6
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="2"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
 
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
 
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
 
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
 
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"

Файл представляет из себя набор опций в понятном формате ОПЦИЯ=ЗНАЧЕНИЕ.
Наиболее часто встречающаяся потребность при настройке GRUB — изменение стандартного пункта загрузки и/или времени показа меню. Рассмотрим же, как это делается.

Изменение стандартного пункта загрузки

По умолчанию стандартный пункт (выделенный при показе меню) — верхний в списке. После установки Ubuntu она окажется наверху, а Windows, например, будет последним пунктом.

Значением «GRUB_DEFAULT» является номер пункта меню, который должен быть выбран стандартным. Чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Есть два варианта:

  • Просмотреть содержимое «/boot/grub/grub.cfg» и сосчитать, какой по счету окажется нужная запись;

  • Перезагрузиться и более наглядно посмотреть меню загрузки.

Нумерация пунктов меню начинается с нуля. Значение по умолчанию — 0, поэтому и выбирается первый пункт.

Пятому сверху пункту будет соответствовать значение 4, второму — 1, первому — 0. В вышеприведенном примере установлено значение 6, то есть стандартным задан седьмой пункт меню.

В качестве значения можно указать saved. Это позволит использовать команды grub-reboot и grub-set-default для выбора пункта меню по-умолчанию при последующих перезагрузках. Например:

  • Команда sudo grub-reboot 1 однократно выбирает второй пункт меню по-умолчанию (только для следующей загрузки),

  • Команда sudo grub-set-default 2 выбирает на постоянной основе третий пункт меню по-умолчанию.

Или же можно указать значение идентификатора (id), оно должно быть именно таким, каким мы его видим в «/boot/grub/grub.cfg«. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.

Пример

Если в «grub.cfg» пункт меню выглядит так:

menuentry 'Example GNU/Linux distribution' --class gnu-linux --id example-gnu-linux {
        ...
     }

То значение параметра «GRUB_DEFAULT» должно указываться именно в виде:

GRUB_DEFAULT=example-gnu-linux

Ранее документацией предлагалось указывать название пункта меню загрузки (так, как он отображается в самом меню). Хотя этот способ по-прежнему работает, использовать его не рекомендуется, поскольку эти названия могут меняться, например, при обновлении ядра/версии ОС

Изменение времени отображения меню

По умолчанию меню загрузки отображается 10 секунд (при наличии других установленных ОС, если система одна — GRUB по умолчанию не отображается и сразу начинает загрузку), после чего загружается стандартный пункт, если раньше не нажат Enter или не выбран другой пункт, что останавливает таймер. За эту задержку отвечает параметр «GRUB_TIMEOUT», значение задается в секундах.

Если поставить значение «-1», то меню будет отображаться до тех пор, пока пользователь не выберет какой-либо пункт

Обратите внимание, что цифра указывается в кавычках. В нашем примере это значение — 2, то есть меню отображается две секунды.

«Скрытое» меню

В случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а GRUB будет загружать вас напрямую в систему. Однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. Для этого предусмотрено «скрытое меню» за него отвечает параметр «GRUB_HIDDEN_TIMEOUT».

В случае, когда установлены другие ОС, этот параметр закомментирован (# в начале строки). Данное значение позволит приостановит загрузку на заданное количество секунд, давая пользователю возможность вызвать меню загрузки, нажав Esc.

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

Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. Если его значение «true» таймер отображаться не будет, а со значением «false» будет.

Чтобы GRUB отображал меню со списком установленных операционных систем, без нажатия клавиш вызова меню (например Shift или Esc) необходимо:

sudo gedit /etc/default/grub
GRUB_TIMEOUT="10"
#GRUB_HIDDEN_TIMEOUT=0
sudo update-grub

Убираем подменю

Чтобы раскрыть все меню используем такой параметр:

GRUB_DISABLE_SUBMENU="y"

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

Особые случаи

Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе «Защита от зацикливания на перезагрузке». Полную справку по параметрам файла настроек можно дав команду:

info -f grub -n 'Simple configuration'

Изменение стандартных параметров загрузки ядра

Иногда бывает необходимо загружать ядро системы с какими-либо особыми параметрами (например, для корректной работы специфического оборудования). В этом случае весьма полезен будет параметр «GRUB_CMDLINE_LINUX_DEFAULT» он отвечает за те параметры, с которыми запускаются ядра при загрузке.
Его значение по умолчанию — «quiet splash»: происходит показ графической заставки при запуске системы без отображения какой-либо текстовой информации.

Вы можете добавить необходимые вам параметра запуска ядра, приведя это значение к виду «quiet splash your_param1 your_param2», то есть дописав через пробел нужные параметры.

Пример

Чтобы заменить графическую заставку во время загрузки на информацию о загрузке компонентов системы (это позволит проследить за процессом загрузки и выявить неполадки). Необходимо заменить строчку:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

На следующую:

GRUB_CMDLINE_LINUX_DEFAULT=""

/etc/grub.d

Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg». При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:

  • «10_linux» и «30_os-prober» отвечают за поиск Linux ядер и остальных ОС на других разделах соответственно.

  • Файл «40_custom» позволяет добавлять свои пункты загрузки. Это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.

Файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!

Пример

Добавляем режим загрузки без графической заставки, с текстовым отображением процесса загрузки (verbose mode). Для этого мы немного отредактируем обычный пункт загрузки. допустим, он выглядит так (в «/boot/grub/grub.cfg«):

menuentry "Ubuntu, Linux 2.6.32-020632rc6-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
	set quiet=1
	insmod ext2
	set root=(hd0,5)
	search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8
	linux	/boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-020632rc6-generic
}

Для того, чтобы сделать из этого verbose mode, нам нужно убрать опции quiet и splash и изменим название самого пункта. В итоге получаем:

echo "adding verbose mode" >&2
menuentry "Ubuntu, Linux 2.6.32.rc6 verbose-mode" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
	set quiet=1
	insmod ext2
	set root=(hd0,5)
	search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8
	linux	/boot/vmlinuz-2.6.32-020632rc6-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro
	initrd	/boot/initrd.img-2.6.32-020632rc6-generic
}

Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении GRUB.

Команды консоли GRUB

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

ls

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

ls /boot/grub

Еще одно полезное свойство комадны «ls» — она позволят получить информацию о любом разделе:

ls (hd0,5)

Команда сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).

cat

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

cat /путь/имя_файла

linux

Аналог команды «kernel» в GRUB Legacy. Загружает указанное Linux-ядро:

linux файл_ядра опция1=значение опция2 опция3

Например, так:

linux /boot/vmlinuz-2.6.32-020632-generic root=/dev/sda5 single

initrd

Загружает указанный initrd-образ. Используется так:

initrd /boot/initrd.img-2.6.32-020632-generic

Обратите внимание, что версия initrd должна соответствовать версии загружаемого ядра!

chainloader

Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:

chainloader /путь/имя_файла

Для (загрузчика Windows) можно использовать:

chainloader +1
boot

root

При использовании без параметров сообщает, какой раздел сейчас используется в качестве корневого и тип файловой системы на этом разделе, также команда может быть использована для задания другого root-раздела. Раздел задается в «grub device» — формате »(hd*,*)«. например:

root (hd0,5)

После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root hd(*,*)» не всегда корректно срабатывает. более предпочтительным вариантом является «set root» (см. ниже)

set

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

set переменная=значение

Наиболее необходимое ее применение — для задания root-раздела, например:

set root=(hd0,5)

Также с ее помощью можно, например, «на лету» изменить цвет текста в меню и консоли, что позволяет опробовать цветовую схему перед установкой ее в качестве основной. Для этого изменяем переменные «color_normal» — для обычного пункта (и текста в консоли) и «color_highlight» для выделенного пункта соответственно. Например, попробуем такой вариант:

set color_normal=magenta/green
set color_highlight=light-blue/black

search

Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:

  • -u (или –fs-uuid) — поиск раздела по UUID

  • -l (или –label) — поиск по метке раздела

  • -f (или –file) — поиск по указанному файлу

  • -n (или –no-floppy) — не проверять флоппи-дисковод (чтоб не трещал)

  • -s (или –set) — установить найденный раздел в качестве значения заданной переменной.

lsfonts

Команда отобразит список загруженных в настоящий момент шрифтов.

help

При использовании в чистом виде выведет список доступных команд. В формате:

help r

Выведет справку по всем командам, начинающимся на «r».

help search

Отобразит справку по команде «search»

halt

Выключение компьютера.

reboot

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

background_image

Позволяет «на лету» изменить фоновое изображение. Используется в формате:

background_image /путь/имя_файла

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

Данная команда не заменит ваши настройки оформления, фон будет изменен лишь на текущий сеанс.

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

terminal_output.console

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

Применение изменений

После того, как мы отредактировали и сохранили наши файлы. Нужно закончить дело, обновив файл «grub.cfg». Это довольно просто — нужно всего лишь выполнить команду:

sudo update-grub

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

Нюанс с нумерацией дисков и разделов

В GRUB имеется еще одно важное отличие от старого GRUB Legacy, а именно изменилась нумерация разделов диска. Нумерация дисков идет с нуля, а нумерация разделов — с единицы!

Если в GRUB Legacy первый раздел первого диска (sda1) именовался «hd0,0». То в GRUB, первый раздел первого диска (sda1) теперь будет «hd0,1».

Создание дополнительного меню загрузки

Суть в том, что вместо уже знакомого «grub.cfg» можно загрузить свой файл настройки загрузочного меню со своей конфигурацией. Это позволяет создать дополнительное меню с другими пунктами, настройками, оформлением и т.д. Итак, создадим наш новый файл конфигурации. Создавать с нуля не будем, а скопируем «grub.cfg», дав новое имя:

sudo cp /boot/grub/{grub,custom}.cfg

Поскольку файл скопируется с правами 444, выставим ему права на запись:

sudo chmod 744 /boot/grub/custom.cfg

Теперь открываем его в любимом текстовом редакторе и изменяем:

sudo gedit /boot/grub/custom.cfg

Если вы в достаточной мере знаете структуру «grub.cfg» и понимаете, какие строки что делают, можно значительно сократить свой файл, убрав лишнее и привести его к более удобочитаемому виду.

  • set default задаем пункт меню по умолчанию, указав или его номер или точное название.

  • set gfxmode здесь задается разрешение экрана в привычном формате WxH. Можно также указать глубину цвета, например «1024x768x32». можно указать несколько вариантов, при этом если первый не сможет быть установлен, будет загружен второй, если и он не сработает — третий и т.д. Например:

    set gfxmode=1024x768x32,1024x768x24,1024x768
  • Теперь зададим время отображения меню, для этого ищем строку set timeout, и устанавливаем значение -1 для отключения таймера.

Для задания фонового изображения найдем строку с if background_image (подразумевается, что в вашем «grub.cfg» используется фоновое изображение. Если нет — смотрите пример файла в конце раздела). После команды background_image прописан путь к файлу картинки, поменяйте его на нужный файл.

Обратите внимание, что разрешение картинки должно соответствовать заданному выше разрешению экрана!

Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с set color_highlight и else теперь настройка будет такой:

  • color_normal задает цвет/фон текста сверху и снизу (версия grub и комментарии) и текста в консоли

  • menu_color_normal отвечает за цвет пунктов меню и фон прямоугольника, в котором они находятся

  • menu_color_higlight задает цвет/фон выделенного пункта меню.

Закончив с настройкой, перейдем к пунктам меню, они идут ниже. Измените их, удалите ненужные и добавьте новые, пересортируйте на свой вкус.

Настроив свой файл, сохраните его Ctrl+Shift и закройте.

Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:

menuentry "Название меню"{
configfile /boot/grub/custom.cfg
}

Если ваш путь к файлу отличается — исправьте его.

Если вы используете отдельный boot-раздел, путь будет таким: »/grub/custom.cfg«.
Также учтите, что «40_custom» должен заканчиваться пустой строкой!

Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.

Обновите свой «grub.cfg» выполнив команду:

sudo update-grub

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

В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):

have_grubenv=true
load_env
 
### выбранный пункт по умолчанию
set default=0
### таймаут меню
set timeout=2
### разрешение
set gfxmode=800x600x32,800x600x24,800x600
 
insmod ext2
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else terminal gfxterm; fi
insmod png
 
### фоновое изображение
background_image /usr/share/images/grub/yellow.png
### настройка цветов
set color_normal=black/black
set menu_color_normal=green/light-blue
set menu_color_highlight=red/blue
 
menuentry "9.10 @ 2.6.32" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "9.10 @ 2.6.32 (recovery)" {
search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s
linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro single 
initrd /boot/initrd.img-2.6.32-020632-generic
}
menuentry "windooz"{
search -u AC9C75E59C75AA8A -s
chainloader +1
}

Защита от зацикливания на перезагрузке

Если загрузка ОС не закончилась успешно, или осуществлялась загрузка в режим восстановления, то при следующей загрузке — меню выбора GRUB будет выводится и ждать явного вмешательства оператора (так же, как если бы вы выставили GRUB_TIMEOUT=-1). При этом последующие аппаратные сбросы системы — не помогут проскочить меню.

Зачем это сделано

При загрузке в лог файлы пишется информация и размеры логов растут. В нормально загруженной систем работают сервисы, которые архивируют и подчищают логи. В нормально работающей системе постоянно пополнение лог-файлов не требует внимания со стороны пользователя.
Совсем иная ситуация при загрузке — никакие сервисы по очистке логов не работают (они запускаются позже) и, если, в процессе загрузки система свалится и начнет перезагружаться, то лог будет только расти. И расти он будет до тех пор пока будут повторятся перезагрузки, и будет хватать места на том разделе диска, где расположен каталог /var/log. А когда на разделе с /var/log место кончится то система зависнет уже наглухо и даже в режим восстановления ее будет не загрузить. Загрузится можно будет только с LiveCD/USB (с Live системы и надо будет лечить систему, первым делом руками зачистив логи).
Защита встроенная в GRUB не позволит системе попасть в столь тяжелое положение.

А что если…

Функция (как видно) — безусловно полезная, однако она может быть неудобной для без-клавиатурных станций — на них «зависшее» меню GRUB-а — это не преимущество, а некоторые сложности (без подключения клавиатуры такая станция, попавшая в меню GRUB, никогда не загрузится вообще).

А что если отключить?

Собственно сами случаи, когда циклится загрузка — не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки, да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки…
Гораздо чаще загрузка прерывается из за внешних условий — например пропадает питание, или кто-то сбрасывает грубо систему.

Отключаем…

Как это работает

Реализовано все достаточно просто — в скрипте /boot/grub/grub.cfg переменная окружения GRUB recordfail устанавливается в ходе каждой загрузки в 1.
Скрипт /etc/init.d/grub-common запускается на финальных этапах загрузки (линки с именем S99grub-common есть в /etc/rc2.d, /etc/rc3.d, … /etc/rc5.d). grub-common сбрасывает переменную recordfail в 0.
Если скрипт /etc/init.d/grub-common не отработает, то не сброшенное значение recordfail предотвращает автоматическую загрузку, меню GRUB появляется и потребуется явное интерактивное вмешательство со стороны оператора.

Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1.
Сохранить изменения и обновить GRUB (sudo update-grub).

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

Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

и заменить в ней строчку

set timeout=-1

на

set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}

После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).

Изменения в скрипте /etc/grub.d/00_header могут быть утеряны при обновлении пакета grub-common. Но в новых версиях GRUB переменная GRUB_RECORDFAIL_TIMEOUT уже внедрена (т.е. эти изменения уже сделаны в 00_header).

Ссылки

Установка GRUB

В этом статье описана установка GRUB в загрузочный сектор жесткого диска, раздела или другого носителя данных. Обычно подобная установка происходит одновременно с установкой Linux, поэтому не требуется повторно устанавливать GRUB. Для проведения конфигурации достаточно внести изменения в /boot/grub/ menu.lst так, как это было описано в предыдущем разделе.

Заново устанавливать GRUB нужно только в тех случаях, когда он стерт (например, после переустановки Windows), копия GRUB не работает или вы хотите заменить на GRUB другой загрузчик. Как правило, установка GRUB производится с «живой» системы (например, в Knoppix), так как без рабочего загрузчика невозможно запустить дистрибутив Linux, установленный на жестком диске вашего компьютера.

Базовая информация о загрузочном секторе

Прежде чем я расскажу, как на самом деле производится установка GRUB, необходимо ненадолго заглянуть внутрь BIOS и MS DOS. Интерпретация (одного или нескольких) загрузочных секторов происходит по принципу, появившемуся не один десяток лет назад. В дальнейшем предполагается, что вы знаете о существовании нескольких типов разделов.

Основная запись диска (MBR). Это первый сектор жесткого диска. Он занимает 512 байт и обычно содержит крошечную программу (не больше 446 байт). Далее следует таблица разбиения диска для четырех основных разделов (64 байт) и цифровая подпись (2 байт).

Загрузочный сектор раздела.

Такой сектор есть не только в MBR, но и в каждом разделе, и в действительности он может занимать до 16 секторов жесткого диска (8192 байт). В большинстве файловых систем загрузочный сектор раздела не используется, то есть сами данные начинаются только с последующих секторов. Но есть и исключения. Например, файловая система XFS использует все сектора. Если при этом информация загрузочного сектора раздела XFS будет стерта, то файловая система разрушится!

Запуск компьютера.

При запуске BIOS считывает запись MBR первого жесткого диска, загружает ее в оперативную память и проверяет, содержатся ли в двух последних байтах шестнадцатеричные коды 55 АА. Эти коды служат для идентификации носителей с возможностью загрузки. Если коды совпадают, то выполняется минипрограмма с загрузочного сектора. На компьютере, где установлена система MS DOS или Windows (не Linux), такая программа «узнает», какие из системных разделов помечены как активные (обычно это первый раздел). Затем эта программа загружает еще одну программу — из загрузочного сектора активного раздела — и выполняет ее. И уже эта программа отвечает за запуск Windows или MS DOS.

Если на компьютере установлено несколько жестких дисков, можно настроить в BIOS, в каком порядке будут запрашиваться жесткие диски при загрузке. Таким образом, в современных компьютерах система может загружаться с внешнего диска или USB-флешки. BIOS можно настроить и так, чтобы загрузка производилась с CD или DVD.

Существует несколько стратегий, позволяющих обеспечить мирное сосуществование Windows и Linux.

Самый обычный способ заключается в том, чтобы установить загрузчик Linux в MBR и выбирать, какую систему запускать, — Windows или Linux.

Если на компьютере уже установлена современная версия Windows (новее 9х/ ME), можно настроить загрузчик Windows так, чтобы он запускал GRUB. Достоинство в том, что MBR даже не нужно трогать. Недостаток состоит в том, что процесс установки относительно сложен. Кроме Ubuntu с WUBI, мне не известен ни один дистрибутив Linux, который мог бы выполнять такую операцию. Всегда требуется работать вручную.

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

Создание резервной копии MBR

Если при установке GRUB с MBR что-то пойдет не так, в самом тяжелом случае вы не сможете запустить ни Windows, ни Linux. Тогда придется прибегнуть к «живой» системе Linux, например Knoppix, или использовать установочный CD/DVD для Windows, чтобы исправить загрузочный сектор. «Ремонт» будет наименее проблематичен, если у вас будет резервная копия MBR. Для этого нужно выполнить одну из следующих команд (в зависимости от того, под каким именем устройства запрашивается первый жесткий диск вашего компьютера):

root# dd if=/dev/sda of=/boot/bootsektor.scsi bs=1 count=446


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

root# dd if=/boot/bootsektor.scsi of=/dev/sda bs=1 count=446


Вышеуказанные команды считывают или изменяют только 446 байт MBR. Причина в том, что в MBR содержится и таблица разбиения основных разделов. Если вы изменяете всю MBR(to есть 512 байт), то в межоперационное время могут быть потеряны изменения, внесенные в таблицу разбиения разделов. Тогда компьютер, конечно, загрузится, но если вам немного не повезет, вы потеряете целые разделы с данными! Строение MBR подробно описано здесь: de.wikipedia.org/ wiki/Master_Boot_Record.

Установка в МВКжесткого диска

В дальнейшем предполагается, что вы уже создали конфигурационный файл GRUB /boot/grub/menu.lst. Тогда в /boot/grub должны находиться файлы (stage1, stage2 а также *_stagel_5). Если их нет, скопируйте туда файлы GRUB. Точный путь может отличаться от дистрибутива к дистрибутиву. Например, файлы GRUB в Red Hat или Fedora находятся в каталоге /usr/share/grub/i386-redhat. При необходимости просмотрите список файлов пакета GRUB:

root# cp /usr/lib/<a href="http://www.modx.cc/linux/grub/">grub</a>/* /boot/<a href="http://www.modx.cc/linux/grub/">grub</a>

Затем запустите GRUB и выполните в нем следующую команду setup. Вместо (hdl,12) нужно указать имя устройства GRUB того раздела вашего жесткого диска, в котором находится каталог /boot. Обратите внимание — часто каталог /boot находится в собственном разделе, а не в системном! Переменная (hdO) обозначает место, куда должен быть установлен GRUB, то есть загрузочный сектор первого жесткого диска.

<code>root# <a href="http://www.modx.cc/linux/grub/">grub</a>

grub> root (hd1,12)

grub> setup (hd0)

grub> quit</code>

grub.conf.

В SUSE при установке дистрибутива создается файл /etc/grub.conf. В нем содержатся команды, касающиеся установки GRUB. Установку можно по-вторитьспомощьюкомандыgrub < /etc/grub.conf.

В актуальных версиях Fedora и Red Hat также существует файл /etc/grub.conf, но в данном случае он представляет собой ссылку на /boot/grub/grub.conf. В этих дистрибутивах menu.lst — это тоже ссылка на grub.conf.

Установка в загрузочный сектор жесткого диска

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

Если GRUB запускается опосредованно, через загрузчик Windows.

Если GRUB запускается опосредованно, через загрузчик Linux (например, GRUB), который уже находится в MBR, а вы не хотите его трогать. Этот вариант возможен прежде всего в тех случаях, когда вы намереваетесь параллельно использовать несколько экземпляров Linux.
GRUB устанавливается в загрузочный сектор основного раздела, и вы помечаете этот раздел как «активный» с помощью команды fdisk (клавиша А, команда toggle a bootable flag). В таком случае программа, находящаяся в MBR, учитывает загрузочный сектор активного раздела. Данный метод не работает для логических разделов, а также в тех случаях, когда в MBR уже установлен GRUB или другой загрузчик.

Обычно для такой установки применяется системный раздел Linux. Иначе говоря, если вы установили Linux в раздел /dev/sda7 и хотите установить GRUB в загрузочный сектор этого же раздела, выполните приведенные ниже команды. Единственное отличие по сравнению с установкой в MBR состоит в том, что в setup вы указываете не (hdO), а нужный раздел.

<code>root# grub grub> root (hd1,12)

grub> setup (hd0,6) (Установка в загрузочный сектор /dev/sda7) grub> quit</code>

ВНИМАНИЕ


В некоторых файловых системах загрузочный сектор раздела нельзя использовать с помощью загрузчика или других программ. К таким системам относится XFS. Если установить GRUB в загрузочный сектор раздела XFS, то файловая система будет разрушена! По этой причине в таких системах установка в загрузочный сектор не применяется.

Установка на USB-носитель

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

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

Материнская плата должна правильно распознавать USB-носитель уже при загрузке и работать с ним как со средством загрузки. Обратите внимание и на то, что флешку можно отформатировать двумя способами: как «супердискету» (superfloppy) или как жесткий диск. Какой вариант будет использоваться, зависит от BIOS.

Учитывайте также, что необходимо активизировать поддержку USB в BIOS (обычно для этого предназначается специальный параметр BIOS). В отличие от Linux, GRUB может обращаться к USB-носителям только через BIOS!Если BIOS опознает USB-носитель как загрузочный диск, то при этом (как минимум в некоторых версиях BIOS) изменится порядок, в котором GRUB будет «видеть» носители с данными. Теперь первым диском (hdO) будет считаться USB-носитель, встроенные жесткие диски будут запрашиваться через (hdl), (hd2) и т. д. При необходимости соответствующим образом измените /boot/ grub/devices.map перед установкой GRUB.

Оптимальная стратегия — сначала попробовать установить GRUB на флешке. Когда Linux запущена, GRUB опознает флешку под названием (hdn+1), где n — это последний внутренний жесткий диск. Если ваша система Linux, как в предыдущих примерах, находится в разделе /dev/sdb13 и в компьютере имеется два внутренних диска, флешка будет называться (hd2). Для того чтобы установить GRUB в MBR флешки, используйте следующие команды:

<code>root# grub grub> root (hd1,12)

grub> setup (hd2) (Установка в MBR USB-носитоля) grub> quit
</code>


В идеальном случае после перезапуска компьютер обнаружит GRUB в MBR на флешке и, как и предполагалось, загрузит операционные системы, указанные в menu.l st. Если при запуске операционных систем возникнут сложности, перейдите из меню GRUB в интерактивный режим, нажав клавишу С, а затем, воспользовавшись командой cat и клавишей табуляции, узнайте, под какими названиями GRUB «видит» жесткие диски. Нажатие Esc выводит вас обратно в меню, где с помощью клавиши Е можно изменить команды загрузки и испробовать их еще раз.

Установка Linux на жестких дисках, подключаемых через USB. До сих пор предполагалось, что USB-флешка будет использоваться только для запуска загрузки. Но ситуация осложняется, если и сама Linux находится на большой флешке или на внешнем жестком диске, подключаемом через USB. В большинстве дистрибутивов можно без труда установить USB-носитель, но при запуске могут возникнуть проблемы. Вам придется преодолеть три основных препятствия. GRUB — как было указано выше, уже при установке GRUB на USB-носитель могут возникать проблемы. Вы можете попробовать, получается ли такая установка. При необходимости поэкспериментируйте с настройками BIOS и обозначениями приводов и попробуйте настроить эти свойства в файле menu.lst вручную.

USB-модули для ядра — ядро уже в момент запуска должно быть «в состоянии» обратиться к USB-носителю. Чтобы это получилось, в файле Initrd должны храниться все необходимые USB-модули. Базовые сведения о том, как построены файлы Initrd и как они создаются, сообщаются в следующем разделе.

Названия устройств — в зависимости от того, как загружается компьютер — с подключенными внешними жесткими дисками (USB) или без них, — названия устройств жестких дисков могут изменяться (/dev/sda на /dev/sdb). Поэтому целесообразно использовать в файле /etc/fstab и при задании корневых параметров в строке kernel в menu.lst не названия устройств, аномера UUID. Если вы работаете с Ubuntu, то в menu.lst с помощью uuid также можно выбрать тот раздел, в котором будут находиться ядро и файл Initrd.

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

Установка Grub на флешку | Losst

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

Мы уже рассматривали как установить Grub на флешку в статье про создание мультизагрузочной флешки из нескольких систем, а теперь поговорим об этом более детально.

Установка Grub на флешку

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

grub-install /dev/sda

И создать конфигурационный файл:

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

Но если вам нужен загрузчик без операционной системы, то дело немного усложняется. Вы не можете использовать просто grub-install, а конфигурация вообще не будет создана, так как утилита не понимает где находятся файлы загрузчика и файлы конфигурации для него. Но есть решение.

Важно заметить, что при любом способе установки загрузчика, желательно, чтобы на флешке использовалась таблица разделов MBR. Конечно, я не встречал флешек с GPT, но вы сами можете ее создать при желании, а тогда с установкой загрузчика возникнут проблемы. Второе, что важно заметить, фшелку желательно отформатировать в файловую систему fat32. Это важно, чтобы там можно было разместить файлы Grub. Потому что если флешка будет форматирована в NTFS, то ничего не выйдет, а в ext4 — то вы не сможете подключить ее в Windows и использовать для обмена файлами.

Далее подключите флешку в какую-нибудь папку, например, mnt:

sudo mount /dev/sdc1 /mnt/

Имя устройства /dev/sdb1 — это адрес первого раздела на вашей флешке. Обычно там есть только один раздел, так и должно быть. Если больше, то берите первый. А имя флешки может отличаться — sdb, sdc, sdd или другие. Смотрите как флешка называется у вас с помощью fdisk:

sudo fdisk -l

Когда устройство подключено мы можем перейти к установке загрузчика:

sudo grub-install --root-directory=/mnt/ /dev/sdc

Здесь мы указываем параметр —root-directory, это та папка, которая будет считаться корнем системы, и откуда будут браться файлы загрузчика при старте. Установщик автоматически скопирует их туда. Устройство /dev/sdc — ваша флешка. После того, как установка будет завершена, можно перейти к настройке пунктов меню. Забегая наперед, если эта команда не работает, используйте опцию —boot-directory вместе с —root-directory, разные версии Grub работают по разному:

sudo grub-install --boot-directory=/mnt/boot --root-directory=/mnt/ /dev/sdc 

Теперь нужно создать конфигурационный файл. Если вы используете grub-mkconfig, то получите такое же меню, как в вашей основной системе. Меня это вполне устраивает, только укажите правильное расположение файла, в папке /mnt:

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

Теперь нам осталось протестировать как все работает. Для этого лучше использовать qemu:

qemu-system-x86 -hda /dev/sdc

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

Выводы

В этой статье мы рассмотрели как выполняется установка загрузчика grub на флешку. Несмотря на то, что это может вызвать некоторые сложности, процесс довольно понятен и не требует особых навыков. Зато, с такой флешкой вы можете быть уверены, что сможете загрузить компьютер, даже когда случайно повредили загрузчик. Если у вас остались вопросы, спрашивайте в комментариях!

Оцените статью:

Загрузка…

Системный загрузчик GRUB: восстановление настройка удаление

1. Введение

GRUB или Grand Unified Bootloader (Унифицированный системный загрузчик) является наиболее распространенным системным загрузчиком в среде Linux. Он занимает свое место по праву, ведь благодаря ему становится возможной загрузка практически всех актуальных операционных систем. Это все существующие дистрибутивы Linux, версии ОС Windows, версии DOS, версии BSD, версии Mac OS X, а также некоторые другие менее популярные операционные системы.

По сути, это небольшое технологическое чудо. Например, в течение некоторого времени на моем ноутбуке было установлено около 10 разных операционных систем, которые были доступны из меню системного загрузчика GRUB и отлично работали, не конфликтуя друг с другом.

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

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

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

2.1. Когда приходится восстанавливать системный загрузчик

Если вы устанавливаете ОС Windows на компьютер с установленной системой Linux, вы наверняка лишитесь системного загрузчика GRUB, так как он будет заменен на системный загрузчик Windows. По этой причине следует устанавливать ОС Windows перед установкой Linux. Кроме того, установка системного загрузчика GRUB может завершиться неудачей в ходе установки любого дистрибутива Linux. К счастью, данная проблема может быть решена без переустановки системы. Однако, вам придется неукоснительно следовать приведенным ниже инструкциям.

GRUB состоит из двух программных компонентов. Первым программным компонентом является сам системный загрузчик, который размещается в основной загрузчоной записи (Master Boot Record или MBR). Эта запись расположена в рамках первого сектора жесткого диска. Вторым программным компонентом является реализация меню загрузки и используемые ею дополнительные файлы. Они располагаются за пределами основной загрузочной записи, а именно, в директории boot корневого раздела Linux.

В вашем компьютере установлено несколько жестких дисков? В таком случае вам придется помнить и о том, что системный загрузчик должен располагаться в основной загрузочной записи жесткого диска, выбранного для загрузки в меню Boot Sequence BIOS. При восстановлении GRUB вам придется указывать путь к директории с файлами системного загрузчика.

2.2. Процесс восстановления системного загрузчика в системах с BIOS

Данное описание процесса восстановления системного загрузчика подойдет для систем с классической прошивкой BIOS (это системы с предустановленными ОС Windows XP или Windows Vista). Оно также подойдет для систем с прошивками UEFI, работающих в режиме совместимости с BIOS (это системы с предустановленной ОС Windows 7). При этом оно не подойдет для систем с прошивками UEFI, не поддерживающих режимы совместимости с BIOS (это системы с предустановленными ОС Windows 8.x и Windows 10). Если в вашей системе используется новейшая прошивка UEFI, не совместимая с BIOS, вам придется обратиться к следующему разделу.

Предположим, что нам нужно восстановить системный загрузчик, затертый системным загрузчиком ОС Windows.

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

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

B. Теперь следует выяснить имя файла устройства раздела с корневой директорией установленной системы. Для этого можно воспользоваться приложением Диски, доступным в Linux Mint, Ubuntu и Fedora Workstation.

Примечание: для раздела с корневой директорией системы с большой вероятностью будет использоваться файловая система EXT4. Для раздела EFI будет использоваться файловая система FAT32, причем этот раздел будет иметь флаг загрузочного раздела.

В моем случае файл устройства раздела с корневой директорией имеет имя sda5. Я буду использовать имя этого файла устройства в данном руководстве, вам же придется изменить его на имя вашего файла устройства.

C. Теперь нужно открыть окно терминала.

D. Далее нужно скопировать и вставить в окно терминала следующую команду (напоминаю, что вы должны заменить sda5 на имя файла устройства раздела с корневой директорией установленной системы):

sudo mount /dev/sda5 /mnt

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

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

sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
sudo grub2-mkconfig -o /boot/grub/grub.cfg
sudo grub2-install /dev/sda

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

Примечание: в ходе исполнения двух последних команд может быть выведено предупреждение:

grub probe: error: failed to get canonical path of /cow
Installation finished. No error reported.

Оно никоим образом не повлияет на установку системного загрузчика.

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

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt

После окончания ввода каждой из команд также следует нажимать клавишу Enter для ее исполнения.

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

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

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

После перезагрузки пункт для загрузки Windows появится в меню загрузчика GRUB. При необходимости вы можете открыть меню системного загрузчика, зажав и удерживая клавишу Shift сразу же после исчезновения экрана загрузки BIOS.

2.3. Процесс восстановления системного загрузчика в системах с UEFI

Данное описание процесса восстановления системного загрузчика подойдет для систем с прошивкой UEFI (это системы с предустановленными ОС Windows 8.x или Windows 10). Например, после успешной установки одного из дистрибутивов Linux на такую систему в меню UEFI может не оказаться пункта для его загрузки. Кроме того, вы можете случайно привести раздел UEFI к оригинальному состоянию или обновить его содержимое, в результате чего загрузка Linux также станет невозможной. К счастью, данная проблема может быть решена без переустановки системы. Однако, вам придется неукоснительно следовать приведенным ниже инструкциям.

Примечание: данные инструкции подходят лишь для современных систем с прошивками UEFI, не работающих в режиме совместимости с BIOS. Обычно такие системы продаются с предустановленными ОС Windows 8.x или Windows 10. При этом они не подойдут для систем с классическими прошивками BIOS (это системы с предустановленными ОС Windows XP, Windows Vista и Windows 7). Если в вашей системе используется классическая прошивка BIOS, вам придется обратиться к предыдущему разделу.

На системы с прошивками UEFI традиционно устанавливаются 64-битные операционные системы, поэтому мы будем рассматривать случай «исчезновения» пункта для загрузки 64-битной Linux-системы из меню UEFI. Для решения аналогичной проблемы вам придется действовать следующим образом:

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

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

B. Далее следует установить соединение с сетью Интернет. Оно необходимо для переустановки пакетов программного обеспечения.

C. Теперь нужно узнать имена файлов устройств двух разделов жесткого диска, а именно, раздела с корневой директорией системы (с системными файлами дистрибутива) и раздела EFI (содержащего загрузчики Linux и Windows). Для этого можно воспользоваться приложением Диски, доступным в Linux Mint, Ubuntu и Fedora Workstation.

Примечание: для раздела с корневой директорией системы с большой вероятностью будет использоваться файловая система EXT4. Для раздела EFI будет использоваться файловая система FAT32, причем этот раздел будет иметь флаг загрузочного раздела.

В моем случае файл устройства раздела с корневой директорией имеет имя sda5, а раздела EFI — имя sda2. Я буду использовать имена этих файлов устройств в данном руководстве, вам же придется изменить их на имена ваших файлов устройств.

D. Теперь нужно открыть окно терминала.

E. Далее нужно скопировать и вставить в окно терминала следующую команду (напоминаю, что вы должны заменить sda5 на имя файла устройства раздела с корневой директорией установленной системы):

sudo mount /dev/sda5 /mnt

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

Пришло время сделать то же самое с разделом EFI. Вам придется скопировать и вставить в окно терминала следующую команду (напоминаю, что вы должны заменить sda2 на имя файла устройства раздела EFI установленной системы):

sudo mount /dev/sda2 /mnt/boot/efi

После окончания ввода команды также следует нажать клавишу Enter для ее исполнения. В результате раздел EFI установленной системы будет смонтирован в директорию /mnt/boot/efi системы, загруженной с установочного диска.

F. Теперь нужно выполнить следующую последовательность команд с помощью терминала:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo modprobe efivars
sudo chroot /mnt

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

G. Пришло время переустановить пакеты программного обеспечения, в результате чего пункт для загрузки дистрибутива Linux должен снова появиться в меню UEFI. Вам придется выполнить команду, актуальную для вашего дистрибутива.

Linux Mint/Ubuntu:

sudo apt-get install --reinstall grub-efi-amd64

Fedora Workstation:

sudo dnf reinstall grub2-efi grub2-efi-modules shim

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

H. После окончания процесса переустановки пакетов программного обеспечения следует корректно отмонтировать все разделы установленной системы. Для этого следует выполнить с помощью терминала следующую последовательность команд:

exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt/boot/efi
sudo umount /mnt

После окончания ввода каждой из команд также следует нажимать клавишу Enter для ее исполнения.

I. Далее следует воспользоваться функцией перезагрузки системы и не забыть извлечь загрузочный накопитель. В последующем процессе загрузки вы должны обнаружить пункт для загрузки установленной Linux-системы в меню UEFI. Если из этого меню исчез пункт для загрузки Windows, следует загрузить Linux, открыть окно терминала и выполнить с помощью него следующую команду:

Linux Mint/Ubuntu:

sudo grub2-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

Fedora Workstation:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

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

Примечание: файл конфигурации GRUB в Linux Mint находится в директории ubuntu, так как дистрибутив Linux Mint основан на Ubuntu.

После перезагрузки пункт для загрузки Windows появится в меню UEFI.

3. Настройка GRUB

3.1. О сторонних приложениях

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

3.2. Перемещение Windows на первое место в меню системного загрузчика

В начале знакомства с Linux многим пользователям хочется, чтобы ОС Windows была выбрана и загружалась по умолчанию (рано или поздно это проходит!). Это не так сложно реализовать.

3.3. Использование изображения в качестве фона меню системного загрузчика

Меню системного загрузчика GRUB, с помощью которого вы можете выбрать операционную систему для загрузки, по умолчанию является функциональным, но не очень красивым. К счастью, это легко исправить, к примеру, использовав красивое изображение в качестве его фона.

3.4. Изменение времени показа меню системного загрузчика

Для произвольного изменения времени показа меню системного загрузчика GRUB достаточно отредактировать файл конфигурации /etc/default/grub, изменив значение переменной GRUB_TIMEOUT, после чего обновить конфигурацию самого загрузчика. Обратите внимание на то, что установка значения 0 не даст никакого эффекта: будет использоваться стандартное значение, равное 10 секундам. Если же вы все же хотите установить минимальное время показа меню, вы можете использовать значение 0.1. Для обновления конфигурации системного загрузчика в системе с классической прошивкой BIOS следует воспользоваться следующей командой:

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

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

Linux Mint/Ubuntu:

sudo grub2-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

Fedora Workstation:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

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

3.5. Использование дополнительных параметров конфигурации ядра ОС

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

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

A. В первую очередь следует открыть окно терминала и ввести в него следующую команду:

Linux Mint:

gksudo xed /etc/default/grub

Ubuntu/Fedora Workstation:

gksudo gedit /etc/default/grub

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

B. В открывшемся файле конфигурации GRUB следует найти следующую строку:

GRUB_CMDLINE_LINUX=""

В кавычках должны перечисляться параметры, которые будут передаваться ядру ОС. Для разделения параметров должен использоваться символ пробела. Например, в случае необходимости передачи ядру ОС параметра nomodeset следует привести эту строку к следующему виду:

GRUB_CMDLINE_LINUX="nomodeset"

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

C. Для обновления конфигурации системного загрузчика придется выполнить еще одну команду. В случае использования системы с классической прошивкой BIOS следует воспользоваться командой:

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

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

Linux Mint/Ubuntu:

sudo grub2-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

Fedora Workstation:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

После окончания ввода команды следует нажать клавишу Enter для ее исполнения.

D. Наконец, следует перезагрузить компьютер.

3.5.1. Параметр nomodeset

В современных версиях ядра Linux реализован механизм установки параметров графических карт практически всех производителей. То есть, запись данных в регистры графических карт осуществляется на уровне ядра ОС, а не на уровне модуля графического сервера X.org после его запуска. Данный механизм позволяет использовать заставки с высоким разрешением при загрузке системы и избавиться от искажений при переходе от экрана загрузки к экрану входа в систему.

К сожалению при использовании некоторых видеокарт данный механизм работает ненадежно и может приводить к черному экрану после загрузки системы. Параметр nomodeset сообщает ядру ОС о том, что не нужно использовать механизм установки параметров графических карт до момента запуска графического сервера X.org. Однако, стоит учесть, что некоторые графические карты могут работать некорректно при передаче данного параметра, поэтому не стоит злоупотреблять им.

3.5.2. Параметры noacpi, noapic и nolapic

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

Стандарт ACPI (Advanced Configuration and Power Interface) описывает механизмы управления питанием. Старые системы могут не поддерживать его в полной мере, поэтому в некоторых случаях стоит сообщать ядру ОС об этом. Вы можете сделать это, передав параметр acpi=off или noacpi.

Стандарт APIC (Advanced Programmable Interrupt Controller) реализуется в более новых системах. Локальной версией данного стандарта является стандарт LAPIC. Данный стандарт описывает механизм генерации и обработки прерываний, то есть, сигналов, используемых аппаратным обеспечением компьютера. И снова, некоторые реализации APIC могут быть неполными в старых системах, поэтому стоит деактивировать их поддержку. Вы можете сделать это, передав параметры noapic и nolapic.

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

3.5.3. Параметры quet splash

Параметр splash позволяет отображать заставку при загрузке системы. Вместе с ним обычно используется параметр quet, скрывающий выводимые в процессе загрузки системы сообщения. Вы можете без каких-либо последствий убрать эти параметры в том случае, если хотите осуществить диагностику процесса загрузки системы.

4. Удаление GRUB из основной загрузочной записи (возврат к Windows)

Удаление GRUB является печальным событием, ведь это такой отличный инструмент! Однако, если вы хотите знать все о системном загрузчике GRUB, вы также должны знать о том, как удалить его. Если говорить максимально кратко, то можно сказать, что под удалением GRUB чаще всего подразумевается замена системного загрузчика GRUB из состава дистрибутива Linux на системный загрузчик NTLoader из состава ОС Windows в основной загрузочной записи. Это может быть сделано различными способами.

4.1. Удаление GRUB с помощью Ultimate Boot CD

Вы можете заменить системный загрузчик GRUB на системный загрузчик NTLoader с помощью загрузочного диска Ultimate Boot CD (UBCD). Образ этого загрузочного диска доступен на данном веб-сайте.

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

Ultimate Boot CD содержит несколько инструментов, предназначенных для восстановления системного загрузчика NTLoader в основной загрузочной записи диска. Рассмотрим методику использования одного из них.

Сначала вам нужно будет с помощью меню выбрать жесткий диск, после чего выбрать действие Boot Management и, наконец, выбрать инструмент Super Grub Disk. После этого вам нужно будет снова нажать клавишу Enter для запуска Super Grub Disk. Далее нужно просто выбрать пункт:

Win => MBR &  !WIN!   :(((((((((((((((((((((((((((((((((

и нажать клавишу Enter.

Примечание: использование огромного количества круглых скобок является не моей идеей, а идеей автора Super Grub Disk…

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

4.2. Удаление GRUB с помощью FreeDOS

Для удаления системного загрузчика может также использоваться флеш-накопитель с интерфейсом USB. Вам понадобятся три приложения: Unetbootin, FreeDOS и Testdisk для DOS.

A. Для начала нужно загрузить приложение Unetbootin и создать с помощью него загрузочный флеш-накопитель. При запросе названия операционной системы следует выбрать FreeDOS.

B. Теперь нужно загрузить версию утилиты Testdisk для DOS/Win9x (версия для Windows не подойдет!).

C. Далее нужно извлечь файлы testdisk.exe и CWSDPMI.exe из архива утилиты Testdisk на загрузочный флеш-накопитель (прямо в корневую директорию, не создавая каких-либо поддиректорий).

D. Теперь нужно загрузить компьютер с созданного флеш-накопителя. При появлении начального окна достаточно нажать на клавишу Enter.

E. На данном этапе должна начаться загрузка операционной системы FreeDOS. Вы должны выбрать вариант загрузки:

FreeDOS Safe Mode (don't load any drivers)

Для продолжения процесса загрузки следует нажать клавишу Enter.

F. После окончания процесса загрузки операционной системы нужно перейти в корневую директорию флеш-накопителя с помощью следующей команды:

C:

После окончания ввода команды следует нажать клавишу Enter для ее исполнения.

G. Теперь нужно запустить утилиту Testdisk с помощью следующей команды:

testdisk

После окончания ввода команды следует также нажать клавишу Enter для ее исполнения.

H. Утилита должна начать работу. Для начала следует выбрать режим без журналирования [No Log] и нажать клавишу Enter.

I. Далее следует выбрать нужный жесткий диск: обычно это второй диск в списке (первым диском является сам флеш-накопитель). После выбора диска нужно нажать на клавишу Enter.

J. Далее нужно выбрать вариант [Intel] и нажать клавишу Enter.

K. Наконец, нужно выбрать вариант [MBR Code] и нажать клавишу Enter. При запросе подтверждения следует ввести y (yes) и снова нажать клавишу Enter.

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

5. Хотите ознакомиться с дополнительными советами?

Хотите узнать о других настройках и приемах работы с Linux-системами? На данном веб-сайте размещено большое количество подобных материалов.

Ручная установка Windows 7/8/8.1/10 в систему с загрузчиком GRUB2 / Хабр

Наверняка почти у каждого пользователя ОС Linux и ОС Windows, а я имею в виду именно тех, у кого, в силу ряда причин, установлены обе системы, время от времени возникал вопрос: «А нельзя ли, черт возьми, придумать способ, с помощью которого можно было бы устанавливать эти системы в произвольном порядке? Без порчи настроек загрузчика?» Ведь если ставим сначала Windows а потом Linux всё хорошо — линуксовый загрузчик (например GRUB) обычно подхватывает bootmgr. Если ставить в обратном порядке то увы. Даже с использованием GPT + EFI. В случае с EFI нет опасности перезаписи MBR, зато таки есть один нюанс, который лично мне не нравится — установщик Windows в режиме EFI хоть и не перезаписывает сектора диска своим кодом, но зато переопределяет NVRAM, подсовывая туда путь к своему загрузчику. Так что функционал GBUB всё равно приходится восстанавливать. В настройках штатного установщика нет опций для кастомизации процесса установки загрузчика. А что если… не использовать стандартный установщик?! Ну, или почти не использовать…

И такой способ есть. И основан он на технологии установки Windows, которую мы имеем в её дистрибутивах начиная с «семерки». Способ работает для случая Windows версий 7/8/8.1/10, как в случае с MBR + BIOS системы, так в случае с EFI + GPT. Установить систему можно как в раздел HDD, так и на VHD. При этом функционал установщика нужен нам в общем-то для запуска программы настройки BCD-хранилища конфигурации загрузчика. Вместо установочного диска можно использовать загрузочный носитель на основе WinPE. Если бы утилитам bcdedit.exe и BootICE была *nix альтернатива, весь процесс развертывания системы можно было бы вообще выполнить в среде Linux.

Предположим у вас имеется компьютер, с установленным на HDD загрузчиком GRUB2 и свободным разделом, отформатированном в NTFS. Устанавливать будем Windows 7 Ultimate SP1. Для этого потребуются:

  1. Установочный диск с виндой
  2. Чистая флешка объемом >= 4 Gb
  3. Архиватор 7-zip соответствующей разрядности
  4. Утилита BootICE, желательна, но совершенно не обязательна, можно обойтись и bcdedit.exe, входящим в дистрибутив винды

Дело в том, что семерка не хочет устанавливаться в EFI-режиме с DVD. Вот не хочет и всё. К тому же, на установочном носителе нам понадобятся дополнительные утилиты, которые туда надо поместить, а в случае с флешкой это несколько проще, чем в случае с DVD.

Монтируем установочный образ с виндой, допустим он лежит у нас в /home/$USER/install с именем win7-setup.iso

$ mkdir ~/iso

$ sudo mount -t udf ~/install/win7-setup.iso ~/iso

Вставляем флешку в USB-порт. Допустим, она получила имя устройства /dev/sdb. Выполним её разметку в формате MBR

$ sudo fdisk /dev/sdb

Создем на флешке один единственный раздел. После чего форматируем её в FAT
$ sudo mkfs.vfat /dev/sdb1

Копируем содержимое дистрибутива винды на флешку
$ mkdir /tmp/flash

$ sudo mount /dev/sdb1 /tmp/flash -o uid=1000,gid=100,fmask=113,dmask=002

$ cp -rv ~/iso/* /tmp/flash/

Скопируем конфиги EFI-загрузчика на уровень выше

$ cp -rv ~/tmp/flash/efi/microsoft/* ~/tmp/flash/efi/

Теперь нам нужен EFI-загрузчик винды. Его придется выцарапать из дистрибутива. Это легко сделать с помощью архиватора 7-zip, который имеется в репозитории extra/p7zip. Все содержимое дистрибутива винды сжато в образ wim-формата находится на установочном DVD в файле source/install.wim. Обычно этот образ имеет следующую структуру

В каталогах с именами в виде цифр 1-4 находятся разные редакции винды. Чтобы выбрать нужную надо посмотреть внутрь файла с именем [1].xml. Распакуем его в /tmp

$ cd /tmp

$ 7z e ~/iso/sources/install.wim \[1\].xml

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

где нода EDITIONID указывает на редакцию. Параметр INDEX — как раз номер каталога, в котором валяется нужная редакция. Итак, мне нужна Ultimate, а это индекс 4. Соответсвенно выковыриваем загрузчик оттуда

$ 7z e ~/iso/sources/install.wim 4/Windows/Boot/EFI/bootmgfw.efi

Оки, теперь перенесем полученный файл на флешку

$ mv bootmgfwm.efi /tmp/flash/efi/boot/bootx64.efi

Порядок, теперь у нас в наличии загрузочная флешка для установки винды. Теперь добавим на неё необходимые для установки утилиты — виндозную версию архиватора 7-zip и утилиту BootICE. Архиватор качаем с официального сайта и распаковываем на флешку в каталог utils

$ mkdir -p /tmp/flash/utils/7-Zip/

$ cd /tmp/flash/utils/7-Zip/

$ 7z x ~/downloads/7z1602-x64.exe

Туда же помещаем и bootice

$ cp ~/install/BOOTICEx64.exe /tmp/flash/utils

Уф, всё, отмонтируем флешку
$ cd ~

$ sudo umount /tmp/flash/

Перезагружаемся. Если у вас система с EFI и съемные диски стоят в приоритете загрузки, то компьютер загрузится в установку винды автоматом. Если же появилось таки меню GRUB, ничего страшного, жмем «С» и в консоли набиваем команду exit. Вас вывалит в меню EFI, где выбираем загрузку с флешки. Если же ваша система с BIOS, то тут чуть сложнее, ибо мы не стали заморачиваться с настройкой MBR на флешке. Тогда в консоли GRUB даем команду ls — появится список всех дисков и разделов. Находим нашу флешку, она отобразится в виде (hdX, msdosY), где X, Y — номер диска и раздела соответственно. Теперь вбиваем в консоли команды

grub> set root=hdX,Y

grub> ntldr /bootmgr

grub> boot

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

Начиная с семерки установка Windows заключается в следующих этапах

  1. Разметка диска в соответствии с архитектурой системы инициализации оборудования. Если BIOS — установщик размечает диск в MBR. При наличии активной EFI — разметка будет GPT.
  2. Распаковка образа install.wim в выбранный для установки раздел
  3. Установка загрузчика и перезагрузка
  4. Инициализация оборудования. Ребут
  5. Локализация, ввод ключа, окончание настройки системы

Это стандартный путь. У нас же диск уже размечен. И нам не нужна автоматическая установка загрузчика — мы поставим его вручную. Разметка диска должна удовлетворять следующим требованиям

  • Если система с EFI на диске должен присутствовать FAT-раздел с типом 0xEF. Если у нас уже установлен линукс с EFI-загрузчиком, то таковой раздел уже имеется
  • Если система с BIOS, то раздел, в котором располагается загрузчик, а это наш NTFS-раздел должен быть активным. Это очень важно! Почему, будет объяснено ниже.

Таким образом, перед распаковкой системы мы должны убедится в том, что перечисленные требования выполнены. После того, как мы распакуем все файл системы и установим загрузчик, система перезагрузиться. После перезагрузки запустится утилита Sysprep, среди прочего настраивающая оборудования и проверяющая конфигурацию системы. Так вот, если в режиме EFI Sysprep не найдет загрузчик и его конфигурацию в EFI-разделе по пути EFI/microsof/boot, а в системе с BIOS каталог \Boot и bootmgr будут лежать в неактивном разделе, то Sysprep завершится с ошибкой sysprep generalize error, а в лог, расположенный по адресу \Windows\Panther\sysperr.log выплюнет что-то похожее на

2015-03-11 16:55:42, Error [0x0e00b3] TOOL Sysprep_Specialize_Bcd: There was an error opening the system store. Status=[0xC0000098]

2015-03-11 16:55:42, Error [0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'c:\Windows\System32\spbcd.dll,Sysprep_Specialize_Bcd', returned error code 1006

2015-03-11 16:55:42, Error [0x060435] IBS Callback_Specialize: An error occurred while either deciding if we need to specialize or while specializing; dwRet = 0x3ee

и никакие танцы с бубном нам уже не помогут. Винда требует, чтобы загручик лежал в загрузочном разделе и точка. В случае с BIOS просто делаем активным раздел NTFS в котором лежит винда и туда же кладем и загрузчик. Грузится будем всё равно с помощью GRUB, а ему все равно, какой раздел будет активным. В случае с EFI загрузчик придется положить рядом с GRUB в EFI-разделе.

Итак, определимся, куда мы хотим ставить винду. Можно поставить в NTFS-раздел, а можно и в VHD-диск. Это уж как вам хочется. Я буду показывать процесс на примере с виртуальной машиной EFI, имеющей следующую разметку

The protective MBR's 0xEE partition is oversized! Auto-repairing.

Partition table scan:

MBR: protective

BSD: not present

APM: not present

GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p

Disk /dev/loop1: 104857600 sectors, 50.0 GiB

Logical sector size: 512 bytes

Disk identifier (GUID): 0D217C93-6699-435A-9BBB-61DFAA6F30B7

Partition table holds up to 128 entries

First usable sector is 34, last usable sector is 104857566

Partitions will be aligned on 2048-sector boundaries

Total free space is 4029 sectors (2.0 MiB)

Number Start (sector) End (sector) Size Code Name

1 2048 206847 100.0 MiB EF00 EFI system partition

2 206848 104855551 49.9 GiB 0700 Basic data partition

На этом диске нет линукса, установлен только GRUB в раздел с EFI. Если мы ставим систему непосредственно в NTFS-раздел, то загружаемся с флешки, дожидаемся запуска программы установки и жмем Shift + F10, чтобы вызвать консоль. Запускаем утилиту diskpart и смотрим список подключенных томов

X:\sources> diskpart

DISKPART> list vol

Видим, что флешка (объемом 8 Гб) подключена как диск C:, а раздел для установки вовсе не смонтирован. Непорядок. Делаем так

DISKPART> sel vol 3

DISKPART> remove

DISKPART> assign letter=E

DISKPART> sel vol 1

DISKPART> assign letter=C

DISKPART> list vol

DISKPART> sel vol 2

DISKPART> assign letter=F

Вот теперь порядок, диск на который будем ставить винду стал диском C:, флешка — диском E:, а EFI-раздел — диском F:

Если же мы хотим поставить систему на VHD, то делаем так

DISKPART> sel vol 3

DISKPART> remove

DISKPART> assign letter=E

DISKPART> sel vol 1

DISKPART> assign letter=G

DISKPART> exit

Для порядка создаем каталог с образами
X:\sources> md G:\vhd

X:\sources> diskpart

Создаем виртуальный диск, создаем на нем разметку GPT и раздел NTFS и монтируем его к C:

DISKPART> create vdisk file="G:\vhd\win7.vhd" maximum=25600 type=fixed

DISKPART> attach vdisk

DISKPART> clean

DISKPART> convert gpt

DISKPART> create part primary

DISKPART> format fs=ntfs quick

DISKPART> assign letter=C

EFI-раздел монтируем к F:

DISKPART> sel vol 2

DISKPART> assign letter=F

Получаем такую картину

Очень важно! Убеждаемся в том, что EFI-раздел отформатирован именно в FAT, а не в FAT32. Иначе Sysprep не простит нам этой ошибки. Если на компе уже есть линукс, то настройки будут верны.

Теперь распаковываем дистрибутив на диск C:

X:\sources> E:

E:\> utils\7-Zip\7zFM.exe

Откроется GUI архиватора 7-zip. В нем открываем каталог E:\sources, находим там файл install.wim

Правой кнопкой на этом файле вызываем контектстное меню и переходим по 7-zip -> Открыть архив. Появится содержимое образа.

Лезем в папку 4 — там лежит Ultimate

Выделяем всё Ctrl + A и жмем кнопку «Извлечь». Появится окно, где нам предложат указать путь распаковки

Указываем корень диска C: и жмем ОК.

Ну и теперь, как говорится: «Откиньтесь на спинку кресла и…»

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

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

E:\> F:

F:\> mkdir EFI\microsoft\boot

F:\> xcopy C:\Windows\Boot\EFI\* F:\EFI\microsoft\boot /s /e

F:\> mkdir EFI\microsoft\boot\Fonts

F:\> xcopy C:\Windows\Boot\Fonts\* F:\EFI\microsoft\boot\Fonts\ /s /e

F:\> copy C:\Windows\System32\config\BCD-Template F:\EFI\microsoft\boot\BCD

Отлично, загрузчик скопирован. Теперь настроим его

F:\> E:\utils\BOOTICEx64.exe

Открываем файл F:\EFI\Microsoft\Boot\BCD. В случае установки на раздел, его параметры задаются так

Если же мы устанавливали систему на VHD, то настройки будут такими

Важно! Имя вторичного загрузчика для EFI-системы winload.efi, для BIOS-системы — winload.exe.

В случае, если мы устанавливаем BIOS-систему установка загрузчика будет выглядеть так

F:\> mkdir C:\Boot

F:\> xcopy C:\Windows\Boot\PCAT\* C:\Boot /s /e

F:\> mkdir C:\Boot\Fonts

F:\> xcopy C:\Windows\Boot\Fonts\* C:\Boot\Fonts /s /e

F:\> copy C:\Boot\bootmgr C:\bootmgr

F:\> copy C:\Windows\System32\config\BCD-Template C:\Boot\BCD

Важно! Раздел, смонтированный к C: (там где размещен загрузчик) обязан быть активным! Убедитесь в этом перед перезагрузкой!

Настройку выполняем так же точно, используя BootICE.

Ну, вроде все. Закрываем все окна и идем в ребут. Флешку можно вытащить из компа.

GRUB у нас еще не настроен пункта для винды в меню нет. Как только появится меню GRUB жмем «C». В консоли набираем

grub> set root=hdX,Y

grub> chainloader /EFI/Microsoft/Boot/bootmgfw.efi

grub> boot

X, Y — соответственно диск и раздел, где лежит загрузчик. Это в случае EFI. В случае с BIOS делаем так

grub> set root=hdX,Y

grub> ntldr /bootmgr

grub> boot

X, Y — диск и раздел с NTFS. Там где распакована винда и лежит её загрузчик.

В режиме EFI вместо логотипа винды я увидел черный экран, так как не нашел в дистрибутиве билиотеки bootres.dll, которую надо поместить в папку EFI\Mictosoft\Boot\Resourses. В случае с BIOS всё в порядке — знакомая эмблема «семерки». А потом в обоих случаях увидим это

Это работает Sysprep. На 57% моргнет экран — настраивается видяха. И если мы все сделали верно, то надпись «Применение параметров системы» повисит довольно долго, потом система сообщит, что установка будет продолжена после перезагрузки. Если мы где-то напортачили с установкой загрузчика — неправильный EFI раздел или неактивный NTFS, то тогда будет ошибка 🙁 Но мы молодцы и у нас все получится, и после очередной перезагрузки мы увидим это

а потом, наконец вот это

Дальше все как при обычной, штатной установке.

Обратили внимание на то, что каждый раз мы грузим систему из консоли GRUB руками. Это очень хорошо — значит ни MBR ни NVRAM не перезаписаны коварным майкрософтом. Настало время грузится в арч и добавить в меню GRUB новый пункт

menuentry 'Windows 7 Ultimate SP1 (EFI)' {

set root=hdX,Y

chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

в случае EFI. Или

menuentry 'Windows 7 Ultimate SP1' {

set root=hdX,Y

ntldr /bootmgr

}

в случае BIOS. Применяем настройки GRUB и перезагружаемся и видем систему в пункте меню загрузки

после выбора которого получаем загруженную Windows

Упреждая гнев профессиональных win-админов, скажу сразу — я знаю о DISM. Именно информация об этой системе и привела меня к описанному решению. Цель была одна — выяснить сколько нужно возможностей собственно Windows для установки Windows.

Оказалось вот что — для установки Windows её среда необходима только для одного — настройки BCD-хранилища. Всё. Остальное можно сделать из среды любой другой операционной системы.

Если написать аналог bcdedit.exe под Linux, то установить Windows можно будет с линуксового Live-носителя.

Загрузка операционной системы из командной строки Grub / Хабр

У меня на домашнем компьютере стоит две операционные системы, Windows 7 и Linux (Arch). Причем вторая появилась относительно недавно. Да и особых знаний о новой (для меня) ОС не было. Тем не менее систему я поставил и даже относительно настроил под себя. Энтузиазм и программерское любопытство меня пересиливало, поэтому, в качестве ознакомления, стал экспериментировать с различного рода пакетами. К сожалению, не всегда вчитываясь в детали.
Решил я переставить Grub, а точнее обновиться до Grub2. (Слышал я такое мнение, что в духе Linux принято держать последнюю версию пакета… Про изменения Grub2 хорошо написано тут.)
Ну и как результат «спешной» установки — перестала грузиться система. Единственное за что можно было зацепиться — это приглашение командной строки:

grub>


По нажатию на Tab вываливается список возможных команд. Их существенно меньше чем в командной строке Linux, но их достаточно для загрузки системы. Почитав про grub тут я решил загрузить Windows, все-таки тут я пока себя чувствую увереннее. Для этого нужно было указать где находиться загрузчик ОС и передать ему управление:

grub> root (hd0,2) [Устанавливаем корневой раздел и монтируем. Тут главное помнить, на каком разделе стоит операционная система]

Запись (hd0,2) означает устройство диска номер 0 (мастер), раздел номер 2.

что соответствует устройству /dev/sda2 (в моем случае). У вас это может быть или /dev/hd2, или еще что-нибудь, в зависимости от дистрибутива. Нумерация устройств идет по-порядку и начинается с (hd0,1) или /dev/sda1.

Далее вводим:

grub> chainloader +1 [пробел перед "+" важен. сhainloader - передает управление загрузкой по цепочке другому загрузчику. В моем случае это был NTLDR]

grub> boot

NTLDR — это загрузчик Windows.

Система стала грузиться, а раз это дало результат — можно копаться дальше (все-таки не Windows теперь предмет изучений).

Перезагружаемся и вводим снова.

grub> root (hd0,6)

grub> linux /boot/vmlinuz26 root=/dev/sda6 [Загружает указанное linux-ядро (/boot/vmlinuz26) с параметрами(root=/dev/sda6)]

Тут стоит различать команду root (hd0,6) и параметр root=/dev/sda6. Первое монтирует раздел к среде выполнения. А второе указывает где находиться root загружаемой ОС. В моем случае ядро и корень оказались на одном разделе, хотя это может быть не так.

grub> initrd /boot/kernel26.img [Загружает указанный initrd-образ]

grub> boot

Мне это помогло, надеюсь вам это не пригодиться, а если и пригодиться, то поможет.

Кстати, если неправильно указать root, процесс загрузки завершиться ошибкой и появиться приглашение вида:
[ramfs /]#

Можно набрать:
[ramfs /]# ls /dev

и посмотреть список устройств(если вы вдруг его забыли как я).

Моя проблема установки gurb2 была в том, что при установке затер файл меню grub (обычно он находиться /boot/grub/menu.lst), а новый файл не создал. Для создания файла конфигурации надо было выполнить grub-mkconfig.

Если у вас сбились настройки grub, то отличия в командах будут минимальными:

  • для загрузки Windows вместо root (h d0,2) надо набирать rootnoverify (hd0,1). Нумерация устройств начинается с (hd0,0), а не (hd0,1). А командой rootnoverify вы устанавите корневое устройство, но не смонтируете его.
  • для загрузки Linux поменяется другая команда: вместо linux вам понадобится команда kernel (полный аналог, даже параметры теже).

UPD: дописал про отличия загрузки с grub от grub2. Спасибо bliznezz

Загрузчик

GRUB — Полное руководство

Загрузчик GRUB — полное руководство

Обновлено: 13 сентября 2007 г .; 30 ноября 2017 г.

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

Одна из самых пугающих вещей в Linux — это ужасное слово «загрузчик». Основная причина этого —
тот факт, что большинство новых пользователей Linux когда-либо использовали только операционные системы Windows.В мире Windows они
с загрузчиками никогда не возился. Для них вопрос загрузки системы был прозрачным. В большинстве,
они использовали бы консоль восстановления Windows, чтобы исправить за них проблемы. Таким образом, они избавились от необходимости учиться
о самой важной части программного обеспечения на компьютере — маленькой программе, которая заставляет все это работать.

Эта статья должна дать вам базовое представление о загрузчике GRUB.Если вы читали мои
В других статьях о Linux вы знакомы с разбиением на разделы и нотацией Linux, а также с командной строкой.
Следующий логический шаг — расширить эти знания, сделав еще один шаг вперед. Понимание того, как работает GRUB и
что означают загрузочные записи в загрузочном меню, помогут вам понять, как работают операционные системы, как исправить,
восстановить или изменить меню GRUB в соответствии с вашими потребностями, а также как настроить различные рабочие среды с несколькими
операционные системы.

В прошлом мы полагались на настройки установки, чтобы сделать за нас тяжелую работу. Фактически, установив GRUB,
хотя и пугает, это довольно простая и полностью обратимая процедура. Освоение GRUB — очень важный
шаг к укреплению уверенности в использовании Linux. Так что, если вы готовы, читайте дальше.

Но прежде всего предисловие мудрости. Эта статья представляет собой сборник источников и примеров, которые помогут
вы узнаете о GRUB.Конечно, все это где-то там, в Интернете. Однако новые пользователи Linux будут
вероятно, найдут идею тратить часы на поиск нужной информации (особенно если их ПК
не загружается) несколько расстраивает. Цель этого руководства — предоставить простые и быстрые решения для большинства
общие проблемы, связанные с настройками мультизагрузки и установкой операционных систем Linux.

Оглавление

  1. Все это файл
  2. Вступление

    1. А как насчет LILO?
  3. Как работает GRUB?
  4. Обозначение GRUB
  5. Конфигурация GRUB

    1. Установка GRUB

      1. GRUB на дискете
      2. Установка GRUB изначально
      3. Установка GRUB с помощью grub-install
    2. Настройка GRUB вручную (после установки)

      1. Резервное копирование!
      2. Добавление новой операционной системы в меню GRUB
  6. Общие проблемы

    1. GRUB был удален; как восстановить?

      1. Легкий способ
      2. Трудный путь
    2. Windows установлена ​​на не первый жесткий диск (подкачка)
    3. На одном жестком диске установлено несколько операционных систем Windows.
      (Скрыть / Показать)
    4. Вы изменили размер раздела; GRUB ушел
  7. Полезные инструменты
  8. Дополнения для особых гиков
  9. Ссылки

    1. Другие мои статьи
    2. Общая информация (в алфавитном порядке)

Все это
файл

Чтобы успешно овладеть секретами GRUB, вы должны понимать одну из основных основ
* Операционные системы на базе NIX.Все в виде файла. Даже жесткие диски и разделы обрабатываются как файлы. Там
это не волшебство. Если вы запомните это, вы обнаружите, что это якобы опасная задача — взломать разделы №
отличается от воспроизведения файлов с помощью файлового проводника (или командной строки). Теперь, когда мы установили
после этого мы можем перейти к более техническим частям обработки.

Вступление

GNU GRUB — это загрузчик (также может быть написан как загрузчик), способный загружать различные бесплатные и проприетарные
операционные системы.GRUB будет хорошо работать с Linux, DOS, Windows или BSD. GRUB расшифровывается как GRand Unified Bootloader.

GRUB настраивается динамически. Это означает, что пользователь может вносить изменения во время загрузки, в том числе
изменение существующих загрузочных записей, добавление новых, пользовательских записей, выбор различных ядер или изменение initrd. GRUB также поддерживает режим логического адреса блока. Это означает, что если ваш
компьютер имеет довольно современный BIOS, который может получить доступ к более чем 8 ГБ (первые 1024 цилиндра) места на жестком диске, GRUB
автоматически получит доступ ко всему этому.

GRUB можно запускать или устанавливать на любое устройство (дискета, жесткий диск, CD-ROM, USB-накопитель, сетевой диск)
и может загружать операционные системы из такого же количества мест, включая сетевые диски. Он также может распаковывать
образы операционной системы перед их загрузкой. Вы можете узнать гораздо больше из официального GNU GRUB Manual 0.97.

А как насчет LILO?

Возможно, вы слышали о другом загрузчике Linux под названием LILO (расшифровывается как LInux
Погрузчик).Хотя это разумный вариант для многих пользователей Linux, я считаю, что GRUB — это
лучший выбор по нескольким причинам:

  • LILO поддерживает до 16 различных вариантов загрузки; GRUB поддерживает неограниченное количество загрузочных записей.
  • LILO не может загрузиться по сети; GRUB может.
  • LILO необходимо переписывать каждый раз при изменении файла конфигурации; GRUB этого не делает.
  • LILO не имеет интерактивного командного интерфейса.

В общем, похоже, что GRUB — победитель. Итак, посмотрим, на что способен этот малыш.

Как работает GRUB?

Когда компьютер загружается, BIOS передает управление первому загрузочному устройству, которым может быть жесткий диск, дискета.
диск, CD-ROM или любое другое устройство, распознаваемое BIOS. Мы сконцентрируемся на жестких дисках, ради
простота.

Первый сектор жесткого диска называется главной загрузочной записью (MBR).Этот сектор
всего 512 байт и содержит небольшой фрагмент кода (446 байт), который называется основным загрузчиком и
таблица разделов (64 байта), описывающая первичный и расширенный разделы.

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

GRUB заменяет MBR по умолчанию своим собственным кодом.

Кроме того, GRUB работает поэтапно.

Этап 1 расположен в MBR и в основном указывает на этап
2, поскольку MBR слишком мала, чтобы содержать все необходимые данные.

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

Этап 1.5 также существует и может использоваться, если загрузочная информация достаточно мала.
поместиться в зоне сразу после MBR.

Архитектура Stage позволяет GRUB быть большим (~ 20-30 КБ) и, следовательно, довольно сложным и легко настраиваемым,
по сравнению с большинством загрузчиков, которые немногочисленны и просты в использовании в рамках ограничений таблицы разделов.

Обозначение GRUB

Этот раздел предназначен, чтобы помочь вам познакомиться с GRUB, ничего не касаясь. Следующий раздел посвящен
с фактическими файлами и ручной настройкой. GRUB имеет свою собственную нотацию, которая очень похожа, но несколько
отличается от общей записи, к которой может привыкнуть обычный пользователь Linux. А теперь вот пример типичного
Запись GRUB:

(hd0,1)

  • Кронштейны необходимы; все устройства, перечисленные в меню GRUB, должны быть заключены в
    кронштейны.
  • hd означает жесткий диск; в качестве альтернативы, fd означает
    для дискеты, cd означает CD-ROM и т. д.
  • Первое число (целое для компьютерных фанатов) относится к номеру физического жесткого диска; в данном случае первый диск, так как
    они считаются с нуля. Например, hd2
    относится к третьему физическому жесткому диску.
  • Вторая цифра относится к разделу
    номер выбранного жесткого диска; опять же, разделы отсчитываются от
    обнулить.В этом случае 1 означает
    второй раздел.

Отсюда очевидно, что GRUB (меню) не делает различий между дисками IDE или SCSI, а также основными или
логические разделы. Решение о том, с какого жесткого диска или раздела можно загружаться, остается за BIOS и на этапе 1. Как
Видите ли, обозначения очень простые.

Первичные разделы отмечены от 0 до
3 (HD?, 0), (HD?, 1),
(HD?, 2), (HD?, 3).Логические разделы в расширенном разделе считаются от
4 вверх, независимо от фактического количества первичных разделов на жестком диске,
например (HD1,7).

Однако одних записей недостаточно для загрузки операционной системы. GRUB также необходимо знать, что работает
системные изображения для загрузки. Они назначаются в качестве параметров каждому из вызываемых
устройства, в том числе специальные флаги (переключатели). Например, безопасный режим Windows — это специальный флаг.Вот
пример меню GRUB, загружающего только Ubuntu.

Вот пример меню GRUB с компьютера с тройной загрузкой (SUSE 10.2, Ubuntu 6.10 и Windows XP). Эта
это настоящий menu.lst на одной из моих настоящих машин.

Попробуем разобраться, что означают записи. Учитываются только строки без комментариев. Комментарии отмечены #. Строки, которые имеют серию
маленькие серые значки «крестики» означают, что текст в нем принадлежит строке
предшествующий этому.Другими словами, там текст просто переносился на другую строку, чтобы визуально разместить текстовый редактор.
и ограничения разрешения экрана.

по умолчанию 0
тайм-аут 8

Первая строка (по умолчанию 0) означает, что первая перечисленная операционная система будет
загрузился. В данном случае это SUSE 10.2. Вторая строка (таймаут 8) сообщает, сколько
время (в секундах), когда пользователь должен сделать свой выбор до загрузки записи по умолчанию.Просто, не правда ли?

gfxmenu (hd0,2) / загрузка / сообщение

Меню GRUB также может быть графическим. Причудливый материал, необходимый для того, чтобы представить пользователю красочный фон и
возможно, некоторые дополнения находятся на первом физическом диске, третьем разделе (hd0,2). Это основной раздел, так как мы
видели раньше.

название openSUSE 10.2
корень (hd0,2)
ядро / загрузка / vmlinuz-…
initrd /boot/initrd.img -…

Это первая запись об операционной системе в меню.

  • название так же просто, как кажется. Это просто строка, призванная помочь
    Пользователь прочитал меню в человеческой терминологии.
  • root (hd0,2) сообщает GRUB, где находятся его файлы конфигурации. В этом
    Например, их можно найти в (hd0,2) / boot / grub.
  • kernel / boot / vmlinuz -… загружает фактический образ ядра. Таких изображений может быть много. Тот факт, что устройство не указано
    перед тем, как / boot / vmlinuz укажет, что образ находится в том же разделе, что и сам GRUB. Часто это вариант по умолчанию для вашего основного выбора
    операционной системы.
  • initrd /boot/initrd.img -… — это временная файловая система, которая делает систему
    подготовка — адаптирует общий образ ядра к конкретному оборудованию — до загрузки настоящего корня.

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

название Ubuntu, ядро ​​… (/ dev / sda9)
ядро (hd0,8) / boot / vmlinuz -…
initrd (hd0,8) /boot/initrd.img -…

  • Опять же, заголовок указывает на имя, в данном случае причудливо украшенное техническими
    Детали.
  • kernel (hd0,8) / boot / vmlinuz -… указывает на 9-ю
    раздел на первом жестком диске (hd0,8).
    Случайно корневой флаг (/ dev / sda9) указывает, что корневой раздел
    такой же, как тот, который содержит образ ядра. Обычно это так,
    и для простоты вам понадобится этот вариант во время установки.
  • initrd (hd0,8) /boot/initrd.img -… здесь ничего нового.

Примечание относительно образов ядра и корневых разделов: на старых компьютерах с BIOS, которые не поддерживают доступ к
больше, чем первые 1024 цилиндра, вы можете настроить загрузочный раздел, содержащий образ ядра, в то время как
сам корень находится в другом месте. Но людям, чьи компьютеры моложе неудачного кризиса 2000 года, не стоит беспокоиться.

Еще вы могли заметить, что запись Ubuntu довольно подробна.Эта функция называется совместимостью с несколькими загрузками; openSUSE распознает Ubuntu и может точно называть его изображения
(включая специальные переключатели) и смонтировать перегородки. Однако большинство операционных систем только частично
совместимость с несколькими загрузками. Чуть позже я покажу вам, как можно было бы относиться к записи Ubuntu.
по-разному, с теми же результатами.

title Windows
rootnoverify (hd0,0)
цепной погрузчик (hd0,0) +1

  • rootnoverify (hd0,0) означает, что openSUSE не может понять работу Windows.
    система, т.е. нет совместимости с несколькими загрузками. Поэтому операционная система вызывается без предвидения
    ядра. GRUB предполагает, что соответствующие загрузочные образы будут найдены в целевом разделе и
    установлен загрузчиком другой операционной системы. Как видите, Windows была
    установлен на первом разделе первого
    жесткий диск. Это самый удобный вариант.
  • chainloader (hd0,0) +1 функция используется для операционных систем, которые не могут быть
    загрузился напрямую.Неудивительно, что операционные системы Windows нельзя загрузить напрямую. Они загружены
    метод цепной загрузки. Как следует из названия, GRUB передает управление
    последовательность загрузки в другой загрузчик, расположенный на устройстве, на которое указывает вход в меню. Это может быть
    Операционная система Windows, но также и любая другая, включая Linux.

Вернемся к Ubuntu. Вы помните, я сказал, что мы могли бы загрузить Ubuntu альтернативным способом? Действительно, мы
мог бы просто загрузить его по цепочке, как Windows.

название Ubuntu
корень (hd0,8)
цепной погрузчик (hd0,8) +1

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

название Windows 95/98 / NT / 2000
корень (hd0,0)
makeactive
chainloader +1

заголовок Linux
корень (hd0,1)
ядро / vmlinuz корень = / dev / hda3 ro

К настоящему времени вы должны легко «читать» язык GRUB. Начнем с названия. root указывает раздел, в котором мы ожидаем найти
Ядро Windows и монтирует его (rootnoverify
оставьте эту работу загрузчику Windows).Команда makeactive устанавливает
активный раздел на корневом диске (см. выше) в корень GRUB
устройство. Это означает, что следующая команда, цепной загрузчик, выполняется без
указанный целевой раздел (так как целевой раздел теперь тот же).

Вторая запись еще проще. Мы называем Linux, мы называем его раздел и загружаем ядро. В этом случае,
мы видим очень интересный случай, когда образ ядра и корневой (/) раздел операционной системы НЕ расположены в одном разделе.Это бы
весьма вероятен для старых компьютеров или компьютеров с определенным загрузочным разделом. Наконец, сумасшедшие вещи:
Меню GRUB, загружающее более 100 систем
DOS, Windows, Linux, BSD и Solaris.

Понимаете, это очень просто! Как только вы освоите это, это действительно станет забавой. Для получения дополнительной информации вы должны
прочтите руководство по GNU GRUB 0.97. В частности,
Вам необходимо ознакомиться со списком
командная строка и команды входа в меню.

Конфигурация GRUB

В большинстве случаев вам не нужно или не нужно прикасаться к GRUB. При установке операционной
системы, особенно в правильной последовательности (сначала невнимательная ОС — например, Windows, гибкая ОС, позже — Linux и
family), GRUB будет установлен автоматически, и к нему будут добавлены соответствующие записи.

Тем не менее, вы должны знать, когда и что делать, если что-то пойдет не так.

Установка GRUB

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

/ boot / grub / меню.lst

Всегда, всегда делайте резервную копию этого файла перед внесением любых изменений! Файлы GRUB можно найти в образе вашего
операционная система (обычно компакт-диск), под:

/ usr / lib / grub / i386-pc

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

Вы можете отображать информацию о среде вашего ПК через терминал или текстовый редактор. Файлы через текст
Editor вызывается путем указания текстового редактора и целевого файла (с помощью su или sudo для системных файлов).

sudo vi / etc / fstab
ИЛИ
sudo gedit / etc / fstab

В качестве альтернативы вы можете просто распечатать содержимое файлов в терминале с помощью команды cat (concatenate).

(sudo) кошка / etc / fstab

Некоторые полезные команды, которые могут понадобиться при работе с загрузкой, жесткими дисками и разделами: Отображение
таблица разделов:

fdisk -l

Отобразите смонтированные разделы:

кот / etc / fstab

Теперь, когда мы знаем, что нам нужно и где это найти, пора установить GRUB.

GRUB на дискете

Чтобы создать GRUB на гибком диске, мы должны скопировать файлы Stage 1 и Stage 2 из каталога образа в первый и
второй сектор дискеты. Мы будем использовать команду dd, которая копирует информацию посекторно. Вот
набор команд, которые необходимо выполнить (взяты из Мануала):

компакт-диск / usr / lib / grub / i386-pc
dd if = stage1 of = / dev / fd0 bs = 512 count = 1
dd if = stage2 of = / dev / fd0 bs = 512 seek = 1

Просто краткое объяснение: если это входной файл, или означает выходной файл, / dev / fd0 относится к первому смонтированному
устройство гибкого диска, bs указывает размер блока (в байтах), count указывает, сколько блоков следует скопировать, а search
сообщает, сколько блоков следует пропустить перед записью.Неудивительно, поскольку нам нужно записать файлы в
первые два сектора дискеты, мы записываем stage1 в первый сектор и копируем stage2 во второй (сначала пропускаем, затем записываем). Теперь, когда мы так полюбили командную строку,
Я оставлю вам нюансы различных команд для домашнего задания. Подробнее о дд на
Википедия.

Что касается GRUB на дискете, вот и все. Поскольку у нас есть копии этапов из образа ОС, все необходимые
информация есть.Конечно, вы всегда можете внести изменения вручную. Но это следующая глава.

Установка GRUB изначально

Собственная установка означает размещение GRUB Stage 1 в первом
сектор жесткого диска (MBR или раздел
Таблица). Это означает, что вы сможете загружаться без дополнительного устройства, например, с дискеты (на которой
стали редкостью в наши дни). Однако это также означает, что если вы позже установите некорректную ОС (например,
Windows) или попробуйте восстановить MBR по какой-либо причине (запустив fdisk / MBR из командной строки DOS), вы удалите
GRUB и отобразите все системы, перечисленные в меню.lst не загружается.

Чтобы установить GRUB в MBR, вам необходимо загрузиться с внешнего носителя (дискета, Live Linux CD). Затем, как только вы достигнете
в приглашении GRUB выполните следующие команды:

Найдите корневое устройство GRUB:

найти / загрузки / grub / stage1

GRUB выполнит поиск всех доступных этапов 1 и представит их. Если у вас есть больше
присутствует более одного образа операционной системы (например,г. SUSE, Kubuntu, Mandriva) у вас будет более одного
stage1 доступен. Пример. Допустим, на компьютере есть следующие рабочие
системы, установленные на разных разделах:

  • SUSE на (hd0,1)
  • Кубунту на (hd0,2)
  • Mandriva на (hd0,4)

Все они будут возвращены как потенциальные корни для устройства GRUB (поскольку каждая ОС имеет свои собственные файлы).Если вы хотите
используйте SUSE GRUB, тогда вы настроите корень GRUB
устройство в (hd0,1):

корень (hd0,1)

Если вам нужен GRUB от Mandriva, то:

корень (hd0,4)

Если вы заранее знаете, что хотите сделать, вы можете пропустить команду поиска. После того, как вы определились с корнем,
вам нужно записать информацию в MBR:

настройка (hd0)

Наконец, выйдите из командной строки GRUB:

уволиться

В качестве последовательности вам потребуются следующие команды:

find / boot / grub / stage1 (необязательно)
корень (hdX, Y)
настройка (hd0)
уволиться

Вы также можете установить GRUB на другом диске или разделе, но тогда вам придется загрузить GRUB по цепочке на другой загрузчик, чтобы это работало.Вот и все. Easy Peasy Orange Squeasy!

Установка GRUB с помощью grub-install

Этот метод считается менее безопасным (согласно Мануалу), так как угадывает отображение. Тем не менее, в целом
newbs нуждаются в серьезной помощи, этот метод может быть предпочтительным. Вам нужно всего лишь вызвать одну команду —
а именно где установить загрузчик. Кроме того, эту команду можно записать несколькими способами, все
эквивалент:

grub-install / dev / hda

grub-install / dev / hd0

grub-install ‘(hd0)’

grub-install hd0

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

Настройка GRUB вручную (после установки)

Вы можете перенастроить или переустановить GRUB в любой момент.

Резервное копирование!

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

cp /boot/grub/menu.lst /boot/grub/menu.lst_backup

Чтобы получить доступ к GRUB, выполните следующую команду в терминале Linux:

sudo grub

Через несколько секунд должна появиться командная строка GRUB. Вы можете определить его по приглашению grub>.

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

Добавление новой операционной системы в меню GRUB

Допустим, вы установили на свой компьютер еще одну операционную систему, Sabayon. Во время установки
вы пропускаете настройку GRUB. Это означает, что исходный GRUB остается нетронутым — и он не содержит записи
о Сабайоне. Для всех практических целей Sabayon не является загрузочным.

Примечание: пункты меню GRUB называются строфами (возможно, это разновидность экземпляра?).Так,
нам нужно добавить Сабайон в список. Если вы знаете, где установлен Sabayon, вам просто нужно добавить его запись в
в menu.lst.

название Sabayon
корень (hdX, Y)
цепной погрузчик +1

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

корень (hdX, Y)
цепной погрузчик +1

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

Общие проблемы

GRUB был удален; как восстановить?

Это часто случается, если вы устанавливаете Windows после Linux.Windows предполагает, что это единственная операционная система в
мир и не пытается жить с существующей информацией, присутствующей в MBR; он перезаписывает его. Для людей
с двойной загрузкой и очень маленьким знанием Linux это катастрофа. К счастью, это очень легко восстановить
один.

Легкий
путь

Используйте Super Grub Disk. Я писал об этом инструменте в
подробности в моей статье (классный) список инструментов Linux в разделе «Спасение».

Трудно
путь
  • Загрузка с дискеты или компакт-диска (подойдет любой Live CD с Linux).
  • Перейти в командную строку grub.

find / boot / grub / stage1 (необязательно)
корень (hdX, Y)
настройка (hd0)
уволиться

Так же, как прежде!

Windows установлена ​​на не первый жесткий диск (подкачка)

GRUB не может напрямую загружать операционные системы Microsoft.А иногда даже цепная загрузка может не работать,
особенно если Windows не установлена ​​на первом жестком диске. Еще раз, вы должны помнить, что вы должны
всегда сначала устанавливайте Windows на первый жесткий диск в первый раздел (правило трех первых).
Тем не менее, даже если у вас Windows установлена ​​на отдельном диске, вы можете решить проблему с помощью подкачки. Вам необходимо выполнить виртуальный обмен между жесткими
диски. Нравится:

карта (hd0) (hd1)
карта (hd1) (hd0)

После того, как вы добавите эти две строки, вы сможете загрузиться в Windows (или DOS, если на то пошло).

На одном жестком диске установлено несколько операционных систем Windows.
(Скрыть / Показать)

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

Проблема легко решается путем скрытия и отображения
перегородки.Если GRUB скрывает раздел, он не будет виден Windows и предотвратит возможную путаницу. Вице
наоборот, если вы покажете раздел, Windows обнаружит его и сможет загрузиться с него, не запутавшись.

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

показать (hd0,0)
скрыть (hd0,1)
rootnoverify (hd0,0)
цепной погрузчик +1
активный

Вы изменили размер раздела; GRUB ушел

Это интересный случай.Это может произойти после того, как вы воспользуетесь программой для создания разделов или программным обеспечением для создания образов
в таблицу разделов. Обычно это происходит, когда вы вносите такое изменение в Windows. Линукса не будет
сообщил об изменении, потому что Windows не видит ничего на машине, кроме вещей Microsoft.
Следовательно, пострадает GRUB.

Решение состоит в том, что, скорее всего, файловая система повреждена и ее необходимо отремонтировать. Загрузитесь с live CD и
выполните следующие команды, если вы знаете, где находятся разделы Linux.Проверьте файловую систему:

fsck.ext2 / dev / hdXY

Замените X и Y буквой жесткого диска и разделом
номер, который вы хотите проверить (hda2, hdb3 и т. д.). Создайте файловую систему ext2 / 3
параметры снова.

tune2fs -j / dev / hdXY

Теперь смонтируйте корневую файловую систему в / mnt / sysimage и запустите grub:

монтировать -t ext2 / dev / hdXY / mnt / sysimage
ИЛИ
монтировать -t ext2 / dev / hdXY / mnt / sysimage

cd / mnt / sysimage / sbin
жратва

Вы вернулись на знакомую территорию.Дополнительные сведения о командах Linux, включая fsck.ext2, tune2fs и другие, см. На страницах руководства в Linux.
Отзывы.

Наконец, в вики Ubuntu есть ответы на еще несколько сложных вопросов:

Как
восстановить меню GRUB после установки Windows

Как определить имя загрузочного диска (hd0, hd1, hd2 и т. Д.)

Как добавить Windows
вход в меню GRUB

Как
загрузиться в Windows, установленную на отдельном диске SATA

Полезные инструменты

GParted

GParted — это редактор разделов Gnome.Хотя он основан на Linux, он полностью поддерживает файловую систему NTFS. Он бежит от
компакт-диск.

SystemRescueCD

Это live CD, специально предназначенный для спасения и восстановления. Пакет инструментов включает в себя некоторые из самых
важные инструменты, доступные для пользователя Linux, такие как GParted, QTParted, Partimage, Grub, Lilo, sfdisk, безопасность
инструменты, сетевые инструменты и многое другое.

Диск Super Grub

Super Grub Disk предназначен для запуска с дискеты или компакт-диска и используется для восстановления системы.Самое главное, что это
может использоваться для восстановления загрузчиков, включая GRUB, LILO и даже загрузчик Windows.

TestDisk

TestDisk — это утилита, специально разработанная для восстановления утерянных разделов и восстановления загрузочных дисков с незагрузочных дисков.
Этот очень полезный инструмент можно найти на ряде живых компакт-дисков, включая Knoppix и GParted. Поддерживает NTFS
разделов, а также имеет версию Windows.

Дополнительно для
специальные фанаты

Мультизагрузка с GRUB Mini-HOWTO

Как многозагрузить операционные системы

Как загрузиться
Ubuntu из загрузчика Windows

Файловые системы
и монтаж

Ссылки:

GNU GRUB

GNU GRUB FAQ

Руководство GNU GRUB 0.97

GNU GRUB в Википедии

Список
команд командной строки и ввода меню

Меню GRUB, загружающее более 100 систем
DOS, Windows, Linux, BSD и Solaris

Мой
другие статьи:

Очень полезные команды и конфигурации Linux

(Классный) список инструментов Linux

Общее
Информация:

кошка

дд

initrd

LILO

NTLDR

Логический адрес блока

Страницы руководства (man) по Linux Обзоры

Вот и все.Наслаждайтесь! P.S. Если вы найдете эту статью полезной, поддержите Дедоимедо!

Ура.

.

Переустановка загрузчика GRUB

Переустановка загрузчика GRUB

Возможно, вам потребуется переустановить GRUB в какой-то момент после того, как Window $ принудительно обновил себя и, очевидно, стер все следы вашей установки Linux. Или вы могли установить Window $ после установки Linux, несмотря на все предупреждения, и теперь Linux не загружается. Не волнуйтесь, ваша система все еще там и цела, только сейчас нет возможности загрузиться в нее.

(U) Системы EFI

Если у вас возникнут проблемы с EFI, в этой статье Debian Wiki могут быть некоторые решения. К сожалению, реализации (U) EFI в лучшем случае случайны, в основном это зависит от производителя. В этой статье Arch Wiki есть хорошая коллекция реализаций EFI для конкретных поставщиков (U) и их деталей, но вы должны помнить, что это страница, специфичная для Arch Linux, поэтому некоторые команды, возможно, потребуется изменить для Debian.

Переустановка GRUB 2 в системах без EFI

К счастью, переустановка загрузчика Grub довольно проста и быстра.Все, что вам нужно, это ваш оригинальный установочный компакт-диск Debian, DVD-диск или USB-накопитель.

  • Загрузите компьютер с установочного носителя и выберите Advanced Options , перейдя к нему с помощью клавиш со стрелками, затем нажмите Введите .

Из расширенного меню вам нужно будет запустить программу установки в «режиме спасения». Есть два способа сделать это: графический или интерфейс командной строки, как если бы у вас был установлен Debian.

  • Чтобы продолжить графический режим спасения, выберите Графический режим спасения (кто бы мог подумать) с помощью клавиш со стрелками и нажмите Введите

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

Следующие шаги будут идентичны обычным шагам установки в следующем порядке:

  • Выбрать язык программы установки
  • Выберите место
  • Выбрать раскладку клавиатуры
  • Укажите имя хоста
  • Укажите доменное имя

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

Типичная установка, не относящаяся к EFI Window $, создала бы для себя как минимум два раздела, и если вы выбрали параметры по умолчанию во время установки, ваша система Debian должна занять два раздела. В таком случае следует выбрать предпоследний и нажать Продолжить .

Или, в идеале, следует запомнить схему разбиения. Хорошая новость в том, что на самом деле это не обязательно.Когда вы выбираете раздел, установщик будет смотреть на существующую установку Debian (или другого Linux). Если он не может найти его, вы получите следующую ошибку:

Затем вам будет предложен следующий выбор:

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

  • Выберите его и нажмите Продолжить

Затем вам объяснят, что происходит дальше.Обычно вы бы установили GRUB в MBR первого диска. Достаточно легко предположить, что ваш первый диск называется / dev / sda , потому что ваш первый диск будет называться как / dev / sda .

  • Введите / dev / sda в поле ввода и щелкните Продолжить . (Если вы не установили GRUB (вручную) где-то еще, и в этом случае вам, вероятно, следует знать, что еще там писать.)

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

  • Выберите Перезагрузить систему и нажмите Продолжить , чтобы (как вы угадали) перезагрузить систему.
  • Чтобы продолжить работу в режиме восстановления CLI, выберите Rescue mode с помощью клавиш со стрелками и нажмите Введите .

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

Следующие шаги будут идентичны обычным шагам установки в следующем порядке:

  • Выбрать язык программы установки
  • Выберите место
  • Выбрать раскладку клавиатуры
  • Укажите имя хоста
  • Укажите доменное имя

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

Типичная установка, не относящаяся к EFI Window $, создала бы для себя как минимум два раздела, и если вы выбрали параметры по умолчанию во время установки, ваша система Debian должна занять два раздела. В таком случае следует выбрать предпоследний и нажать Введите .

Или, в идеале, следует запомнить схему разбиения. Хорошая новость в том, что на самом деле это не обязательно.Когда вы выбираете раздел, установщик будет смотреть на существующую установку Debian (или другого Linux). Если он не может найти его, вы получите следующую пугающую ошибку:

.

Затем вам будет предложен следующий выбор:

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

  • перейдите к нему с помощью клавиш со стрелками и нажмите Введите .

Затем вам объяснят, что происходит дальше. Обычно вы бы установили GRUB в MBR первого диска. Достаточно легко предположить, что ваш первый диск называется / dev / sda , потому что ваш первый диск будет называться как / dev / sda .

  • Введите / dev / sda в поле ввода и нажмите Введите . (Если вы не установили GRUB (вручную) где-то еще, и в этом случае вам, вероятно, следует знать, что еще там писать.)

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

  • Выберите Перезагрузите систему с помощью клавиш со стрелками и нажмите Введите , чтобы (как вы угадали) перезагрузить систему.

И готово.GRUB необходимо восстановить, ваши установки Debian должны снова стать загрузочными.

.Загрузчик

— как установить archlinux EFI grub с таблицей разделения MBR (msdos)?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

  1. Авторизоваться
    зарегистрироваться

.

Добавить комментарий

Ваш адрес email не будет опубликован.