Не загружается linux чиним загрузчик grub

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

Содержание

GRUB — это основной загрузчик Ubuntu начиная с версии 9.10. Ранее он был известен как GRUB2 и пришёл он на смену старой версии GRUB, известной теперь как GRUB Legacy. Если вам необходимо восстановить GRUB Legacy, например поскольку у Вас стоит версия Ubuntu старше 9.10, то вам необходимо прочитать соответствующую статью.

На любом загрузочном винчестере есть так называемая Главная загрузочная запись (англ. master boot record, MBR), к которой обращается BIOS при загрузке компьютера. В эту область загрузчик системы и должен записать информацию об основных файлах, которые хранятся уже на разделах винчестера.

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

Первый способ

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

На экран должна быть выведена примерно такая таблица:

Из таблицы видим, что Linux (загрузочный /-корень отмечен звёздочкой) стоит, в нашем случае, на разделе /dev/sdc1.

Теперь подключим этот раздел в /mnt следующей командой (следим за пропусками между кодами и порядковыми номерами разделов):

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

В случае, если нужно только восстановить MBR диска (например, после переустановки Windows), то этого достаточно, закрываем терминал и перезагружаем.

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

Восстановление используя chroot

Запустите систему с LiveCD/USB и откройте терминал. Для этого можно нажать Alt + F2 и ввести команду:

Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

На экран должна быть выведена примерно такая таблица:

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:

Теперь перейдем в окружающую среду chroot:

Теперь необходимо установить GRUB, используя команду:

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

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

Теперь необходимо отмонтировать разделы:

Если Вы монтировали раздел /boot воспользуйтесь командой:

Затем перезагрузим Ваш компьютер командой:

При необходимости Вы можете обновить меню загрузчика командой:

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

При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела. Как известно, Grub состоит из двух частей. Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела. В rescue mode доступно всего четыре команды:

Вначале следует дать команду:

В ответ она выведет, например, следующее:

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

Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) — первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов — с 1. Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1). Даем команду:

Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:

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

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

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

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

Источник

Настройка и восстановление загрузчика Grub

Уже поздно, а завтра вам предстоит напряженный день. Поэтому вы сохранили выполненную работу и уже выключили свой компьютер. А завтра, когда вы снова включите его, ваше сердце упадет, когда увидите сообщение: » Kernel panic . » или » Grub error xx «, при этом ваша машина откажется загружаться.

Что же делать в этой ситуации? Хорошая новость заключается в том, что результатом получения одного из этих сообщений является программная ошибка. Вы можете исправить ее, отредактировав конфигурационный файл или же переустановив программу-загрузчик. Оба этих действия нетрудно выполнить, но только в том случае, если вы хорошо представляете себе, что вы должны получить в конечном результате. Поэтому для начала нам потребуется немного вводной информации. Я постараюсь объяснить все как можно проще.

Процесс загрузки

Когда вы включаете компьютер, процессору необходимо знать, какую последовательность действий ему следует выполнять. На материнской плате хранится список устройств, с которых компьютер может загрузиться. Этот список задает порядок загрузки (жесткие диски, флеш-карты, usb-устройства), то есть, в какой очередности следует выполнять запрос на загрузку с них. Процессор пробует загрузиться с устройства, указанного первым в этом списке. Он переходит в самое начало устройства в поисках дополнительной информации. Любое из этих устройств разбито на маленькие области, называемые секторами, и процессор ищет на устройстве хранения его первый сектор, который называется Главная Загрузочная Запись (Master Boot Record или сокращенно — MBR). Помимо секторов, устройство может быть разбито на большие части, называемые разделами, при этом разделы состоят из определенного количества секторов. Первый сектор любого раздела также является загрузочным и называет аналогично — загрузочный сектор ( boot sector ). Сектор является минимальной единицей деления жесткого диска на части, поэтому в одном секторе (в том числе — и загрузочном) информации может храниться совсем немного. Ровно столько, чтобы указать процессору, где он может найти программный код, с помощью которого можно выполнить процесс загрузки. Таким образом, процессор может выполнять загрузку все системы в целом.

Программа загрузки, используемая операционной системой PCLinuxOS, называется Grub (GRand Unified Bootloader). Код этой программы разбит на две части. Одна часть хранится в главной загрузочной записи (MBR) и называется stage1 . Вторая часть загружается в оперативную память компьютера (ОЗУ) после выполнения первой части и называется stage2 .

