Във FreeBSD главният запис на начално зареждане (MBR) е зареден в /boot/boot0. Това е копие на записа на начално зареждане, като истинския главен запис на начално зареждане (MBR) трябва да бъде поставен на специална част от диска, извън района на FreeBSD.
boot0 е много прост, откакто програмата в MBR може да бъде само 512 байта като размер. Ако сте инсталирали главния запис за първоначално зареждане (MBR) на FreeBSD и сте инсталирали повече от една операционни системи на вашия твърд диск, тогава ще видите екран подобен на този, който се появява по време на първоначалното зареждане:
Други операционни системи, в частен план Windows® 95, са направени така, че да презаписват съществуващия MBR с техен собствен. Ако това се случи на вас, или вие искате да заместите ваш съществуващ MBR с FreeBSD MBR тогава използвате следната команда:
# fdisk -B -b /boot/boot0 device
Когато device е устройството, от което правите първоначалното зареждане, като например ad0 за първия IDE диск, ad2 за първия IDE диск на втория IDE контролер, da0 за първия SCSI диск, и така нататък.
Ако вие сте Linux потребител, както обикновено, и предпочитате LILO да контролира процесът на първоначално зареждане, вие можете да редактирате /etc/lilo.conf файла за FreeBSD, или изберете Leave The Master Boot Record Untouched през инсталационния процес на FreeBSD. Ако сте инсталирали FreeBSD мениджър за първоначално зареждане (boot manager), вие можете да направите обратно първоначално зареждане в Linux, като модифицирате LILO конфигурационния файл /etc/lilo.conf и да добавите следната опция:
other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD
Което ще позволи първоначалното зареждане на FreeBSD и Linux през LILO. В нашия пример, ние използваме XY, за да определим номера на устройствата и дяловете. Ако използвате SCSI устройство, вие ще искате да смените /dev/hdXY да четем нещо подобно на /dev/sdXY, което отново използва XY синтаксисът. loader=/boot/chain.b може да бъде оптимизирано, ако двете операционни системи са на едно и също устройство. Сега вие можете да стартирате /sbin/lilo -v, за да предадете на съхранение вашите нови промени в системата, което би трябвало да бъде изразено със съобщения на екрана.
Що се отнася до първо и второ ниво, те са част от същата програма, в същия район на диска. Заради ограничението откъм пространство те са разделени на две, но вие винаги ще ги инсталирате като едно цяло.
Те се намират на сектора за първоначално зареждане в парчето за първоначално зареждане, което е където boot0, или всяка друга програма на MBR която очаква да стартира продължение на процеса на първоначално зареждане. Файловете в /boot директорията са копия на истинските файлове, които са съхранени извън операционната система на FreeBSD.
boot1 е много просто устроен, след като може да бъде само 512 байта и знае достатъчно за дисковия етикет на FreeBSD, който съхранява информация отнасяща се до парчето, да намери изпълним boot2.
boot2 е тясно употребяван, и разбира файловата система на FreeBSD достатъчно добре, за да намира файловете в нея и да може да доставя прост интерфейс за избиране на ядро или зареждаща програма, която да стартира.
Откакто зареждащата програма е много повече употребявана, и доставя прекрасни, лесно-използваеми конфигурации за първоначално зареждане, boot2 обикновено я стартира, но преди това е дадена задача да стартира ядрото директно.
Ако някога ви е нужно да заместите инсталирания boot1 и boot2 използвайте disklabel(8).
# disklabel -B diskslice
Когато diskslice(дисково парче) е дискът и парчето, от което правите първоначално зареждане, като например ad0s1 за първото парче на първия IDE диск.
Опасен за използване методАко използвате само името на диска, например ad0, в disklabel(8) команда вие ще създадете опасно сформиран диск без парчета. Това почти със сигурност не е това което вие искате да направите, таке че се уверета като направите двойна проверка на disklabel(8) команда преди да натиснете Return.
Зареждащата програма е последното ниво от триетапната нишка на първоначално зареждане, и е локализирана във файловата система, обикновено като /boot/loader.
Зареждащата програма е конструирана като приятелски спрямо потребителя метод за конфигуриране, лесни за използване построй-в команди, подкрепени от по-мощни преводачи, с по-голям комплекс от възможности за команди.
По време на инициализация, зареждащата програма ще проверява за конзола и за дискове, а и за други фигури извън диска, от който се прави първоначалното зареждане. Ще постави съответните променливи и преводачът ще бъде стартиран, когато потребителските команди могат да бъдат подадени от даден скрипт.
Тогава зареждащата програма ще прочете /boot/loader.rc, което по подразбиране чете в /boot/defaults/loader.conf, слагайки смислени подразбирания за променливи и от своя страна прочита /boot/loader.conf за локални промени в в тези променливи. loader.rc тогава действа на тези променливи, които първи са зареждани от модули и ядрото.
Накрая, по подразбиране, зареждащата програма задава изчакване от 10 секунди за натискане на бутон и зарежда ядрото ако броенето не бъде прекъснато. Ако се прекъсне, на потребителя се представя лесен за използване промпт, който разбира зададените команди, където потребителя може да задава променливи, да спре зареждането на всички модули, да зареди модули, и тогава да продължи първоначалното зареждане или да рестартира.
Това са едни от най-съвместимите команди използвани за зареждащата програма. За пълна дискусия на всички възможни програми, моля вижте loader(8).
Процедури за първоначално зареждане на ядрото ако е прекъснато във времето дадено за това, определено в секунди. Изобразява се обратно отброяване и по подразбиране то е 10 секунди.
Незабавни процедури за първоначално зареждане на ядрото, със зададените опции и с даденото име на ядрото.
Протича през същото автоматично конфигуриране на модули базирани на променливи, като се задава какво да се случи при първоначално зареждане. Това има разлика само, когато използвате unload(спирате зареждане) първо и след това променяте някакви променливи, наи-често ядрото(kernel).
Показва помощни съобщения прочетени от /boot/loader.help. Ако темата, която е зададена е index, тогава листът с валидни команди е даден.
Процесите с дадено файлово име. Файлът се прочита и е преведен ред по ред. Ако възникне грешка, тогава внезапно се спира активираната команда.
Зарежда ядрото, модула на ядрото, или файл от дадения тип с даденото файлово име. Всякакви аргументи след името на файла са подавани на файла.
Показва лист с файловете от дадения път, или root (главната) директория, ако пътя не е правилно зададен. Ако -l е въведено файловия размер ще бъде показан също.
Показва всички устройства, за които може да бъде възможно да зареждат модули. Ако -v е въведено, тогава се отпечатват повече детайли.
Показва заредените модули. Ако -v е въведено, тогава се показват повече детайли.
Показва въведените файлове с пауза между всеки LINES(ред) изобразен.
Спешно рестартира системата.
Задава променливите на зареждащата програма.
Премахва всички заредени модули.
Тук са показани няколко специални примера за употреба на зареждаща програма:
За да заредите първоначално вашето ядро (kernel), но в мод за един потребител:
boot -s
За да премахне от зареждане вашето обикновено ядро и модули, а след това да заредите просто старото (или различно) ядро:
unload(премахни от зареждане) load(зареди) kernel.old
Вие можете да използвате kernel.GENERIC, за да се обърнете към това ядро което се инсталира по подразбиране с инсталирането на операционната система на диска, или kernel.old, за да се обърнете към вашето предишно инсталирано ядро (когато сте подобрявали или конфигурирали ваше собствено ядро например).
Note: Използвайте следните редове, за да заредите обичайните модули с различно ядро:
unload (премахване на зареждането) set kernel="kernel.old" boot-conf
За да заредите конфигурационен скрипт на ядрото (автоматичен скрипт който прави нещата, които обикновено бихте направили вие в нормален конфигуратор за времетраене на първоначално зареждане за ядрото):
load -t userconfig_script /boot/kernel.conf
| Prev | Home | Next |
| Проблемът при първоначално зареждане. | Up | Действия в ядрото по време на първоначално зареждане. |
Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
За въпроси относно FreeBSD, прочетете документацията преди да попитате в <questions@FreeBSD.org>.
За въпроси относно този документ, e-mail <doc@FreeBSD.org>.