Как починить GRUB2 если Ubuntu не хочет загружаться. Переустановка GRUB на случай критических неполадок. Универсальный инструмент для не универсальных систем

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

Универсальный инструмент для не универсальных систем

Прежде всего начнём разбираться с наименования GNU GRUB. Эта аббревиатура с английского переводится как "главный унифицированный загрузчик". Его создателем является некоммерческая организация «Проект GNU», которая прославилась в IT-сфере своими свободно распространяемым программным обеспечением. Сам же GRUB по своей сути представляет меню выбора загрузки нужной пользователю ОС из целого перечня поддерживаемых систем:

  • Linux.
  • FreeBSD.
  • Solaris.

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

Путь развития технологии

Непрерывно растущая популярность GRUB была основополагающей причиной, побуждающей неуклонно развивать и совершенствовать загрузчик в дальнейшем. Самая первая версия загрузчика, именовавшаяся как GRUB Legacy, до сих пор отлично справляется с задачами унифицированного загрузчика для UNIX-подобных систем. Широкая поддержка серьёзных компаний (наподобие RedHat и Novell) и серверных дистрибутивов обеспечили ей ещё продолжительный срок существования в целом.

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

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

  • Скриптовая поддержка (циклов, условий, переменных и функций).
  • Графический интерфейс добавляет возможность гибких изменений внешнего вида загрузчика под индивидуальный вкус пользователя (GRUB 2 может быть легко изменён от чёрно-белой таблицы до стильного разноцветного окна).
  • Возможность динамичной подгрузки модулей. Это позволит расширять функционал не на сборочном этапе, а непосредственно во время выполнения.
  • Совместимость с разными архитектурами.
  • Добавлена поддержка загрузки Mac OS.
  • Добавлена стабильная работа с такими файловыми системами, как: FAT16 , FAT32 , NTFS , любая версия ext , XFS и ISO
  • Кроссплатформенный тип установки даст возможность инсталлировать GRUB2 с другой архитектуры
  • Введение безопасного режима в случае возникновения проблемных ситуаций.
  • Исправлены ошибки от старой GRUB Legacy, которые изначально не могли быть пофиксены из-за требований

Все слышали о LILO?

Разумеется, не единым лишь GRUB"ом ограничивается выбор пользователей среди загрузчиков ОС. Подобным аналогом является LILO - начальный загрузчик Linux (LInux LOader), который до сих пор не утрачивает полностью свою актуальность. Однако же в пользу GRUB следует учесть несколько отличительных особенностей, которыми прямой конкурент пока что похвастаться определённо не может:

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

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

Установка GRUB: все нюансы и подробности процесса

С самого начала убедитесь, что у вас имеется либо установленная Ubuntu, либо имеется её загрузочный диск (LiveCD). Запустив систему, необходимо вызвать терминал сочетанием клавиш Ctrl+Alt+F2, после чего прописать в нём следующие команды:

Sudo add-apt-repository ppa:cjwatson/grub,

Sudo add-get update && sudo add-get install grub2,

Sudo update-grub2.

И даже если у вас не установлена Ubuntu, но имеется LiveCD, то процедура остаётся одна и та же с одной лишь крохотной разницей. Загрузившись именно с этого выберите опцию "Попробовать Ubuntu" - так вы запустите систему без каких-либо изменений на своём компьютере. После этого продолжайте устанавливать загрузчик GRUB по той же схеме с этапа вызова терминала.

Проверить установленную версию загрузчика можно командой grub-install -v , а также непосредственно при самой загрузке Ubuntu.

Алгоритм запуска GRUB

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

  • код основного загрузчика (446 байт);
  • таблицу разделов с описанием как основных, так и вторичных разделов жёсткого диска (64 байта).

Из-за малого объёма сектора MBR, запуск GRUB укладывается в два условных этапа:

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

Такая структура загрузки позволяет быть GRUB"у более широко конфигурируемым и гибким, нежели множество других аналогов, в которых этот процесс упрощён до максимальной компактности.

Наиболее часто используемые консольные команды

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

Команды Описание Пример ввода в консоль
ls Универсальная команда для работы со списками жёстких дисков и разделов. Может использоваться для вывода содержимого папки. ls /boot/grub
Её использование даст полную информацию абсолютно о любом разделе. При этом будет указан тип файловой системы на нём, его метка, UUID, а также дата внесения последних изменений.
cat Вывод информации о содержимом конкретно указанного файла. cat /путь/имя_файла
linux Аналог kernel-команды GRUB из старой-доброй версии Legacy, позволяющей загружать указанное ядро Linux.

linux файл_ядра

опция1=значение

опция2 опция3

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

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

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