Stage2 запускает ядро ( kernel ) операционной системы и создает в оперативной памяти компьютера временную файловую систему, в которую загружает различные программные коды, такие как модули и драйверы устройств. Эти коды необходимы ядру для успешного выполнения загрузки системы. Для создания временной файловой системы в ОЗУ используется заранее созданный образ файловой системы, называемый initial ram disk или сокращенно initrd.img .

Читайте также:  Windows enterprise server licensing

К сожалению, здесь у нас есть проблема. Заключается она в следующем. С одной стороны, мы имеем файл stage2 , который знает, где располагается ядро ( kernel ) и образ ( initrd.img ) файловой системы, но файл stage1 ничего не знает о существовании каких-либо файловых систем. Рассмотрим пример файла stage1_5 . Существует несколько видов данного файла, имя каждого из которых отображает тип файловой системы, для которой он предназначен, например, e2fs_stage1_5 или reiserfs_stage1_5 . Код stage1_5 в этих файлах является связующим мостом, но он должен быть найден файлом stage1 . К счастью, благодаря способу расположения разделов на жестком диске, после первого зарезервированного сектора каждого раздела всегда имеется несколько свободных секторов, в которых и размещается дополнительный код. Файл stage1 «знает» о том, что всегда необходимо «заглянуть» во второй сектор корневого раздела и после выполнения кода, помещенного там, загрузчик Grub может найти необходимые данные в файловой системе.

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

Примерно так обстоят дела с загрузкой в системе PCLinuxOS. Однако то, о чем было вкратце описано выше, является неполной картиной всех процессов, происходящих в системе Grub. Более того, этот способ далеко не единственный, применяемый для загрузки операционных систем.

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

Приведем общую картину загрузки компьютера, применимую к дистрибутивам PCLinuxOS, но несколько отличную для других операционных систем. К примеру, Ubuntu и все дистрибутивы Linux, основанные на Ubuntu, на сегодняшний день используют загрузчик Grub2, алгоритм работы которого отличается от представленного здесь.

Как мы узнали ранее, загрузчику Grub необходимо знать три вещи, с помощью которых он сможет загрузить операционную систему:

  • где размещено ядро операционной системы;
  • где находится образ файловой системы;
  • на каком жестком диске или разделе располагаются файлы stage1_5 и stage2 .

Вся эта информация, предоставляемая загрузчику Grub, находится в его конфигурационном файле, который в операционной системе PCLinuxOS располагается по пути /boot/grub/menu.lst . В других операционных системах этот файл называется grub.conf . Если настройки, прописанные в этом файле, содержат ошибку, то загрузчик Grub не сможет найти ядро или образ файловой системы, а неверно указанный корневой раздел приведет к ошибке » Kernel panic «.

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

Для восстановления операционной системы можно загрузиться с LiveCD-диска, который использовался для установки PCLinuxOS на жесткий диск. С оптического диска система PCLinuxOS загрузится в оперативную память ОЗУ, после чего можно будет исправить любой поврежденный файл на жестком диске компьютера.

Поиск поврежденного файла

Первое, что необходимо знать, это — на каком жестком диске и на каком разделе данного жесткого диска установлена операционная система PCLinuxOS. И загрузчик Grub поможет нам в этом вопросе. После загрузки LiveCD-диска на компьютер, открываем терминал и получаем права администратора (root) командой:

У вас будет запрошен пароль суперпользователя. Это пароль администратора (root) системы, но не пароль вашей пользовательской учетной записи. После того, как вы зайдете под учетной записью root, помните о том, что необходимо быть предельно осторожным при вводе любой команды в терминале, так как пользователь root обладает абсолютными правами. Он может все, поэтому любая ошибочная команда приведет к краху системы.

Затем вводим команду:

В результате произойдет переход в командную оболочку загрузчика Grub, где можно выполнить переустановку резидентной части Grub. Оболочка Grub имеет ограниченный набор поддерживаемых команд, список которых можно просмотреть, нажав клавишу «Tab».

Теперь приступим к поиску резидентной части Grub, файла stage2 . В строке приглашения введем команду:

Отобразится список разделов, на которых расположен файл stage2 . В большинстве случаев этот список будет состоять только из одного раздела, но если на вашем компьютере настроена мультизагрузка нескольких операционных систем Linux, то все эти разделы будут отображены в терминале. Все найденные разделы представлены в виде записи (hd0,0) или похожей на нее, так как Grub не понимает отображение разделов в виде hda1 или sda1 . Он видит разделы только как устройства. Порядковый номер устройств в Grub начинается с нуля, а не с единицы. В записи (hd0,0) первое значение hd0 — это порядковый номер устройства (жесткого диска), а второе значение (после запятой) 0 — это порядковый номер раздела на этом жестком диске. Поэтому запись вида (hd0,0) расшифровывается как — «первый жесткий диск, первый раздел этого жесткого диска». Введем команду quit , чтобы выйти из оболочки Grub.

