- 6 шагов загрузки Linux на пальцах
- 1. BIOS
- 2. MBR
- 3. GRUB
- 4. Ядро или Kernel
- 5. Init
- 6. Уровень выполнения программ (Runlevel)
- Дополнения, исправления, уточнения
- Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Re: Как запустить линукс?
- Загрузка ОС Linux без загрузчика
- Введение
- Требования
- Входные данные
- Получаем и настраиваем своё ядро
- Сборка ядра
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.
Источник
Как запустить линукс?
При первом запуске ASPLINUX 10 проводится проверка ядра и практически зависает. Устанавливали и для простого пользователя и для серванта. Может это серийная болячка? Что мне делать?
Re: Как запустить линукс?
Попробуй из параметров ядра убрать rhgb.
Re: Как запустить линукс?
Что это такое и где это найти?
Re: Как запустить линукс?
Загрузчик grub или lilo?
Re: Как запустить линукс?
Что значит «проводится проверка ядра и практически зависает»?
Re: Как запустить линукс?
я устанавливаю линукс, написано, что установка успешно завершена, затем компьютер перезагружается, затем идёт загрузка звукового драйвера пишит ок, затем пишет проверка ядра, и всё!
Re: Как запустить линукс?
Жди больше времени
Re: Как запустить линукс?
Для начала, ответь на вопрос UVV и опиши железо.
Re: Как запустить линукс?
ждала больше часа
Re: Как запустить линукс?
проц AMD ATHLON-64 3000+ сокет 939, M/B GigaByte ULTRA-9, ВИНТ 160 Gb SATA-II 300 Seagate Barracuda, ВИДЕОКАРТА 128Mb
DDR Gigabyte GV-NX66T128VP ОПЕРАТИВКА Original SAMSUNG DDR DIMM 256 Mb
Re: Как запустить линукс?
мистика какая-то: сначало звук, а потом ядро. напиши сюда текст ошибки или последнюю строчку, что видешь: боюсь, что вы там напереводили.
Re: Как запустить линукс?
Звуковой драйвер ОК Проверка ядра и курсор моргает
Re: Как запустить линукс?
А процессор в каком режиме работает? В 64 или 32 бита?
Re: Как запустить линукс?
>мистика какая-то: сначало звук, а потом ядро
Нет никакой мистики. Пишет, что проверка _параметров_ ядра.
У вас скорее всего GRUB установился (на ASP10 он по-умолчанию).
Когда появится меню загрузщика, нажмите `a’ и уберите из параметров vga=что-то_там и rhgb, а также добавьте 3 и жмите Enter. Посмотрим что будет.
Re: Как запустить линукс?
> У вас скорее всего GRUB установился (на ASP10 он по-умолчанию).
А разве там не какойто свой ASPLoader? Или то в 9-ке было?
Re: Как запустить линукс?
>разве там не какойто свой ASPLoader? Или то в 9-ке было?
В 10-ке тоже есть, но по-умолчалке — GRUB.
Re: Как запустить линукс?
> ждала больше часа
По тебе — не надо было ставить asp, надо было ставить получше дистрибутив.
Re: Как запустить линукс?
64. По умолчанию.
Re: Как запустить линукс?
Может в этом и проблема? У ASP нет версии под x86-64, только под 32-битные процессоры. Попробовать отключить 64 бита?
Re: Как запустить линукс?
Э-э-э, а разве можно отключить 64 бита?
Re: Как запустить линукс?
Может можно? Просто я не сталкивался с amd64 :)))
Re: Как запустить линукс?
> CPU AMD ATHLON-64 3000+ (ADA3000) 512Kb/ 1000МГц Socket-939
Вот ответ на твой вопрос — сборка ASP под 64 бита стоит около 6 тысяч.
Поэтому советую взять RedHat (Fedora).
Re: Как запустить линукс?
> Попробовать отключить 64 бита?
Нахрен? Использование 64-битных регистров в 32-битном режиме регулируется наличием префикса.
Источник
Загрузка ОС Linux без загрузчика
Введение
Здесь по возможности я постараюсь как можно проще и детальнее ответить на вопрос:
«Как можно загрузить Linux (на примере ubuntu) без использования загрузчика такого как GRUB 2, iELILO»
Здесь не будет разбираться как запустить/установить Ubuntu в режиме [UEFI only]. Для этого обратитесь сюда help.ubuntu.ru/wiki/установка_дистрибутива_на_компьютер_с_efi
и сюда help.ubuntu.ru/wiki/lubuntu-osinstallation
Все действия будут производиться на уже работающей системе.
Для того, чтобы воспользоваться данной возможностью необходимо соблюсти некоторые требования.
Требования
1. UEFI вместо BIOS (выставить режим [UEFI only]);
2. OS 64-bit;
3. Linux (Kernel >= 3.3);
Входные данные
Установленный дистрибутив lubuntu-13.04-desktop-amd64 с выставленным режимом [UEFI only]. Отключил Fast Boot (После завершения можно включить).
Полученная таблица разделов
Необходимо обратить внимание на 1 раздел, с него и будет осуществляться прямая загрузка ядра без участия отдельного загрузчика (например GRUB 2), предъявляемые к нему требования:
- Выставленный флаг boot;
- Рекомендуемый размер до 512 МБ (встречал разные рекомендации каким он должен быть размером, в основном это 200-300 МБ, от себя замечу, что на деле он будет занят на 5.3 МБ);
- Файловая система fat32/fat16/fat12 (UEFI имеет поддержку);
данный раздел не обязательно должен идти первым, главное, соблюсти требования выше (от себя советую поставить первым).
Подготовительные этапы выполнены, мы имеем работающую 64 битную операционную систему с выставленным режимом UEFI only и разделом для ядра (в данный момент там расположен GRUB, рядом мы положим ядро).
Получаем и настраиваем своё ядро
Загружаем ОС, открываем консоль.
Для того, чтобы ядро могло загрузиться без использования загрузчика, ему необходимо указать диск который будет монтироватся в качестве корневого, чтобы это сделать, нужно собрать своё ядро и указать ему опцию
у меня ОС установлена на диске sda2.
Обычно эту строку передаёт загрузчик GRUB вместе со многими другими параметрами
Замечание
На сайте разработчика Ubuntu написано, что если вы используется не оригинальное ядро, а собрали его сами, то им будет трудно вам оказать поддержку и отчёты об ошибках не присылайте. (https://help.ubuntu.com/community/Kernel/Compile)
Получим необходимые инструменты (может занять продолжительное время)
Теперь создадим директорию в которой будем совершать все действия, я назову папку v2, что будет символизировать модификацию последнего ядра системы.
Получить исходники последней версии ядра и подготовить окружение
Перейдём в папку linux-3.8.0
Теперь приступим к модификации конфигурации ядра
После выполнения последней команды вначале будет выведено уведомление:
Здесь как раз указано, что редактируем конфигурацию для 64 битного ядра, вводим Y, жмём ввод и получим окно
теперь открываем поиск (клавиша ‘/’), вводим cmdline и жмём ввод и видим то, что на скриншоте
затем жмём цифру 2 и переходим к правке параметра ‘Built-in kernel command line’, жмём ‘y’ и в данном поле выставляется звёздочка, символизирующая, что данный режим включен, теперь переходим на поле которое ниже, жмём ввод и вводим в него заветное
Эта и есть та самая опция, ради которой всё затевалось (Вместо sda2 подставьте свой диск).
Мы получили данный конфиг:
На этом этапе я остановился, собрал ядро, порадовался, что всё так просто и при загрузке свежесобранного ядра получил ошибку, что ядро не может найти корневой раздел (собственно это, ради чего весь процесс сборки ядра и затевался). Я долго недоумевал что же к чему и даже попробовал указать диск в формате UUID, но стабильно получал ошибку:
В процессе гугления выяснил, что драйвер дисковой системы должен быть встроен в ядро, а он был подключён модулем. В следствии чего ядро при загрузке немогло найти вообще жёсткий диск и рапортовала об этом ошибкой, что диск примонтировать не удалось.
Теперь необходимо установить ещё некоторые опции ядра.
Водим в консоль (запустите ещё одну)
и полученный вывод вставляем в окно ввода на сайте
Debian GNU/Linux device driver check page
жмём check, получаем:
из этого списка нам нужно включить драйвер дискового контроллера, в моём случае это ahci (Строка ‘Sata Controller’, Столбец ‘Driver’).
Снова жмём ‘/’ для поиска и вводим ‘ahci’. Для верности отмечаем все три найденных варианта для встраивания SATA_AHCI_PLATFORM, SATA_ACARD_AHCI и SATA_AHCI.
Теперь выбираем везде ‘exit’, в конце соглашаемся, сохраняем настройки выбором Yes. После чего в консоле отказываемся от редактирования конфигураций для других платформ, ибо они нам не нужны.
Сборка ядра
Теперь остаётся только подождать пока ядро будет собрано. В зависимости от мощности вашего компьютера зависит время сборки ядра, на моей машине процесс сборки занял чуть менее часа.
После сборки копируем полученное ядро на загрузочный раздел в папку ‘EFI/boot’, т.к раздел примонтирован к папке /boot/efi, в результате имеем путь /boot/efi/EFI/boot/
Теперь необходимо скопировать ядро в эту папку дав ему название bootx64.efi
Стоит отметить, что загрузка с использованием загрузчика GRUB всё равно будет доступна, стоит только переключить в UEFI (нажать del или F12 при загрузке). Это может пригодиться, если ядро по каким либо причинам не загрузилось.
Теперь необходимо сообщить UEFI о том, что мы хотим сделать загрузочным наше ядро, для этого нужно установить программу которая умеет редактировать настройки UEFI.
Убедимся, что у Вас есть доступ к UEFI переменным
Если отработало без ошибок, делаем последний штрих. Добавим наше ядро в UEFI с приоритетом на загрузку №1, название в кавычках после —label можете ввести своё. Регистр в пути к загрузчику не имеет значения, т.к он не регистро-зависимый.
Теперь в меню загрузки UEFI добавлена новая строчка с названием ‘Linux’, которая осуществляет прямую загрузку ядра. На этом всё. Можно перезагрузить компьютер и убедиться, что ядро загружается минуя загрузчик.
Чтобы убедиться, что ядро загружено вами собранное, введите
Вы увидете список параметров, передаваемых ядру при загрузке (мы их сами указали ранее):
Цель достигнута! Спасибо за внимание!
UPD:
Спасибо пользователю ValdikSS за ценное замечание. Достичь поставленную цель можно гораздо проще. Пересобирать ядро в данном случае нет необходимости. Его можно скопировать на FAT раздел вместе с initrd (из дириктории /boot) и указать загрузчику правильные параметры:
Источник