*,* - номер диска и номер раздела на нем соответственно

set Чаще всего благодаря своей стабильности и работоспособности используется для переназначения root-раздела на диске.

set root= (hd*,*)

*,* - номер диска и номер раздела на нем соответственно

search

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

  • u (или --fs-uuid) - поиск раздела по UUID;
  • l (или --label) - поиск по метке раздела;
  • f (или --file) - поиск по определенному файлу;
  • n (или --no-floppy) - пропуск при проверке флоппи-дисковода;
  • s (или --set) - установить найденный раздел в качестве значения заданной переменной.

Команда пригодится в случае, если нумерация дисков и разделов "полетит", из-за чего команда set root либо приведёт в никуда, либо в не тот раздел не того диска.

search -u uuid_нужного_раздела

search -l метка раздела

search -f /путь/имя файла

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

help s - вывод справки на все команды, начинающиеся на s.

help set - отображение справки о команде set.

terminal_output.console Переключение на чёрно-белую цветовую гамму отображения. terminal_output.console
background_image

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

Обратите внимание: команда не изменяет настроек оформления - изображение остаётся на фоне только лишь на текущем сеансе до следующего выключения.

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

boot Загрузить компьютер. boot
reboot Перезагрузить компьютер. reboot
Выключить компьютер. halt

Послеустановочный GRUB: настройка и полезный в работе софт

Основным конфигурационным файлом в GRUB2, в отличие от предыдущей версии Legacy, является не /boot/grub/menu.lst , а уже /boot/grub/grub.cfg. Однако напрямую его редактировать бессмысленно - он будете генерироваться с каждым сохранённым изменением в файле настроек /etc/default/grub и в директории скриптов /etc/grub.d.

В /etc/default/grub настройка в основном ограничена изменением стандартного пункта загрузки и/или времени показа меню:

  • За первый пункт изменений отвечает параметр GRUB_DEFAULT , значением которого обозначается номер пункта в меню загрузки. Выбирая какой-либо другой пункт, пользователь должен знать его очерёдность из общего списка (для этого нужно просмотреть содержимое /boot/grub/grub.cfg и найти по счёту нужную запись). При этом не стоит забывать правила нумерации: первому пункту присваивается значение 0, второму - 1, третьему - 2 и так далее.
  • За задержку отображения меню загрузки отвечает параметр GRUB_TIMEOUT , чьё присвоенное значение в кавычках обозначает количество секунд, в течение которых эта заставка появится. В редактировании этого параметра есть одна хитрая особенность: выставив значение "-1", заставка будет висеть ровно до тех пор, пока пользователь не выберет какой-либо пункт.

Набор скриптов в /etc/grub.d находят на компьютере все установленные системы и ядра, формируя загрузочное меню в grub.cfg. За поиск ядер и других ОС соответственно отвечают два основных: 10_linux и 30_os-prober. Файл 40_custom позволяет изменить GRUB путём добавления собственных пунктов загрузки, что полезно для работы с особыми типами запуска системы (обратите внимание, что при любых изменениях он должен заканчиваться пустой строкой, иначе последний пункт загрузки из всех предложенных банально не будет отображён).

Однако ещё более простой способ отредактировать GRUB в системе Ubuntu - утилита Grub-Customizer. Благодаря своей простоте и интуитивно понятному интерфейсу, это наилучший вариант для настройки загрузчика, более всего подходящий неопытным новичкам. Для установки запускаем терминал (Ctrl+Alt+T), затем поочерёдно вводим в нём следующие команды:

Sudo add-apt-repository ppa:danielrichter2007/grub-customizer,

Sudo add-get update,

Sudo add-get install grub-customizer.

И хоть перевод программы Grub-Customizer оставляет желать наилучшего исполнения, разобраться в ней очень легко:

  • List configuration - настройки меню при загрузке системы. Тут осуществляется изменение очерёдность его пунктов.
  • Основные настройки - выбор системы, загружаемой по умолчанию, а также определение времени ожидания.
  • Внешний вид - редактирование внешнего оформления загрузочного меню.

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

  • Super Grub Disk - простой и удобный инструмент для быстрого восстановления загрузчика. При этом умеет работать не только лишь с GRUB и LILO, но даже и с самой Windows. Запускается с CD, флешки или же дискеты.
  • GParted - редактор разделов дисковых разделов, запускающийся непосредственно с CD. С её помощью можно проводить такие операции с разделами и файловыми системами на них, как: создание, удаление, изменение размера, проверка, перемещение и копирование.
  • SystemRescueCD - дистрибутив Linux, специальным образом предназначенный для аварийного восстановления.
  • TestDisk - утилита, позволяющая диагностировать и восстанавливать как отдельные разделы, так и загрузочные диски целиком.

