Grub2 - введение |
Автор статьи: Azteka
Итак, для начала рассмотрим, что из себя представляет GRUB2. GRUB2 хранит свои настройки в трех основных директориях, а именно: 1) /boot/grub/grub.cfg - это основной конфигурационный файл, который пришел на смену menu.lst. В отличие от menu.lst, этот файл крайне не рекомендуется редактировать (о чем в шапке grub.cfg нам и сообщают разработчики, да и особого смысла в этом нет, ниже мы сможем в этом убедиться). В системе данный файл имеет права только на чтение, но ничто нам не мешает эти самые права поменять. Единственное что, эти права будут действительны только до первого обновления нашего GRUB2 или до выполнения одной из команд или "sudo update-grub" или "sudo grub-mkconfig -o /boot/grub/grub.cfg" sudo update-grub для Jaunty Jackalope (9.04) и более ранних версий, так же работает и в Karmic Koala (9.10) sudo grub-mkconfig для Karmic Koala (9.10) и последующих версий Сама по себе команда grub-mkconfig ничего не сделает, кроме как в терминале отобразит результат наших текущих манипуляций и мы сможем увидеть, что будет вписано в файл, если мы будем использовать команду grub-mkconfig с опцией -o. Вывод результата отработки команды grub-mkconfig с опцией -o, мы сможем увидеть в терминале, данный вывод будет выглядеть так же, как если бы мы выполнили "sudo update-grub". Для того, чтобы grub-mkconfig вписал изменения в файл, нам следует использовать опцию -о, + указать путь и название файла, куда наши результаты будут сохраняться. Пример: sudo grub-mkconfig -o /boot/grub/grub.cfg Использование опции -о, позволяет нам сохранять содержимое файла grub.cfg в любую директорию с любым названием, а также будет полезна если мы захотим сделать что то особенное с нашим GRUB2. Мы можем иметь более одного grub.cfg просто давая им разные названия, отличные от grub.cfg. Пример 1: У нас может быть /boot/grub/grub.cfg и /boot/grub/grub.cfg2 и /boot/grub/grub.cfg3 и так далее, если мы конечно этого захотим. А захотеть этого мы можем, к примеру, для смены одного GRUB-меню на другое во время загрузки, т.е. использовать GRUB-меню, которое захотим, игнорируя при этом "родной" grub.cfg. Пример 2: Мы можем сохранить наш /boot/grub/grub.cfg на любой примонтированный раздел, а-ля "выделенный раздел GRUB" (используется при большом количестве дистибутивов) или на USB-диск/флешку. Делается это просто изменением пути файла после опции -о. /etc/default/grub - это редактируемый файл, который содержит в себе настройки меню GRUB2; При запуске команды "sudo grub-mkconfig -o /boot/grub/grub.cfg" или "sudo update-grub", перечитывается содержимое /etc/default/grub и скриптов из /etc/grub.d/, после чего создается/пересоздается файл grub.cfg. В большинстве случаев, мы только обновляем текущий GRUB, поэтому удобнее и быстрее пользоваться sudo update-grub |
Grub2 - выбор OS по-умолчанию |
Автор статьи: Azteka
Вариант 1Для выбора загрузки необходимой нам ОС правим файл /etc/default/grub sudo gedit /etc/default/grub Загружаемая по умолчанию ОС указывается в GRUB_DEFAULT=0, где 0 — первый из перечисленных в /boot/grub/grub.cfg вариантов, 1 — второй и т. д. Сохраняемся, после чего обязательно выполняем: sudo update-grub Пример для тех, кто ничего не понял или понял, но плохо: Необходимая часть моего файла /boot/grub/grub.cfg выглядит таким образом: ### BEGIN /etc/grub.d/10_linux ### Соответственно, для загрузки Windows правим /etc/default/grub таким образом: GRUB_DEFAULT=4 Вариант 2Итак, как мы можем узнать из этой статьи, в строке GRUB_DEFAULT можно указать как номер по порядку, так и точное название ОС, которая будет загружаться по умолчанию. Посему, для выяснения, какая запись по счету нам нужна или ее точное название - необходимо запустить такую команду: grep menuentry /boot/grub/grub.cfg Для выяснения текущего значения, вводим команду: cat /etc/default/grub | grep 'GRUB_DEFAULT=' Следующей командой внесем изменения: sudo sed 's/GRUB_DEFAULT="текущее значение"/GRUB_DEFAULT="новое значение"/g' -i /etc/default/grub Важно - необходимо обратить внимание на вывод двух первых команд, а именно наличие/отсутствие кавычек. Поэтому, лучше всего скопировать необходимые нам данные или из первой или из второй команды и подставить в третью. Не забываем после всего этого запустить: sudo update-grub Вариант 3И, наконец, самый быстрый способ для смены загрузки ОС по умолчанию. Для этого нам необходимо выставить в строке GRUB_DEFAULT= значение saved (GRUB_DEFAULT=saved). Параметр saved выбирает пункт, который был загружен в предыдущий раз. Теперь, для быстрой смены, нам необходимо запускать всего лишь одну команду - grub-set-default. Формат команды следующий: sudo grub-set-default X где X строка по счету, начинающаяся с menuentry файла /boot/grub/grub.cfg или точное название строки меню GRUB2 из той же, начинающейся с menuentry строки. Примеры: sudo grub-set-default 3 - используется 4 строка по счету, начинающаяся с menuentry; И в который раз не поленюсь напомнить, обязательно делаем в конце sudo update-grub. |
Grub2 - файл настроек /etc/default/grub |
Автор статьи: Azteka
В данной статье детально рассмотрим файл настроек меню GRUB2 /etc/default/grub. /etc/default/grub - наиболее схож по своим функциям с файлом menu.lst (GRUB1). Большинство действий по настройке GRUB2 происходит именно здесь. Чтобы редактировать /etc/default/grub, необходимо использовать права администратора. Ниже приведён пример файла /etc/default/grub # If you change this file, run 'update-grub' afterwards to update GRUB_DEFAULT - отвечает за загружаемый по умолчанию пункт меню GRUB2. Параметры в данном пункте могут быть: GRUB_DEFAULT=0 - выбирает пункт, который будет грузиться по умолчанию, согласно заданого порядка в /boot/grub/grub.cfg. Так же, как и в предыдущем GRUB, нумерация пунктов начинается с "0", т.е. первый = 0, второй = 1 и т.д.. В /boot/grub/grub.cfg пункты, которые будут отображаться в меню, начинаются с menuentry. GRUB_DEFAULT=saved - выбирает пункт, который был загружен в предыдущий раз. Если в настройках нашего /etc/default/grub, указано показывать меню, тогда, при выводе меню, наша запись будет подсвечена, и по прошествии времени, указаному в GRUB_TIMEOUT, загружена. - grub-set-default - данный параметр включается при условии выставленного значения saved. Этой командой пользователь может быстро изменить ОС или ядро, которое будет загружаться по умолчанию. Формат команды следующий: sudo grub-set-default X где X строка по счету, начинающаяся с menuentry файла /boot/grub/grub.cfg или точное название строки меню GRUB2 из той же, начинающейся с menuentry строки. Примеры: sudo grub-set-default 3 - используется 4 строка по счету, начинающаяся с menuentry; GRUB_DEFAULT="xxxx" - так же, можно использовать точное название пункта меню, обязательно включая все сопутствующие знаки (такие как кавычки, запятые и т.д.). В таком случае порядок по счету не имеет значения. Пример: GRUB_DEFAULT="Ubuntu, Linux 2.6.31-17-generic" Небольшие хитрости: Чтобы выяснить какая запись по счету нам нужна или точное название такой записи, достаточно запустить такую команду grep menuentry /boot/grub/grub.cfg Чтобы оперативно изменить строку, которая будет загружаться по умолчанию, мы можем править значение в строке GRUB_DEFAULT следующим образом: Выясняем текущее значение cat /etc/default/grub | grep 'GRUB_DEFAULT=' Вносим изменения sudo sed 's/GRUB_DEFAULT="текущее значение"/GRUB_DEFAULT="новое значение"/g' -i /etc/default/grub Важно - необходимо обратить внимание на вывод двух первых команд, а именно наличие/отсутствие кавычек. Поэтому, лучше всего скопировать необходимые нам данные или из первой или из второй команды и подставить в третью. Не забываем после всего этого запустить sudo update-grub GRUB_TIMEOUT="10" - По сути, секция не претерпела изменений по сравнению с первым Grub и отображает время в секундах, через которое автоматически загрузится выбранный по умолчанию пункт меню. - Выбор значения "-1" будет означать, что меню будет отображаться, до тех пор, пока пользователь сам не выберет пункт меню для загрузки; Данная команда имеет определенную зависимость от команды GRUB_HIDDEN_TIMEOUT. Если выполнение GRUB_HIDDEN_TIMEOUT будет прервано нажатием кнопки SHIFT, тогда GRUB_TIMEOUT начнет свой отчет, равный количеству указанных в нем секунд. Внимание: Нажатие кнопки SHIFT не отобразит меню, если в GRUB_TIMEOUT установлен параметр "0". Небольшие хитрости: По аналогии с командами быстрой смены строки, которая будет грузиться по умолчанию, мы также можем изменить время отображения меню GRUB2. Соответственно, проверяем текущее значение командой cat /etc/default/grub | grep 'GRUB_TIMEOUT=' После чего заменяем на нужное нам sudo sed 's/GRUB_TIMEOUT="текущее значение"/GRUB_TIMEOUT="новое значение"/g' -i /etc/default/grub Важно - необходимо обратить внимание на вывод первой команды, а именно наличие/отсутствие кавычек, лучше всего просто скопировать вывод первой команды и подставить во вторую. Не забываем после всего этого запустить sudo update-grub GRUB_HIDDEN_TIMEOUT=0 - если этот параметр не закомментирован (строка не начинается с символа #), загрузочное меню не будет отображено. Первоначальные настройки этой строки, зависят от наличия других ОС. Если система определит наличие другой ОС - тогда, при загрузке, будет отображаться меню GRUB2, в обратном случае, меню будет скрыто, а сама строка закомментирована. Значение параметра в строке является целым (int) (по умолчанию "0"). Если выставлено значение больше нуля, меню не будет отображено, но будет пауза размером в заданное число секунд, во время которой пользователь может вызвать меню загрузки нажатием клавиши ESC. При выставленном значение "0", будет остутствовать задержка при загрузке и не будет отображаться меню GRUB2. Но, даже при выставленном значении "0", пользователь может заставить загрузчик отобразить меню. Для этого необходимо во время загрузки удерживать клавишу SHIFT. Во время загрузки система проверяет наличие статуса прерывания кнопкой SHIFT. И если данный статус не определяется, тогда срабатывает небольшая задержка, в процессе которой, пользователь может отобразить меню путем нажатия кнопки ESC. GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` - данная строка отвечает за названия дистрибутива, которое будет отображаться в меню GRUB2 (Ubuntu, Xubuntu, Debian, и т.д.) GRUB_CMDLINE_LINUX - значение этого параметра будет передано в конец строки linux (в старой версии GRUB эти параметры употреблялись в строке kernel) как при нормальной загрузке, так и при загрузке в режиме восстановления. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" - назначение такое же, как и строки, указанной выше, но только для режима нормальной загрузки. Является аналогом defoptions из menu.lst. Если мы хотим в процессе загрузки видеть черный экран, на котором будет отображен процесс загрузки в тексте - нам следует удалить "quiet splash". Для того, чтобы увидеть заставку (по умолчанию, значек Убунту на черном фоне) + краткое текстовое сопровождение - используем параметр "splash". GRUB_TERMINAL=console - расскоментируйте данную строку, и это позволит отключить графический терминал (grub-pc only). Данный прием будет полезен тем, что отключение графического режима может существенно увеличить скорость работы меню (прокрутка, отзывчивость). GRUB_DISABLE_LINUX_UUID=true - раскомментируйте, если вы не хотите, чтобы GRUB передавал вашей системе параметр "root=UUID=xxx". GRUB_GFXMODE=640x480 - этот пункт отвечает за разрешение графического меню GRUB2. Данный параметр предоставляет разрешение, которое поддерживается видеокартой пользователя (например: 640x480, 800x600, 1024x768, 1600×1200 - для соотношения сторон 4:3. И 640x400, 800x500, 1024x640, 1280x800, 1680x1050 - для широкоформатных мониторов с соотношением сторон 16:10). Настройки применимы только для меню загрузки. Так же у нас есть возможность увидеть все доступные разрешения для экрана из меню GRUB2. Для этого, находясь в меню, жмем "с", затем в строке grub> пишем vbeinfo. Если строка GRUB_GFXMODE=640x480 закомментирована или выбранное разрешение недоступно, тогда GRUB2 использует настройки по умолчанию, определенные скриптом /etc/grub.d/00_header. Несколько советов: GRUB_DISABLE_LINUX_RECOVERY=true - для того, чтобы избежать появления в меню режима Recovery, добавьте (если отсутствует) или раскомментируйте данную строку. Если вам нужен режим Recovery только для конкретно взятого ядра - вам будет нужно создать необходимую запись в скрипт /etc/grub/40_custom. GRUB_DISABLE_OS_PROBER="true" - Включает/выключает проверку скриптом /etc/grub.d/30_os-prober наличия на других разделах операционных систем, включая такие как Windows, Linux, OSX и Hurd. |
Grub2 - восстановление |
Автор статьи: Azteka Итак, это произошло...вы убили свой GRUB2, хотя, может и не убили, а он убитый пришел (с). В любом случае, у вас возник вопрос, как же его переустановить. Ниже я опишу 3 способа, как это можно сделать.
Способ 1 (проще не бывает)Это самый быстрый и легкий способ восстановить испорченные/битые/установленные не правильно/затертые установкой windows/называйте как хотите файлы GRUB2. Для этого нам потребуется: а) Терминал - 1 шт.; Наши действия. Мы загрузимся с LiveCD, примонтируем наш злосчастный раздел и, затем, скопируем необходимые файлы с LiveCD. 1. Загружаемся с LiveCD и выбираем пункт "Запустить Ubuntu без установки на компьютер" 2. Определяем, на каком из наших дисков установлена Ubuntu. Для этого открываем Терминал (Applications, Accessories, Terminal) и выполняем команду sudo fdisk -l 3. Итак, с диском мы определились, теперь нам надо его примонтировать sudo mount /dev/sdXY /mnt *примечание: sdXY - где X - диск в системе (sda, sdb, sdc и т.д.) и Y - раздел диска (первый раздел - 1, второй -2 и т.д.). Пример: sudo mount /dev/sda1 /mnt **примечание: если у вас раздел /boot вынесен отдельно, тогда ваша команда должна выглядеть так: вначале создадим папку sudo mkdir /mnt/boot, затем монтируем sudo mount /dev/sda1 /mnt/boot, не забудьте учесть это при выполнении последующих команд. 4. Следующей командой запустим установку GRUB2. sudo grub-install --root-directory=/mnt/ /dev/sdX Пример: sudo grub-install --root-directory=/mnt/ /dev/sda 5. Перегружаемся 6. Не забываем обновить меню GRUB2 командой sudo update-grub Способ 2 - копируем файлы GRUB2 с уже установленного разделаЧто же это за способ? Этот способ подразумевает под собой, что GRUB2 установлен корректно, но не на тот раздел, на который следовало бы (как пример, Ubuntu установлена второй системой рядом с Windows, причем Windows находится на одном диске (sda), а Ubuntu на другом (sdb)). Посему мы будем копировать файлы из /boot/grub на выбранный нами диск и MBR. 1. Загружаемся с LiveCD и выбираем пункт "Запустить Ubuntu без установки на компьютер" 2. Монтируем раздел с установленной Ubuntu. Для этого, в меню "Places", кликаем на необходимый нам раздел (в данном случае выбранный нами раздел, автоматически примонтируется в /media). 3. Раздел примонтирован. Теперь переустановим GRUB2. Делается это так: sudo grub-setup -d /media/XXXX/boot/grub /dev/sdX *примечание: XXXX - ваш UUID или метка тома, sdX - где X - диск в системе на который мы будем перезаписывать GRUB2(sda, sdb, sdc и т.д.). Переписывать UUID крайне не удобно, поэтому можно упростить себе жизнь следующим образом. В меню "Places" выбираем наш диск, после чего слева нажимаем иконку с изображением карандаша, выделяем и копируем (CTRL-SHIFT) в адресной строке адрес, и вставляем (CTRL-SHIFT-V) в Терминал. Пример: sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub /dev/sda Если при выполнении данной команды вам выдаст ошибку "error: Cannot open /boot/grub/device.map", в таком случае следует добавить ключ -m и указать путь к файлу device.map sudo grub-setup -d /media/XXXXX/boot/grub -m /media/XXXXX/boot/grub/device.map /dev/sdX Пример: sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub -m /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub/device.map /dev/sda Если вам опять выкинуло ошибку "error: Cannot open /boot/grub/device.map", не отчаивайтесь, просто теперь вам надо перезагрузить компьютер. 4. Если вы не перезагружали компьютер, тогда это следует сделать сейчас. 5. После перезагрузки не забываем обновить GRUB2 командой sudo update-grub Способ 3 - CHROOTЯ не буду останавливаться на пояснениях, что такое chroot и с чем его едят. Об этом можно найти много информации в интернете. Перейдем, непосредственно к тем действиям, которые мы должны совершить. Итак. 1. Загружаемся с LiveCD и выбираем пункт "Запустить Ubuntu без установки на компьютер" 2. Открываем Терминал (Applications, Accessories, Terminal). 3. Определяем, на каком из наших дисков установлена Ubuntu. sudo fdisk -l 4. Монтируем раздел с установленной Ubuntu sudo mount /dev/sdXY /mnt Пример: sudo mount /dev/sda1 /mnt 5. Монтируем диски: sudo mount --bind /dev/ /mnt/dev 6. Монтируем proc: sudo mount --bind /proc/ /mnt/proc 7. Теперь зайдем в примонтированную систему как root: sudo chroot /mnt 8. Если по каким либо причинам в примонтированной нами системе (/mnt или, в случае отдельного раздела с /boot, /mnt/boot) отсутствует или поврежден файл /boot/grub/grub.cfg, тогда следует запустить команду update-grub 9. Переустанавливаем GRUB2 grub-install /dev/sdX Не забываем вместо Х указать диск, на который вы хотите установить GRUB2. 10. Выходим из chroot exit или же комбинацией клавиш Ctrl+D 11. Теперь отмонтируем все, что мы примонтировали ранее. Делать это надо в таком порядке: sudo umount /mnt/dev Если у вас /boot находится на отдельном диске, тогда его отмонтируем следующим, в противном случае вы получите сообщение об ошибке "device busy" sudo umount /mnt/boot *примечание: Выполняем только в случае отедельно вынесенного /boot Отмонтируем нашу систему sudo umount /mnt 12. Перегружаем компьютер. |
Сдача квартир в наем в последнее время стала очень популярной. Это и долгосрочная и посуточная аренда. Но аренда квартир без посредников Подмосковье будет выгодна как хозяевам жилья, так и квартирантам. Зачем платить больше!
Кстати, если выведение грызунов стало насущной проблемой для вашего жилья, компания Сангиг справится с ней. Также можно побороть кротов, осаждающий сам возле загородного дома.