MBR и първа, втора и трета стъпка за зареждане

MBR за FreeBSD е /boot/boot0. Това е копие на MBR, тъй като истинският MBR трябва да се намира на специално място на диска, извън зоната на FreeBSD.

Пример 7-1. Примерен екран за зареждане 0

F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Устройство 1 По подразбиране: F2

Известно е, че други операционни системи, като Windows® 95, презаписват съществуващия MBR със свой собствен. Ако това се случи във вашия случай или ако искате да замените съществуващия MBR с FreeBSD MBR, използвайте следната команда:

# fdisk -B -b /boot/boot0device

Тук устройството е устройството, от което зареждате, като ad0 за първото устройство >ad2 за първото устройство >da0 за първото SCSI устройство и т.н.

Въпреки това, ако използвате Linux и предпочитате процесът на зареждане да се контролира чрез LILO, можете да редактирате файла /etc/lilo.conf за FreeBSD или да изберете Оставете основния запис за зареждане недокоснат по време на инсталационния процес на FreeBSD. Ако сте инсталирали мениджъра за стартиране на FreeBSD, тогава можете да стартирате Linux отново и да промените конфигурационния файл /etc/lilo.conf за LILO, като добавите следната опция:

other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD

Концептуално, първата и втората стъпка за зареждане са част от една и съща програма, в една и съща област на диска. Те са разделени на две поради ограничения на дисковото пространство, но винаги трябва да ги инсталирате заедно.

boot1 е много прост, тъй като той също може да бъде малък от 512 байта и знае достатъчно за дисковия етикет на FreeBSD, който съдържа информация за слайса, за да намери и изпълни boot2.

boot2 е малко по-сложен и може да работи с файловата система FreeBSD в достатъчен обемза намиране на файлове в него и може да предостави прост интерфейс за избор и предаване на контрола на ядрото или буутлоудъра.

Пример 7-2. Примерно зареждане на екран 2

>> FreeBSD/i386 СТАРТИРАНЕ По подразбиране: 0:ad(0,a)/ядро зареждане:

Ако някога се наложи да замените инсталираните boot1 и boot2, използвайте помощната програма disklabel(8).

# disklabel -B дисков фрагмент

Тук diskslice е дискът и срезът, от който стартирате, като ad0s1 в случай на първия срез на първия IDE диск.

Прехвърлянето на контрола към буутлоудъра е последната, трета стъпка в процеса на зареждане, а самият буутлоудър се намира във файловата система, обикновено като /boot/loader.

Буутлоудърът е лесен за използване инструмент за персонализиране с прост набор от команди, управляван от по-мощен интерпретатор с по-сложен набор от команди.

По време на инициализацията буутлоудърът се опитва да търси конзолата, дисковете и да определи от кой диск е стартиран. Съответно, той задава стойностите на променливите и стартира интерпретатора, към който могат да се предават потребителски команди както от скрипта, така и в интерактивен режим.

След това товарачът чете файла /boot/loader.rc, който по подразбиране е файлът /boot/defaults/loader.conf, задавайки подходящи стойности по подразбиране за променливи, и чете файла /boot/loader.conf, за да промени тези променливи. Тогава loader.rc работи с тези променливи, зареждайки избраните модули и ядрото.

Накрая, по подразбиране, буутлоудърът спира за 10 секунди, изчаквайки натискане на клавиш и зарежда ядрото, ако не го направи. Ако чакането е прекъснато, на потребителя се представя подкана, която приема прост набор от команди, коитопотребителят може да променя стойностите на променливите, да разтоварва всички модули, да зарежда модули и накрая да продължи процеса на зареждане или да рестартира машината.

Следват най-често използваните команди на буутлоудъра. Пълно описание на всички налични команди може да бъде намерено в помощната страница за командата loader (8).

Продължава да зарежда ядрото, освен ако не бъде прекъснато в рамките на определеното време в секунди. Той извежда брояч, а интервалът по подразбиране е 10 секунди.

зареждане [ -опции] [име на ядрото]

Продължете да зареждате посоченото ядро, ако е посочено такова, и с посочените опции, ако има такива.

Стартирайте отново същия процес на автоматично конфигуриране на модули въз основа на променливи, който беше извършен по време на зареждането. Това има смисъл, ако преди това сте изпълнили командата unload, променили сте някои променливи, например най-често променяното ядро.

Отпечатване на помощни съобщения от файла /boot/loader.help. Ако индексът на думата е посочен като тема, тогава се показва списък с налични теми.

включва име на файл.

Изпълнете файла с даденото име. Файлът се чете и съдържанието му се интерпретира ред по ред. Грешка води до незабавно прекъсване на командата за включване.

зареждане [ -t тип ] име на файл

Зарежда ядро, модул на ядрото или файл от посочения тип с указаното име. Всички аргументи след името на файла се предават на файла.

ls [-l] [маршрут]

Изброява файловете в посочения път или в основната директория, ако не е зададен път. Ако е посочена опцията -l, размерите на файловете също ще бъдат показани.

Показва се списък с всички устройства, от които могат да се зареждат модули. Ако е указана опцията -v, се показва допълнителна информация.

Показва списък със заредени модули. Ако е указана опцията -v, се показва допълнителна информация.

Извежда посочения файл, с пауза на всеки ред извежда LINES.

Извършете незабавно рестартиране на машината.

задаване на променлива, задаване на променлива = стойност

Задава променливите на средата на буутлоудъра.

Премахване на всички заредени модули от паметта.

Ето няколко примера за практическо използване на буутлоудъра:

За да стартирате ядрото си нормално, но в режим на един потребител:

За да разтоварите обикновените ядра и модули и след това просто да заредите старото си (или друго) ядро:

разтоварване зареждане kernel.old

Можете да използвате kernel.GENERIC за препратка към стандартното ядро, което идва на инсталационния диск, или kernel.old за препратка към предишно инсталирано ядро ​​(след като сте надстроили или конфигурирали ново ядро, например).

Забележка: За да заредите обикновените си модули с различно ядро, използвайте следните команди:

unload set kernel="kernel.old" boot-conf

За да заредите скрипт за конфигурация на ядрото (автоматизиран скрипт, който прави това, което обикновено правите в конфигуратора на ядрото по време на зареждане):