Как загрузчик управится с ОС Windows?

Напрямую, к сожалению, GRUB никоим образом не может загружать Windows x86 (64-битная версия также не исключение), из-за чего приходится создавать соответствующий цепной механизм запуска. Для этого в конфигурационном файле grub.cfg необходимо добавить несколько строк определённых команд:

Title Windows,

Rootnoverify (hd*,*),

Chainloader +1,

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

  • rootnoverify (hd*,*) - тот же самый аналог set root . Она информирует GRUB о местоположении раздела, на котором находится следующая часть загрузочного кода, однако не монтирует его (по той ясной причине, что для GRUB это сделать невозможно). Обратите в очередной раз внимание, что часть (hd*,*) - это номер диска и номер раздела соответственно, на котором установлена ОС Windows.
  • makeactive - команда предоставляет указанному корневому разделу статус загрузочного.

Теперь та самая команда chainloader +1, которое передаёт весь дальнейший контроль загрузки непосредственно загрузчику Windows.

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

Случается и так, что на жёстком диске установлена не одна, а две или даже больше версий Windows. И тогда осуществить стабильный запуск без дополнительных команд скрытия/показа (hide/unhide ) разделов просто нереально. Суть такова, что если в конфигурационном файле GRUB прописано скрытие какого-либо раздела накопителя, то Windows банально не сможет его прочесть. А если раздел видимый, то с него соответственно можно будет загрузиться.

При наличии нескольких операционных систем сначала определитесь, какой именно экземпляр вы желаете загрузить, затем проверьте её точное расположение - необходимо знать, на каком разделе жёсткого диска она установлена. К примеру, имеются две различные версии Windows, расположенных соответственно на первом и втором разделах одного накопителя, и пользователю нужно загрузить именно вторую. Для этого в файле menu.lst нужно внести следующие изменения:

Title Windows,

Unhide (hd0,1),

Rootnoverify (hd0,1),

Chainloader +1,

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

Переустановка GRUB на случай критических неполадок

Даже в случае технических неполадок восстановить GRUB совершенно несложная задача. Для начала загружаем установочный LiveCD, открываем терминал сочетанием клавиш CTRL +ALT +T.

После этого поочерёдно вводим команды:

  • sudo grub-install /dev/sda - установка GRUB непосредственно в MBR (sda - загрузочный диск);
  • sudo update-grub - поиск других загрузочных записей на жестком диске (к примеру, Windows).

Теперь остаётся лишь перезагрузить компьютер и убедиться в полной работоспособности переустановленного загрузчика.

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

Необходимость в подобной интегрированной в загрузчик GRUB системе защиты появляется тогда, когда размеры логов, расположенных в каталоге /var/log, из-за неконтролируемой записи информации в них растут до непозволительных объёмов. В нормально работающей системе предусмотрены специальные сервисы, архивирующие и подчищающие эти логи в автоматическом режиме. Таким образом, в большинстве случаев пользователю абсолютно не нужно тратить время, контролируя их объём.

Однако эти же службы запускаются лишь после загрузки операционной системы. До этого размеры лог-файлов абсолютно ничем не мониторятся, из-за чего в случае непредвиденного падения системы и дальнейших перезагрузок логи будут только лишь расти в объёме. И этот неконтролируемый их рост будет продолжаться ровно столько, сколько длятся перезагрузки из-за сбоя в системе. Впоследствии это всё может привести к полному заполнению того раздела, на котором расположен каталог /var/log, что чревато зависанием системы наглухо и невозможности запуска даже режима восстановления.

Именно от этого катастрофического положения и спасает интегрированная в GRUB система защиты от циклических перезагрузок, вывода "зависшее" меню GRUB, ожидающее явного вмешательства пользователя. Сама защита ориентируется на значение переменной recordfail, прописанного в скрипте /boot/grub/grub.cfg. В ходе каждой загрузки она устанавливается как recordfail=1 , а на финальной загрузочной стадии сбрасывается до recordfail=0 . И если именно такого сброса не произошло, то автоматическая загрузка полностью предотвращается и активируется та самая защита GRUB.

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

Кому это может быть полезно? Только для станций и серверов, в которых отсутствует клавиатура для ввода-вывода информации. Без неё, в случае подобных проблем, загрузка системы вообще бывает невозможна. Случаи зацикливания загрузки не так уж распространены и возникают в основном либо из-за проблем с питанием, либо из-за неполадок в программном обеспечении.

Деинсталляция GRUB и возвращение к Windows: быстро, просто и безболезненно

