Linux BootPrompt-HowTo
2. Преглед на опциите за стартиращ низ
Този раздел предоставя примери за няколко програми, които могат да се използват за предаване на аргументи за зареждане на ядрото към самото ядро. Той също така обсъжда как се обработват параметрите, какви ограничения съществуват върху параметрите за зареждане и как те се предават на подходящото устройство.
Важно е да запомните, че интервалите не могат да се използват в параметрите за зареждане, а само между отделните аргументи. Списъкът със стойности за един аргумент трябва да бъде разделен със запетаи между стойностите и отново без интервали. Вижте примера по-долу.
След като ядрото на Linux се зареди и стартира, можете да видите опциите на командния ред, зададени при зареждане, като просто напишете /proc/cmdline.
2.1 LILO (LInux Loader)
Често използваната програма е LILO (LInux LOader -- Linux loader), написана от Werner Almesberger. Той може да зарежда различни ядра и съхранява информация за конфигурацията в обикновен текстов файл. Повечето дистрибуции идват с LILO като зареждащо устройство по подразбиране. LILO може да стартира DOS, OS/2, Linux, FreeBSD и т.н. без никакви проблеми. и е доста гъвкав.
Типична конфигурация ще постави LILO на пауза и ще отпечата LILO: след като компютърът е включен. След това изчаква няколко секунди потребителят да въведе допълнителни параметри и, ако няма такива, зарежда системата по подразбиране. Типичните системни етикети, които хората използват в конфигурационен файл, са linux, backup и msdos. Ако искате да въведете параметър за стартиране, направете го веднага след системния етикет на дяла, от който искате да стартирате, както е показано в примера по-долу:
LILO идва с отлична документация, включително дискутираните тук опции за стартиране, от които особеноважната команда LILO append= е необходима, когато някой ще добави параметър за зареждане като постоянно добавяне към конфигурационния файл на LILO. Просто добавяте нещо като append = "foo=bar" към /etc/lilo.conf. Това може да се направи в началото на конфигурационния файл, като се прилага за всички дялове или за един системен дял, като добавите image= вътре в секцията. Вижте документацията на LILO за по-пълно описание.
2.2 Натоварване
Друг широко използван буутлоудър на Linux е „LoadLin“, програма за DOS, която стартира ядрото на Linux от командния ред на DOS (с опции за зареждане). Това е особено полезно за хора, които използват DOS и искат да стартират Linux от DOS.
Също така е полезно, ако имате хардуер, който използва DOS драйвер за настройка на определено състояние. Често срещан пример са "съвместими със SoundBlaster" звукови карти, които изискват DOS драйвер да настрои определени регистри на картата в SB съвместим режим. Стартирането на DOS с предоставения драйвер и след това стартирането на Linux от подканата на DOS с LOADLIN.EXE ще предотврати нулирането на картата, което се случва при нормално рестартиране. По този начин картата остава в SB съвместим режим и следователно може да се използва под Linux.
Има няколко други програми, които могат да се използват за зареждане на Linux. За пълен списък вижте списъка с налични програми на вашия локален Linux ftp огледален сървър, в директорията system/Linux-boot/.
2.3 Помощната програма ``rdev''
Повече информация за rdev можете да намерите, като напишете rdev -h или като прочетете предоставената страница с ръководство ( man rdev ).
2.4 Как ядрото избира параметри
Повечето опции за зареждане изглеждат така:
където `name' е уникална ключова дума, идентифицираща частта от ядрото, към коятосвързани стойности (ако са няколко). Няколко параметъра за зареждане се предават просто като списък с параметри в горния формат, разделени с интервали. Имайте предвид, че ограничението от 11 стойности е реалистично, тъй като съществуващият код на ключова дума обработва само 11 параметъра, разделени със запетая. (Въпреки това, в специални трудни ситуации, можете да използвате повторно същата ключова дума с още 11 параметъра, ако се приеме, че сетерът я поддържа.) Също така не забравяйте, че ядрото разделя списъка на максимум десет цели аргумента и следващия низ, така че всъщност не можете да подадете 11 цели числа, освен ако не преобразувате 11-ия параметър на низа в цяло число директно в самия драйвер.
По-голямата част от филтрирането се извършва в linux/init/main.c. Ядрото първо проверява дали опциите са една от специалните опции `root=', `ro', `rw' или `debug'. Целта на тези специални параметри ще бъде описана по-късно в този документ.
След това ядрото преминава през списъка с функции за настройка (намерени в масива bootsetups), търсейки съвпадение между даден низ от параметри (като `foo') и функция за настройка (foo_setup()) за конкретно устройство или част от ядрото. Ако подадете низа foo=3,4,5,6,bar на ядрото, ядрото ще провери дали `foo' е регистрирано в масива на bootsetups. Ако е така, ядрото ще извика функцията за настройка, свързана с „foo“ (foo_setup()) и ще й предаде целочислените стойности 3, 4, 5 и 6, посочени в командния ред на ядрото, както и лентата с параметри на низа.
2.5 Задаване на променливи на средата
Ако нещо от формата `foo=bar' не се приема от настройката, както е описано по-горе, то се интерпретира като настройка на променлива на средата. Пример за това е приложениетоTERM=vt100 или BOOT_IMAGE=vmlinuz.bak като опции за зареждане. Тези променливи на средата обикновено се проверяват от скриптове за инициализация, за да се активира или деактивира голям набор от опции.
2.6 Предаване на параметри към програмата `init'
Всички останали опции, които не са избрани от ядрото и не се интерпретират като променливи на средата, ще бъдат предадени на по-нататъшна обработка, която обикновено се извършва от програмата init. Най-често срещаният параметър, предаван на процеса на init, е единствената дума, която казва на init да стартира компютъра в режим на един потребител и да не стартира всички обикновени демони. За списък с приемливи опции вижте страницата с ръководство за версията на init на вашия компютър.