- 6 шагов загрузки Linux на пальцах
- 1. BIOS
- 2. MBR
- 3. GRUB
- 4. Ядро или Kernel
- 5. Init
- 6. Уровень выполнения программ (Runlevel)
- Дополнения, исправления, уточнения
- Загрузка и установка системы прямо из iso-образа
- Содержание
- Загрузка утилитой UNetbootin
- Загрузка с образов Alternate или Desktop
- Загрузка с образа Alternate
- Загрузка с образа Desktop
- Загрузка с помощью grub-imageboot и MemDisk
- Ubuntu не грузится, как исправить
- Система Ubuntu не загружается
- Entering rescue mode
- Восстановление поврежденных разделов ubuntu
- Восстановление grub
- Заключение
6 шагов загрузки Linux на пальцах
Нажмите кнопку включения питания на вашем системнике, и спустя несколько секунд вы увидите окно входа в систему.
Посмею предположить, что каждого интересовало хоть когда-либо то, что происходит за занавесом заставок и загрузочных экранов с момента включения питания компьютера к моменту, когда предлагается войти в систему.
Я предлагаю вам познакомиться со следующими уровнями типичной загрузки Linux:
1. BIOS
2. MBR
3. GRUB
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
initrd /boot/initrd-2.6.18-194.el5PAE.img
4. Ядро или Kernel
5. Init
6. Уровень выполнения программ (Runlevel)
- Когда Линукс выполняет свою загрузку, вы можете наблюдать загрузку различных служб. К примеру, это могут быть сообщения типа «starting Postfix … OK» (запускается Postfix). Эти службы — и называются программами уровня выполнения, выполняемые из директории, которая соответствует нужному уровню выполнения.
- Исходя из настроек по умолчанию, система будет выполнять файлы в соответствии с нижеприведенными директориями.
- Выполнение уровня 0 – /etc/rc.d/rc0.d/
- Выполнение уровня 1 – /etc/rc.d/rc1.d/
- Выполнение уровня 2 – /etc/rc.d/rc2.d/
- Выполнение уровня 3 – /etc/rc.d/rc3.d/
- Выполнение уровня 4 – /etc/rc.d/rc4.d/
- Выполнение уровня 5 – /etc/rc.d/rc5.d/
- Выполнение уровня 6 – /etc/rc.d/rc6.d/
- Но имейте ввиду, что еще в каталоге /etc могут быть символические ссылки. Например, /etc/rc0.d залинкован на /etc/rc.d/rc0.d.
- В каталогах /etc/rc.d/rc*.d/ вы можете увидеть список программ, имя которых начинается из букв S и K.
- Программы, начинающиеся на S используются для запуска. S, потому что startup.
- Программы, которые начинаются с литеры K используются — правильно — для завершения работы. K, потому что kill.
- Еще есть номера рядом с буквами S и K в именах программ. Эти номера используются для определения порядка запуска этих программ.
- К примеру, S12syslog предназначен для запуска демона syslog, его порядковый номер 12. S80sendmail — для запуска демона sendmail, имеющего порядковый номер 80. Таким образом, программа syslog будет запущена перед sendmail.
Вот и все. Возможно, некоторым из вас это не ново и особого интереса не было при чтении статью, поскольку она более ориентирована на начально-средний уровень знакомства з Линуксом.
В таком случае могу лишь сказать, что «повторение — мать учения» (с).
Дополнения, исправления, уточнения
В комментариях неоднократно было апеллировано к тексту статьи, поэтому, думаю, стоит учесть некоторые важные комментарии хабрасообщества. (спасибо artemlight, 3al, Tishka17, HhyperH, Next_Alex, Ilya_Shmelykh, Aux, soomrack, Xpeh )
- artemlight:: «Ну скажем прямо — так грузятся далеко не все дистры». С ним согласилось большинство, отмечая и bsd-style init, u-boot, и хоть initrd в статье пропущен, стоить заметить, что он нужен ядру не во всех дистрибутивах. Также отмечено, что в slackware поддержка rc.d осуществляется только в качестве совместимости, а встраиваемые системы грузятся иначе. На декстопах иногда бывает EFI, а кроме того Linux популярен в мире embedded и там ещё куча разных платформ. Линукс в телефоне вообще иначе грузится.
- soomrack, ссылая на википедию: Еще хочется сделать замечание по поводу MBR, первого сектора и пр. Все несколько усложнилось за последние годы. Сейчас уместней говорить о EFI.
Источник
Загрузка и установка системы прямо из iso-образа
Содержание
Если у вас есть iso-образ установочного диска Ubuntu и есть уже установленная система, то для того, чтобы загрузить установщик Ubuntu, имеющийся iso даже не обязательно записывать на cd-диск — вы можете загрузиться и произвести установку непосредственно из iso-образа. Для этого вам потребуется установленный загрузчик GRUB2, через который мы и будем загружаться.
Сложность состоит в том, что загрузочное устройство с образом должно быть примонтировано как отдельный носитель. Если жёсткий диск только один, и нет ни cdrom, ни флешки, то решить проблему можно двумя способами, описанными ниже:
Если же есть другой жёсткий диск, то используйте третий способ.
Загрузка утилитой UNetbootin
Запустить и задать способ установки:
В пункте «Тип» выбираем «Жёсткий диск». Далее нажать «OK» и перезагрузить компьютер. В меню Grub появятся пункты, из них верхний «UNetbootin» будет загружать заданный образ.
При повторном запуске утилиты она спросит, удалить ли установленный в корне диска образ. (В текущей версии утилита может удалить не всё, оставив в корне диска пустые папки.)
Загрузка с образов Alternate или Desktop
Загрузка с образа Alternate
В нашем примере iso-образ будет называться «ubuntu-9.10-alternate-i386.iso» и лежать в папке
/iso, которая находится на отдельном home-разделе. Приступим!
Перезагрузите компьютер и дождитесь появления загрузочного меню grub2. Если вместо меню обычно отображается надпись «grub loading…» — нажмите в этот момент Esc . Попав в меню, нажмите C , чтобы перейти в консоль grub2. Здесь мы и будем орудовать.
Монтирование iso-образа производится командой
самое интересное здесь — (hd0,6). Первая цифра обозначает номер жесткого диска, где 0 — первый жесткий диск (/dev/sda в Linux), 1 — второй (/dev/sdb) и т.д. вторая цифра обозначает номер раздела на диске, здесь нумерация начинается с единицы. То есть «hd0,6» соответствует разделу номер 6 на первом жестком диске (или же /dev/sda6). Дальше следует полный путь к файлу, начиная от корня файловой системы.
После монтирования iso-образа можно для проверки выполнить команду
среди всего прочего должно появиться устройство (loop) . Если оно есть — установим его в качестве корневого раздела, т.к. именно с него мы будем загружаться:
Данная операция завершится не сразу, т.к. размер установочного iso-образа тоже не мал. По завершении появится сообщение о том, что задан корневой раздел (loop) с файловой системой iso9660. Теперь осталось совсем немного. загрузите ядро такой командой:
Теперь нужно загрузить initrd-образ, содержащий в себе сам установщик и все необходимое для его работы:
Если все хорошо — даем команду на загрузку:
После этого замелькают строчки загрузки и через несколько секунд вы увидите знакомый синий экран alternate-установщика. Если все прошло успешно — установщик найдет нужные файлы без лишних вопросов. Если же все остановится на этапе «поиск и монтирование cdrom» — где-то что-то не получилось 🙂
P.P.S. Поскольку содержимое iso-образа распаковывается в оперативную память, рекомендуется наличие как минимум гигабайта таковой.
Загрузка с образа Desktop
Сначала скачайте куда-нибудь образ Ubuntu Desktop. Я загрузил Ubuntu Lucid amd64 Desktop образ, переименовал его в ubuntu.iso и положил в корень sda7 раздела. Главное запомните полный путь до образа от корня раздела и номер этого самого раздела. Можно перезагружаться.
На самом деле проще всего положить образ Ubuntu на флешку, которая определиться в GRUB как (fd0). Но в этом случае возможно разумней будет сделать Live Flash из iso образа с помощью встроенной в Ubuntu утилиты создания загрузочных флешек.
При загрузке компьютера когда появится меню GRUB нажмите клавишу C . Вы попадёте в консоль GRUB. Наберите
Появится список всех ваших разделов. Найдите там нужный, в моём случае он будет называться (hd0,7). hd0 — это обычно sda, hd1 — sdb, и т.д. 1)
Поставив нужный вам диск и полный путь до iso образа ubuntu. Если всё успешно сработало, то пишем
Далее грузим ядро Linux командой
Не забудьте поменять путь до образа!
Всё, можно загружаться. Даём команду
и ждём, пока загрузится LiveCD Ubuntu.
Загрузка с помощью grub-imageboot и MemDisk
Есть способ загружать образ имея лишь один жёсткий диск, за счёт того, образ будет смонтирован на виртуальный диск, созданный в памяти.
Поэтому рекомендуется использовать другой простой способ с утилитой UNetbootin, описанный в соседнем разделе.
Для работы пригодится утилита grub-imageboot:
Источник
Ubuntu не грузится, как исправить
В данной статье постараюсь рассмотреть некоторые типовые ошибки, связанные с загрузкой системы. Бывает так, что сервер с Ubuntu по какой-то причине не загружается из-за поврежденного загрузчика или еще каких-то проблем. Я покажу методику, как решать подобные проблемы с запуском, а заодно расскажу, как можно быстро восстановить систему.
Система Ubuntu не загружается
Рассмотрим, с чем в первую очередь может быть связана проблема с загрузкой системы. Вот список наиболее вероятных причин:
- Первое самое очевидное — у вас сломался жесткий диск, на который установлена система. Тут все ясно и починить вряд ли что-то получится. Надо менять диск и переустанавливать на новый диск систему. Далее не буду рассматривать этот случай.
- Возникли проблемы с загрузчиком grub, который запускается перед загрузкой основной системы. Вы в него попадаете, но дальше видите какие-то ошибки, чаще всего связанные с тем, что не найден корневой раздел системы, поэтому загрузка невозможно. С этими же проблемами вы можете оказаться в режиме recovery mode, где можно выполнить какие-то действия.
- У вас поврежден загрузчик, с которого начинается загрузка системы после старта компьютера. Это небольшая область в начальных секторах жесткого диска. Если с загрузчиком проблемы, то загрузка даже не начинается и вы сразу получаете ошибку на тему того, что с данного жесткого диска невозможно загрузиться.
Далее я отдельно рассмотрю второй и третий случаи. Начнем со стандартного режима восстановления grub.
Entering rescue mode
Итак, в случае проблем с загрузкой Ubuntu вы можете оказаться в режиме grub rescue.
Это может символизировать как простую ошибку, которую легко исправить, так и серьезные проблемы. Рассказываю, что нужно делать в таком случае и как починить загрузку системы.
Первым делом запускаем команду ls и смотрим, какие разделы у нас доступны.
В моем случае доступен только один 3-й раздел, скорее всего корневой. Раздела /boot, который обычно 1-й или 2-й нет. Проверим это наверняка. Смотрим содержимое доступного раздела:
По содержимому раздела видно, что это корневой. Самого раздела /boot, с которого должна начинаться загрузка ubuntu тут не видно. Если его никто специально не удалял и не затирал, то он пропал в результате какого-то сбоя или ошибки. Можно попробовать это исправить. Сделаем это отдельно ниже, а пока рассмотрим случай, когда boot раздел тут все же присутствует и имеет имя, к примеру, (hd0,gpt2). Тогда там же в консоли grub продолжаем.
Далее загружаем некоторые модули. Какие будут нужны, точно не известно и зависит от типов разделов диска. Показываю самые популярные:
Можно для начала попробовать вообще без модулей, а потом добавлять по одному. В самом конце загружаем модуль normal.
После этого у вас должно открыться стандартное меню загрузки Ubuntu. Если это так, то вам повезло. Дальше загрузится система. Вам нужно будет в нее зайти и далее перейти в раздел по восстановлению grub в этой статье. Получилось так, что у вас сам загрузочный раздел жив, но сбились его настройки, поэтому он сам не смог загрузить основную систему. Это не трудно исправить и ниже я показываю как.
Восстановление поврежденных разделов ubuntu
Если же у вас вообще не найден раздел для загрузки, надо попробовать его восстановить. Для этого загружаемся с установочного диска Ubuntu и на первом экране инсталлятора выходим в консоль через раздел Help.
Вы окажетесь в консоли системы, которая по сути является livecd сервера. В целом, тут подойдет любой livecd дистрибутив с linux. Эта система видит все подключенные диски и вообще все оборудование. Первым делом вам надо настроить выход в интернет на сервере так же, как вы это делаете обычно. После этого нужно обновить пакеты и установить утилиту testdisk. С ее помощью мы попробуем найти исчезнувший загрузочный раздел.
Запускаем утилиту и указываем, что будем создавать новый log файл.
Выбираем диск, на котором у нас установлена система. В моем случае это sda.
В качестве partition table type сначала укажите Intel. Если не получится ничего найти, попробуйте еще раз с другими типами.
Дальше выбираем Analyze.
И запускаем Quick Search.
У меня testdisk нашел 2 раздела, причем первый это boot раздел, который по какой-то причине исчез.
Из-за его отсутствия виртуальная машина с ubuntu не грузилась. Далее выбираю первый раздел и восстанавливаю его с помощью testdisk. Записываю изменения и выхожу в консоль. Проверяю с помощью fdisk разделы диска /dev/sda.
Появился первый загрузочный раздел. По идее я выполнил восстановление boot раздела. Теперь можно проверить, запустится ли система. Для этого отключаем установочный диск и загружаемся с основного.
В случае, если все загрузилось, вам повезло. Отделались малой кровью. Если же ubuntu не загружается, а вы опять попадаете в grub rescue, значит придется еще потрудиться над восстановлением загрузки системы. Будем восстанавливать сам grub.
Восстановление grub
Продолжаем восстановление загрузки ubuntu. Сам /boot раздел мы вернули, но загрузчик grub почему-то не работает и система не грузится. Загружаемся опять с установочного диска и переходим в консоль. Напомню, что у меня такая картина по разделам:
Первый раздел это /boot, второй корень / . Смонтируем их в /mnt, а так же добавим несколько системных директорий.
Теперь чрутимся в /mnt, чтобы оказаться в нашей системе:
И уже отсюда восстанавливаю загрузчик grub:
По идее, ошибок получить не должны. Если получили, то гуглите их. Надо обязательно их решить, иначе система так и не начнет загружаться корректно.
Теперь выходим отсюда и перезагружаем сервер. Вынимаем установочный диск и загружаемся с основного диска. У меня пошла загрузка.
Давайте еще раз повторим все, что мы сделали:
- Мы увидели, что система не грузится и валится в grub rescue. Загрузчик не может найти раздел, с которого продолжить загрузку. Мы попробовали в rescue console посмотреть все имеющиеся разделы и не нашли там boot. Если же нашли, то сразу же загрузились с него.
- После этого загрузились с загрузочного диска ubuntu, перешли в консоль. Установили утилиту testdisk и просканировали наш диск. Нашли пропавший раздел, восстановили /boot. Если раздел не нашли, то создали вручную.
- После этого смонтировали к livecd системе локальные диски, зачрутились в эту систему и штатно восстановили grub загрузчик.
- После этого система нормально загрузилась.
Заключение
В целом, мы выполнили типовую процедуру восстановления загрузки любого linux сервера, в том числе ubuntu. Если бы раздел boot не получилось восстановить, его нужно было бы создать вручную и проделать все то же самое с восстановлением grub. Это ключевой элемент загрузки linux. Система перестает загружаться чаще всего из-за проблем с ним. Он может быть поврежден установкой рядом других систем или неправильной разбивкой диска.
Важно понимать, что если корневой раздел системы жив, то восстановление непосредственно загрузки — дело техники. Чаще все это все исправляется и система продолжает работать.
Источник