В случае если возникнет вопрос "Как удалить GRUB и оставить загрузчик другой операционной системы?", то в первую очередь пользователю потребуется её установочный диск/флешка. Разберём всё на конкретном простом примере: пользователь удаляет со своего компьютера Linux, оставляя в итоге одну лишь Windows, но при этом не может её загрузить ввиду ошибки Grub error . Для полного решения проблемы необходимо восстановить загрузчик Windows x86/64 bit:

  1. Загружаемся с установочного накопителя, предварительно выставив в его на первом приоритете при загрузке в BIOS
  2. Загрузившись с установочного носителя, выбираем раздел восстановления системы.
  3. Из появившегося списка инструментов выбираем командную строку, в которой пропишем поочерёдно следующие команды:
  • BOOTREC.EXE /FixBoot.
  • BOOTREC.EXE /FixMbr.

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

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

Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.

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

Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях можно почитать в отдельной статье. Тут же я скажу, что GPT - более новая и функциональная таблица разделов, MBR - уже устаревшая, но до сих пор часто используемая.

В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.

GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.

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

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

$ grub-install опции диск

Параметров здесь достаточно много, но нам будут нужны только некоторые:

  • --compress - сжать файлы загрузчика;
  • --install-modules=модули - установить только эти модули;
  • --modules - записать эти модули в MBR;
  • --boot-directory - использовать другой каталог для файлов Grub;
  • --bootloader-id - имя загрузчика в меню EFI;
  • --core-compress - сжимать образ, загружаемый в MBR;
  • --efi-directory - использовать системный раздел EFI;
  • --force - установить несмотря на ошибки;
  • --recheck - удалить существующую карту устройств, помогает если возникают ошибки;
  • --removable - установка grub на флешку (только EFI);

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

Установка загрузчика Grub в MBR для BIOS

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

sudo grub-install /dev/sda

sudo grub2-install /dev/sda

Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь /dev/sda - ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы:

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

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

sudo grub-install --root-directory=/mnt/USB/ /dev/sdb

Здесь /mnt/USB - папка, куда была смотирована ваша флешка, а /seb/sdb - сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.

Установка загрузчика Grub в GPT для BIOS

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

Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:

Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:

sudo gdisk /dev/sda

Чтобы создать новый раздел нажмите n и выберите номер раздела:

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

Выбираем конечный сектор раздела. По умолчанию будет использоваться максимальный. Нам нужен раздел размером 1 Мб. Размер одного сектора GPT - 512 байт, поэтому нам нужен раздел размеров 2048 секторов. Таким образом, конечный сектор будет 24000 с чем-то.

HEX Code - это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02 :

Готово, осталось нажать w для записи изменений на диск:

sudo grub-install /dev/sda

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

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

Теперь переходим к самому сложному, как установить grub efi.

Установка GRUB UEFI GPT

Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:

Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:

Размер 100 Мегабайт, имя раздела ESP , файловая система fat32 . Дальше примените изменения и установите для раздела флаг ESP :

То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00 . После того как раздел был создан, подключаем его к нашей файловой системе:

sudo mkdir /boot/efi
$ sudo mount /dev/sda2 /boot/efi

sudo apt install grub-efi efibootmgr

grub-install /dev/sda

Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда:

grub-install --boot-directory=/mnt/sdb2/boot --efi-directory=/mnt/sdb1 --target=x86_64-efi --removable

Рассмотрим опции: --boot-directory - задает папку с файлами загрузчика на флешке, --efi-directory - папка куда смонтирован раздел efi, --target - архитектура целевой системы и --removable говорит, что это установка на съемный носитель. С UEFI все. После перезагрузки и выбора в меню EFI пункта связанного с Grub, вы получите доступ к привычному меню grub и сможете выбрать нужный параметр.

Выводы

Теперь установка Grub не вызовет у вас проблем. Мы разобрали не только как установить Grub2 в MBR но и в EFI. Кроме того, всю приведенную здесь информацию вы можете использовать для восстановления Grub. Так вы будете лучше понимать что происходит во время восстановления. А настройку параметров и ручное создание конфигурационного файла мы рассмотрим в одной из следующих статей.

Вопрос: Iubuntu 15.04 Зависает на установке


Начал установку Iubuntu 15.04, при установке на этапе создания файловой системы ext4 для монтирования в / на разделе #1 устройства SCSI3 (0.0.0) (sda) что можно сделать? может что то через консоль

Добавлено через 4 минуты
Процесс установки как бы идет но ничего не происходит ждал на этом этапе 1.5 часа

Ответ: 1. Запустите сначала в режиме «Без установки» - посмотрите как будет работать
2. Если не знаете и не умеете зачем берете тестовую версию? Ставьте 14.04.3