Теперь, когда мы знаем, на каком жестком диске и на каком разделе этого диска установлена операционная система, можно подмонтировать его, чтобы зайти внутрь. Я подразумеваю, что (hd0,0) — это первый раздел первого жесткого диска. В терминале, оставаясь под учетной записью root, ввожу команду:

В вашем случае, если жесткий диск имеет интерфейс IDE, необходимо изменить наименование этого диска с sda на hda . Если вы вдруг не знаете, какой интерфейс имеет ваш жесткий диск, введите в терминале команду fdisk -l , чтобы увидеть список все найденных в системе устройств.

Вернемся к двум предыдущим командам. Первой из них было создано устройство с именем а , второй командой раздел /dev/sda1 был смонтирован на устройство а . Таким образом, теперь ядро ( kernel ) и образ файловой системы ( initrd ) PCLinuxOS располагаются по пути /a/boot . Как правило, имена ядер и образов файловой системы достаточно длинные и сложные, чтобы их набирать в командной строке. Поэтому проще ввести ссылки (ярлыки), чтобы получить список этих файлов. Имена ядер ( kernel ) начинаются со слова vmlinuz , а имена образов файловой системы ( initrd ) начинаются со слова initrd . Отобразим в терминале список этих двух файлов, введя две команды:

В этом списке имена, оканчивающиеся на символ @ являются ссылками, которые можно использовать в конфигурационном файле загрузчика Grub.

Присвоение ярлыков разделам

В моем случае вывод показал две ссылки с именами vmlinuz и initrd . Теперь я также знаю, что корневым разделом у меня является (hd0,0) . В своей практике я нашел очень удобным применение ярлыков для разделов. Например, введя команду tune2fs -L kde4 , тем самым я задаю для своего корневого раздела ярлык kde4 . На моем компьютере все разделы имеют ярлыки, созданные таким образом. Однако, если командная строка является для вас неудобной, вы можете воспользоваться графическим интерфейсом Control Center в операционной системе PCLinuxOS. Для этого перейдите в главном меню «Local disks — Manage disk partitions — Expert Mode», где можно задать ярлыки для ваших собственных разделов.

Читайте также:  Где найти bluetooth windows 10

Конфигурационный файл

У меня все готово для восстановления конфигурационного файла menu.lst . Я буду пользоваться текстовым редактором командной строки nano, который очень прост в использовании. С его помощью удобно редактировать файлы, но если вы предпочитаете любой другой текстовый редактор, вам нужно помнить одно — он должен уметь сохранять файл в виде чистого текста, без форматирования. Открываю файл menu.lst на установленной операционной системе PCLinuxOS:

В оригинале данный файл выглядит следующим образом:

Содержимое этого файла не является таким сложным, как выглядит на первый взгляд. Первые четыре строки служат для настройки меню Grub, три нижеследующих блока являются пунктами меню, называемые иначе stanza (строфа). Каждая из этих строф содержит только три строки (настройки типографики могут сделать перенос строки на данной web-странице, но все равно — их три). Стоит также отметить, что форматирование текста в файле menu.lst несет в себе важный функционал. Другими словами, файл menu.lst чувствителен к форматированию — если все будет задано в нем верно, но не выдержан формат самого текста внутри файла (отступы, пробелы и т. п.), то это будет считаться ошибкой в данном файле и Grub может не запуститься.

Три строки начинаются со слов title , kernel и initrd . Каждая из этих строк является достаточно длинной, а строка kernel — самая длинная из всех трех. В строфе (stanza) могут присутствовать дополнительные строки, помимо вышеназванных, но все они также должны представлять из себя одну строку, каждая в отдельности.

Добавление нового пункта в меню Grub

Я собираюсь добавить в файл menu.lst новую stanza (пункт меню) в самое начало, то есть между строками, первой из которых является default 0 , а вторая начинается как title linux :

При добавлении нового пункта меню (stanza) необходимо оставлять перед строфой и после нее одну пустую строку, так как иначе загрузчик Grub не будет знать, где заканчивается одна запись и начинается другая.

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

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

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

Что все это значит