Вопрос: Debian зависает при загрузке


Здравствуйте. Правил /etc/network/interfaces (добавлял софт автозагрузку). Теперь загрузка Debian зависает на строке "a start job is running for LSB: raise network interfaces". Всё, что я могу сделать - это нажать ctrl+alt+del и перезагрузиться. Как восстановить загрузку?

PS:
Debian установлен на софтварном RAID`е. В сети есть PXE-сервер slitaz, но gui не стартует. Не знаю как в нём примонтировать этот RAID, чтобы поправить /etc/network/interfaces. В linux`е новичок.

Ответ: Пробовал выбрать recovery mode - так же зависает.

Загрузился через slitaz pxe. Выполнил

Mkdir /debian mount -t ext4 -o rw /dev/sda1 /debian

выводит "EXT4-fs (sda1): block descriptors corrupted!"

Может быть там не ext4, честно говоря я просто забыл. EXT3 тоже не монтирует.

Добавлено через 8 минут
Acronis Disk Director не определяет файловую систему. Что в принципе понятно - там ведь mdadm. Попробую сделать по.

Добавлено через 29 минут
Застопорился на установке mdadm.

Настраиваю сеть (адрес: 192.168.1.10, шлюз и прокси-DNS: 192.168.1.4) и запускаю установку

Ifconfig eth0 192.168.1.10 mask 255.255.255.0 echo nameserver 192.168.1.4 > /etc/resolv.conf route add -net 0.0.0.0/0 gw 192.168.1.4 tazpckg get-install mdadm

Получаю wget: bad address "mirror.slitaz.org" . На винде с аналогичными настройками mirror.slitaz.org открывается в браузере.

Добавлено через 2 часа 36 минут
С сетью разобрался - slitaz не видит встроенную сетевую карту, использую внешнюю. Установил mdadm далее по статье:

Mdadm -A -R /dev/md9 /dev/sda1

И получаю "mdadm: unexpected failure opening /dev/md9". Короче не может создать виртуальное устройство. Работаю из под рута, где затык?

Добавлено через 16 часов 36 минут
Короче загрузился с флешки, все сетевые карты определились, IP получил автоматом по DHCP, далее установил mdadm и он автоматически создал виртуальное устройство RAID0. Осталось только примонтировать и поправить /etc/network/interfaces . Тему можно закрыть.

Вопрос: Ошибка при установке Ubuntu с флешки


Доброго времени суток!
На компьютере стоит Kubuntu 14.04.1. Захотел обновить до 14.10, но черт дернул - компьютер выключился на стадии установки обновлений. Ну ладно, Бог с ним.

Стал записывать на флешку новый образ Kubuntu 14.10. Создал с помощью UltraISO - при загрузке вываливается выхлоп "Failed to load ldlinux.c32...". Далее попробовал тот же образ через UNetBootIn - мигающий курсор на черном фоне после загрузки компьютера. И ни туда, ни сюда.
И так с каждым образом, что у меня были на ПК.

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

Ответ: alladln , спасибо, попробую. Проблема была решена спустя два дня с помощью программы Win32DiskImager и кучи нервов. Однако она снова возобновилась!
Я смог записать через внутреннее приложение KDE версию 14.10, но система зависает во время бут-лого с бегающими точками.

Вопрос: Установка Ubuntu рядом с Windows


Всем привет! Решил поставить себе ubuntu как вторую ОС(первая Win7). В начале установки ubuntu столкнулся с такой проблемой "Микропрограмма данной машины запустила установщик в режиме UEFI, но это выглядит так, что возможно уже установлена другая ОС "в режиме совместимости с BIOS"(BIOS compatibility mode). Если вы продолжите установку Debian в режиме UEFI то могу возникнуть сложности с перезагрузкой машины в любую ОС в режиме BIOS".
Скрин прилагается.
Знающие люди, подскажите как быть? Хочется сохранить возможность работы с двумя ОС(виндой и линукс), т.е. при перезагрузке выбирать нужную. Заранее спасибо)

Ответ: sailenser
У вас разметка диска MBR, значит 7-ка должна быть установлена в режиме Legacy. Посмотрите/поищите в UEFI-BIOS параметр UEFI, он должен быть отключен, а Legacy включен. В разных UEFI-BIOS эти настройки могут называться по-разному, поэтому более конкретно сказать не получится.

Можно не искать настройки, а сначала попробовать такой вариант: когда появится сообщение

Сообщение от sailenser

"Микропрограмма данной машины запустила установщик в режиме UEFI, но это выглядит так, что возможно уже установлена другая ОС "в режиме совместимости с BIOS"(BIOS compatibility mode). Если вы продолжите установку Debian в режиме UEFI то могу возникнуть сложности с перезагрузкой машины в любую ОС в режиме BIOS".

Ниже должен быть вопрос "Хотите продолжить установку в режиме UEFI", ответьте "нет" и продолжите установку. Установка должна будет продолжиться в режиме Legacy и дальше устанавливать систему "как обычно". Место установки GRUB - жесткий диск (/dev/sda).

Вопрос: Проблема с установкой PCBSD 10.1.1


Здравствуйте.
Хочу установить PCBSD 10.1.1 второй системой, никак не получается.
При установке система ставиться, но при установке GRUB выбивает ошибку. Если ставить без лоадера ставиться, но запустить через GRUB2 с флешки у меня не получилось.

Лог установки:

Ответ:

Только если установить руками:

У Вас MBR: перая партиция XP, вторую можно отдать под PC-BSD
- grub2 на zfs не встанет, точней, не найдет /boot/grub на zfs,
а PC-BSD 10.1.1 ставится на ZFS
- install"ер не умеет установку на свободную MBR
- ну и grub2-pcbsd - кривоват

Или можно выйти в expert mode - разметить руками
и ставить без установки grub2, затем записать boot0 и zfsboot
и получите:
FreeBSD BootManager - boot0cfg (MBR)
- slice Windows XP
- slice FreeBSD + BSD разметка и zfs на партиции FreeBSD

Вопрос: Windows 8 \ установка Linux на второй hdd ?


Здравствуйте. На пк два hdd на первом стоит Windows 8. Есть вариант установить на второй hdd Linux. Хочу уточнить несколько важных моментов:

1. При установке Linux при выборе самостоятельного варианта будет возможность выбрать второй диск для установки Linux, чтобы случайно не поставить его с windows 8 на первый диск?

2. При перезагрузке пк будет возможность выбора системы windows linux для дальнейшего запуска, или каждый раз придется в биосе переопределять жесткий hdd для выбора системы?

Ответ:

Сообщение от sergius99

1. При установке Linux при выборе самостоятельного варианта будет возможность выбрать второй диск для установки Linux, чтобы случайно не поставить его с windows 8 на первый диск?

Будет

Сообщение от sergius99

2. При перезагрузке пк будет возможность выбора системы windows linux для дальнейшего запуска, или каждый раз придется в биосе переопределять жесткий hdd для выбора системы?

Не придется.Ставь загрузку HDD c линуксом, потом через терминал обнови grub(sudo update-grub) и при загрузке появится окно выбора ОС, если линукс увидит винду при установке возможно и не нужно будет grub обновлять

Вопрос: Не запускается Windows 8.1 после установки Ubuntu


Здравствуйте!
Долго хотел вспомнить молодость и поставить Ubuntu. И, наконец-то, руки дошли. Убил один раздел на ноуте и поставил рядом с виндой. После этого не могу попасть в Windows. Когда я попадают в Grub, у меня есть выбор: при выборе Ubuntu , всё грузится нормально, но при выборе Винды - всё так же тухгет экран, но, просто его включения, на экране виден только фоновый цвет Grub"а и дальше ничего не происходит . Причём даже индикатор НамЛока не реагирует на нажатия данной клавиши.
Долее, под спойлером, подробнее, чтоб не пугать читающих обилием текста.


Представляю сразу информации по максимуму.
1. Сейчас Windows и Ubuntu установлены из-под BIOS. Не UEFI!
2. Быструю загрузку, перед установкой Ubuntu, отключил. Защищённой загрузки в BIOS не нашёл вообще.
3. В ноуте 2 физических диска. Первым идёт SSD с Windows (sda)(MBR), второй - HDD с не малым количеством разделов, один из которых с Убунту (sdb)(GPT).
4. Ubuntu не видел мои разделы на sda выполнить, что он пуст.
В интернете нашёл, что нужно выполнить

Код Code
1 sudo gdisk / dev/ sda

И этим, как я понял, затереть остатки GPT от старой разметки, но не вайпать MBR. Что я и сделал и это помогло.
4. Под загрузчик при установке выбрал sda .
5. После установки Ubuntu нормально стартует. Windows - не хочет.
6. update-grub не помогает. Выполняется с успехом, но на загрузку не влияет.

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

Ответ: В комбинации Win 7 + Linux, я Linux добавлял в семёрочное бутменю с помощью EasyBCD . Правда у меня они установлены на одном диске. Выглядит так

Вопрос: Установка notepadqq. Ошибка зависимостей