Четыре первые строки в файле menu.lst выполняют следующие функции.

Команда Timeout = 10 устанавливает временной промежуток, в течении которого загрузчик Grub будет ожидать действий пользователя, которые укажут ему, какой пункт меню загружать. Если он не дождется такого указания в течении установленного времени, то будет произведена загрузка пункта меню, установленного по умолчанию. А если такой не определен в конфигурационном файле, то первого по списку пункта меню. Чтобы остановить счетчик времени, достаточно нажать любую клавишу на клавиатуре.

Команда Color white/blue yellow/blue устанавливает цветовую раскраску текстового меню (в которое можно войти, нажав клавишу «Esc», если в данный момент вы находитесь в графическом меню Grub. Просто иногда бывают случаи, когда вам потребуется войти в текстовое меню загрузчика). Первая пара значений задает цвета переднего (foreground) и заднего (background) фона всего меню, а вторая пара служит для установки цветов выделенного пункта меню.

Команда gfxmenu (hd0,0)/boot/gfxmenu указывает загрузчику Grub, где располагается графическое меню.

Команда default 0 устанавливает пункт меню для загрузки по умолчанию, при этом отсчет ведется с нуля.

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

Добавление параметра aplash=silent vga=788 в конец этой строки позволит установленной графической теме Plymouth скрыть строки текста, появляющиеся на экране монитора при загрузке системы. Число 788 является разрешением монитора, которое наиболее оптимально для большинства компьютеров.

Если вы намереваетесь использовать режим гибернации («спящий режим») при выключении своей машины, вам необходимо указать загрузчику Grub, где находятся данные, нужные для восстановления сессии. Такие данные хранятся на разделе подкачки ( swap ), поэтому этот раздел должен быть немного больше оперативной памяти (ОЗУ) компьютера по размеру. В этом случае режим гибернации будет выполняться без ошибок. Если, к примеру, раздел подкачки на вашем жестком диске располагается по адресу /dev/sdb1 , то в конце строки kernel необходимо добавить параметр resume=/dev/sdb1 . Мы можем указать раздел таким образом, так как Grub распознает файловые системы и записи устройств к тому моменту, когда они появятся в этом конфигурационном файле.

Установка PCLinuxOS по умолчанию предлагает три пункта меню загрузчика.

  • Первый пункт предоставляет полностью графическое меню загрузки, вплоть до окна входа в систему.
  • Второй пункт называется linux-nonfb или каким-либо иным похожим образом. Он выполняет загрузку системы без графической заставки, что позволяет видеть все системные сообщения во время ее загрузки. Такой способ может быть полезен при неполадках в системе. Процесс загрузки можно приостановить в любой момент нажатием клавиши ScrollLock на клавиатуре.
  • Последний третий пункт называется failsafe . Фактически он также служит для контроля неполадок в системе. В этом режиме система загружается в однопользовательскую командную оболочку, внутри которой можно выполнять некоторые административные задачи, такие как проверка файловой системы или смена пароля root. Когда все необходимые задачи будут выполнены, вводим в командной строке init 5 , что вернет нас обратно к окну входа в систему.

Все три вышеназванных режима можно включить, добавив одну из перечисленных ниже команд в строку kernel между параметром kernel и параметром корневой раздел root :

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

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

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

С помощью встроенной команды поиска find найдите разделы, на которых располагаются файлы Grub:

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

Проверьте, правильный ли вы выбрали раздел:

Читайте также:  Ispmanager windows server 2019

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

Все, задачу мы выполнили. Вводим команду quit для выхода из оболочки Grub.

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

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

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

Теперь у нас будет два файла с именем menu.lst , один из которых располагается в директории /boot/grub раздела, на который установлена операционная система, и второй — оригинальный файл. В своем примере я использую раздел /dev/sda5 , который загрузчик Grub воспринимает как раздел (hd0,4) . На этот раздел у меня установлена операционная система ZenMini. В оригинальный файл menu.lst я добавляю следующие строки:

Теперь, при перезагрузке компьютера, если я выберу этот пункт в меню Grub, то будет осуществлено перенаправление в новое меню, в котором будут пункты, относящиеся к вновь установленной операционной системе ZenMini. В результате у меня имеется файл menu.lst на разделе с установленной операционной системой, который полностью идентичен оригинальному файлу menu.lst , с одним единственным различием — раздел (hd0,0) заменен на раздел (hd0,4) , что позволяет управлять операционными системами более легко. Строфа в файле menu.lst системы ZenMini выглядит следующим образом:

А здесь представлена часть оригинального файла menu.lst :

Такое построение загрузки нескольких операционных систем мне кажется наиболее простым и легким для дальнейшей ее поддержки.

Добавление загрузки Windows

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

Обратите внимание: необходимо изменить раздел (hd0,2) на тот, на котором установлена операционная система Windows.

Команда rootnoverify аналогична команде root . Она информирует Grub о месторасположении следующей части загрузочного кода, но при этом не предпринимает попытки монтировать указанный раздел, так как для Grub это невозможно сделать.

Команда makeactive делает указанный корневой раздел активным (загрузочным).

Команда chainloader +1 «говорит» загрузчику Grub перейти на второй сектор указанного раздела в поисках загрузочного кода, так как первый раздел всегда зарезервирован файловой системой.

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

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

Причиной ошибки при загрузке компьютера может быть опечатка, допущенная вами в конфигурационном файле Grub при его правке, или ошибка самого текстового редактора, который разбил одну длинную строку на две короткие и Grub не может понять, как ее читать. Прямо из командной оболочки Grub можно отредактировать эту строку. Для этого выберите в меню загрузчика тот пункт с операционной системой, которая «не хочет» загружаться, с помощью клавиш-стрелок на клавиатуре и затем последовательно нажмите клавиши «E» и «Enter». Если после этого снова нажать клавишу «E», то выбранная строка поместиться в командную оболочку Grub, где ее можно отредактировать. При первоначальном открытии для редактирования курсор будет находиться в самом конце строки, но его можно переместить с помощью клавиш-стрелок или же клавиш «Home» и «End». После внесения изменений в строку нажмите клавишу «Enter», чтобы сохранить их или же клавишу «Esc» для выхода из режима редактирования без сохранения изменений. Если редактор испортил изменяемую строку, то можно удалить ее полностью, нажав клавишу «D».

Затем нажмите клавишу «B» для загрузки видоизмененной строки. Изменения остаются только в оперативной памяти ОЗУ компьютера и не затрагивают файл menu.lst . Таким образом, строку можно изменять до тех пор, пока не будет достигнута успешная загрузка операционной системы.

Если вы не видите в строках никаких ошибок, то не отчаивайтесь, еще не все потеряно. Нажмите клавишу «C» для перехода в режим командной строки Grub, который аналогичен тому, который мы получали в терминале для переустановки загрузчика.

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

Для того, чтобы найти файл ядра kernel на данном разделе, необходимо переместиться в директорию /boot . Для этого мы воспользуемся функцией автодополнения команд в оболочке Grub. Имя файла ядра операционной системы имеет вид vmlinuz-что-то-там-еще .

. и нажмем клавишу «Tab». Этим мы скажем Grub, чтобы он дозаполнил введенную команду теми возможными способами, которые ему доступны на данный момент. Иными словами, мы ввели начало имени файла vmlinuz . Grub сам просмотрит директорию /boot в поисках ядра (так как это мы указали ему командой kernel ) и выведет ниже в отдельную строку все варианты, которые ему кажутся приемлемыми для завершения команды — в данном случае это имена файлов vmlinuz и vmlinuz-2.6.32.11-pclos2 :

Мы уже знаем, что файл vmlinuz является ссылкой, в то время как другой файл vmlinuz-2.6.32.11-pclos2 представляет из себя физическое ядро операционной системы. Которое мы можем использовать в дальнейшем, так как ссылка на него может быть поврежденной. Для того, чтобы добавить это имя в командную строку, нет необходимости вводить его полностью. Просто добавляем дефис и снова нажимаем клавишу «Tab», чтобы Grub сам дополнил все остальное. Такой способ позволяет избежать ошибок при вводе имени файла.

Кажется, все работает, поэтому переходим дальше и выполняем те же действия для файла initrd :

Видим, что Grub имеет всю необходимую ему информацию, поэтому мы можем попытаться загрузить операционную систему:

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

В заключение нужно сказать следующее. Все приведенные выше примеры работы с загрузчиком Grub безопаснее всего производить (в качестве тренировки) на операционной системе, установленной под виртуальной машиной VirtualBox. Установка и настройка такой машины проста и существует прекрасная статья, описывающая данный процесс, в октябрьском выпуске за 2008 год журнала PCLinuxOS. Статья написана редактором этого журнала parnote. В ней рассматривается установка операционной системы Windows под VirtualBox, но принцип остается одинаковым и полностью применим к инсталляции PCLinuxOS.

Источник

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