Ставлю notepadqq под debian 8 gnome 3
При установке notepadqq просил меня поставить notepadqq-common. Я поставил.
После этого установка notepadqq шла нормально, но потом появилась вот такая ошибка:
Код Code
1 2 3 4 5 6 7 8 9 10 11 12 13 Распаковывается notepadqq (0.46.2- 0 ~trusty1) … dpkg: зависимости пакетов не позволяют настроить пакет notepadqq: notepadqq зависит от notepadqq- common (>= 0.46.2- 0 ~trusty1) . notepadqq зависит от notepadqq- common (« 0.46.2- 0 ~trusty1.1~) . dpkg : ошибка при обработке пакета notepadqq (-- install) : проблемы зависимостей - оставляем не настроенным Обрабатываются триггеры для desktop- file- utils (0.22 - 1 ) … Обрабатываются триггеры для gnome- menus (3.13.3- 6 ) … Обрабатываются триггеры для mime- support (3.58 ) … Обрабатываются триггеры для man- db (2.7.0.2- 5 ) … При обработке следующих пакетов произошли ошибки: notepadqq
Добавлено через 12 часов 44 минуты
Помогите с установкой или скажите какая есть программа под debian 8 лучше этой и очень похожая на notepad++?

Добавлено через 16 минут
Заново все скачал переустановил и как то встало с 3 раза без ошибок, не знаю в чем была проблема. Наверно в том, что я установил дебиан.

Ответ:

Сообщение от drunkwolfs

Помогите с установкой или скажите какая есть программа под debian 8 лучше этой и очень похожая на notepad++?

Похожей нету, везде чет не так чет не хватает.

Вопрос: Установка программ в Linux Mint в нужную директорию


Доброго времени суток. Извините за может быть нубский вопрос. Не так давно установил Linux Mint 17.3 на довольно старое железо (ноутбук ibm thinkpad 43). Работает терпимо. При установке приложений синаптиком они устанавливаются не очень понятно куда. При установе вручную тоже нет привычного выбора папок для установки (как в винде). А все же хочется знать что куда и как устанавливается... Подскажите плиз есть ли способ выбрать нужную директорию для установки программы, (я так подозреваю что это делается из командной строки) и если да то как.

Ответ: В windows программы ставятся, как правило, в одну папку, где находится сама программа, данные, зависимости, документация и прочее.

В unix-like пакеты распаковываются в разные директории. Исполняемая программа в одну папку, документация для man, например, в другую, где man её может найти, библиотеки в третью папку ставятся, туда, где система их может найти, данные программы тоже отдельно ото всего остального.

dpkg -L <имя_пакета> --- это посмотреть, куда что ставится, если пакет установлен
dpkg -c <имя_файла.deb> --- посмотреть, куда будет ставиться скачанный пакет

dpkg -L coreutils для примера

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

Вопрос: Отсутствует параметр при установке Keystone


После (попытки) установки keystone встал не до конца, установка падает с таким логом
Bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 sudo apt install keystone [ sudo ] password for hagassaan: Reading package lists... Done Building dependency tree Reading state information... Done keystone is already the newest version (2 :13.0.0-6 ) . 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue ? [ Y/ n] Setting up keystone (2 :13.0.0-6 ) ... PKG-Openstack now calling: dbc_go keystone configure dbconfig-common: writing config to / etc/ dbconfig-common/ keystone.conf creating database keystonedb: already exists. ===> opensatck-pkg-tools: writing db credentials: sqlite://// var/ lib/ keystone/ keystonedb ... Running: su keystone -s / bin/ sh -c "keystone-manage db_sync" ... Running: su keystone -s / bin/ sh -c "keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone" ... Running: su keystone -s / bin/ sh -c "keystone-manage credential_setup --keystone-user keystone --keystone-group keystone" ... Module wsgi already enabled Site wsgi-keystone already enabled Sleeping 10 seconds to make sure the keystone daemon is up and running: 10 ...9 ...8 ...7 ...6 ...5 ...4 ...3 ...2 ...1 ...0 ===> Bootstraping tenants with "keystone-manage bootstrap" : Now doing: su keystone -s / bin/ sh -c "keystone-manage bootstrap --bootstrap-role-name admin --bootstrap-service-name keystone --bootstrap-region-id " usage: keystone-manage [ bootstrap| credential_migrate| credential_rotate| credential_setup| db_sync| db_version| doctor| domain_config_upload| fernet_rotate| fernet_setup| mapping_populate| mapping_purge| mapping_engine| saml_idp_metadata| token_flush] bootstrap [ -h] [ --bootstrap-username OS_BOOTSTRAP_USERNAME] [ --bootstrap-password OS_BOOTSTRAP_PASSWORD] [ --bootstrap-project-name OS_BOOTSTRAP_PROJECT_NAME] [ --bootstrap-role-name OS_BOOTSTRAP_ROLE_NAME] [ --bootstrap-service-name OS_BOOTSTRAP_SERVICE_NAME] [ --bootstrap-admin-url OS_BOOTSTRAP_ADMIN_URL] [ --bootstrap-public-url OS_BOOTSTRAP_PUBLIC_URL] [ --bootstrap-internal-url OS_BOOTSTRAP_INTERNAL_URL] [ --bootstrap-region-id OS_BOOTSTRAP_REGION_ID] keystone-manage [ bootstrap| credential_migrate| credential_rotate| credential_setup| db_sync| db_version| doctor| domain_config_upload| fernet_rotate| fernet_setup| mapping_populate| mapping_purge| mapping_engine| saml_idp_metadata| token_flush] bootstrap: error: argument --bootstrap-region-id: expected one argument dpkg: error processing package keystone (--configure) : installed keystone package post-installation script subprocess returned error exit status 2 Errors were encountered while processing: keystone Configuring sandbox profiles.... Sandbox profiles updated! E: Sub-process / usr/ bin/ dpkg returned an error code (1 )

Как я понимаю-я что-то упустил в процессе что-то, связанное --bootstrap-region-id, но как его восстановить? Заранее благодарен

Ubuntu, как и многие другие дистрибутивы Linux в качестве загрузчика системы используют GRUB2. Если GRUB2 «ломается», например, если вы установите Windows после установки Ubuntu, либо при перезаписи MBR - загрузить Ubuntu вы не сможете.

GRUB2 можно запросто починить с помощью Live CD Ubuntu или USB-флешки. Этот процесс отличается от восстановления загрузчика GRUB Legacy на старых дистрибутивах Linux.

Описанный ниже процесс должен работать со всеми версиями Ubuntu. Он был протестирован на версиях Ubuntu 16.04 и Ubuntu 14.04.

Способ с использованием графического интерфейса: Boot Repair###

Boot Repair - приложение с графическим интерфейсом, с помощью которого можно починить GRUB2 всего одним щелчком мыши. Идеальное решение для большинства пользователей.

Если у вас есть носитель, с которого вы устанавливали Ubuntu, вставьте его в компьютер, выполните перезагрузку и загрузитесь со сменного носителя. Если носителя у вас нет, загрузите Live CD Ubuntu и запишите его на диск или создайте загрузочную USB-флешку .

При загрузке, нажмите «Попробовать Ubuntu» (Try Ubuntu), чтобы загрузить работоспособное окружение рабочего стола.

Перед тем как продолжить, убедитесь, что у вас работает подключение к интернету. Возможно, потребуется выбрать сеть Wi-Fi и ввести пароль.

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

Sudo apt-add-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair boot-repair

Boot Repair автоматически просканирует систему после запуска команды boot-repair . После этого, щелкните кнопку Recommended repair для восстановления GRUB2 .

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

Boot Repair начнёт работать. Возможно, появится запрос открыть терминал и скопировать/вставить несколько команд.

Просто следуйте инструкциям на экране. Выполните все инструкции Boot Repair и щёлкните Forward чтобы перейти к следующему экрану. Утилита проведёт вас через все необходимые действия для восстановления.

После того, как Boot Repair закончит работу, перезагрузите компьютер. Ubuntu должна будет нормально запуститься.

Способ с использованием терминала

Если же вы не боитесь «запачкать руки», вы можете починить систему через терминал. Вам потребуется загрузиться с Live CD или USB-флешки, так же, как в способе, описанном выше. Убедитесь, что версия Ubuntu на диске совпадает с версией, установленной на компьютере. Например, если у вас была установлена Ubuntu 14.04, следует использовать Live CD Ubuntu 14.04.

После загрузки системы откройте терминал. Определите раздел диска, на котором установлена Ubuntu с помощью одной из следующих команд:

Sudo fdisk -l sudo blkid

Ниже приводится вывод обеих команд. В случае команды fdisk -l , раздел Ubuntu можно определить по слову Linux в колонке System . В случае использования команды blkid , раздел определяется по использованию файловой системы ext4 .

Если на компьютере имеется несколько разделов Linux в формате ext4 , обратите внимание на их размер и порядок, в котором они представлены в списке.

Выполните следующие команды для монтирования раздела Ubuntu в /mnt/ubuntu , заменив /dev/sdX# на имя устройства, на котором установлен ваш раздел Ubuntu, определенный выше:

Sudo mkdir /mnt/ubuntu sudo mount /dev/sdX# /mnt/ubuntu

На примере выше раздел Ubuntu находится на /dev/sda1 . Это первый раздел на первом жёстком диске.