13.3. Ачаалагч Менежер болон Ачаалалтын шатууд
Өмнөх | Бүлэг 13. FreeBSD-ийн Ачаалах процесс | Дараах

## 13.3. Ачаалагч Менежер болон Ачаалалтын шатууд

### 13.3.1. Ачаалагч Менежер

MBR эсвэл ачаалагч менежер дэх код нь заримдаа ачаалах процессийн тэг (0) шат гэж нэрлэгддэг. Энэ хэсэг нь хоёр ачаалагч менежерийг авч үзнэ: boot0 болон LILO.

boot0 Ачаалагч Менежер: FreeBSD-ийн суулгагч эсвэл boot0cfg(8)-р суулгагдсан MBR `/boot/boot0` дээр тулгуурладаг. boot0-н хэмжээ болон боломж нь зүсмэлийн хүснэгт болон MBR-ийн төгсгөл дэх `0x55AA` танигчаас болоод 446 байт байдаг. Хэрэв boot0 болон олон үйлдлийн системийг суулгасан бол ачаалах үед доор дурдсантай төсөөтэй дэлгэцийг харах болно:

Жишээ 13.1. `boot0` дэлгэцийн агшин
F1 DOS F2 FreeBSD Default: F2

Бусад үйлдлийн системүүд ялангуяа Windows® нь FreeBSD-ийн дараа суусан бол байгаа MBR-ийг өөрийнхөөрөө дарж бичдэг. Хэрэв энэ тохиолдвол эсвэл та байгаа MBR-аа FreeBSD-ийн MBR-аар солихыг хүсвэл дараах тушаалыг ашиглана:

`#` `fdisk -B -b /boot/boot0 `device``

Дээр бичигдсэн `device` нь эхний IDE дискний хувьд `ad0`, хоёр дахь IDE хянагч дээрх эхний IDE дискний хувьд `ad2`, эхний SCSI дискний хувьд `da0` гэх зэрэг ачаалах диск байх юм. MBR-ийн өөрчлөн тохируулсан тохиргоог хүсэж байвал boot0cfg(8)-ийг ашигла.

LILO Ачаалагч Менежер: FreeBSD-г бас ачаалах энэ ачаалагч менежерийг суулгахын тулд Линукс эхлүүлээд дараах тохиргоог `/etc/lilo.conf` тохиргооны файлд нэмээрэй:

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

Линуксийн тодорхойлогчдыг ашиглан `X`-г Линуксийн дискний үсгээр, `Y`-г Линуксийн анхдагч хуваалтын дугаараар сольж FreeBSD-ийн анхдагч хуваалт болон дискийг зааж өгнө. SCSI диск ашиглаж байвал `/dev/hd`-г `/dev/sd` болгон өөрчлөх хэрэгтэй. Хэрэв хоёр үйлдлийн систем хоёулаа нэг диск дээр байвал `loader=/boot/chain.b` мөр орхигдож болно. Дараа нь `/sbin/lilo -v` тушаалыг ажиллуулж шинэ өөрчлөлтийг системд оруулна. Зөв эсэхийг шалгахын тулд дэлгэц дээр гаргах мэдээллүүдийг хянан шалгах хэрэгтэй.

### 13.3.2. Нэгдүгээр шат `/boot/boot1` болон Хоёрдугаар шат `/boot/boot2`

Ерөнхий төсөөллөөр бол эхний болон хоёр дахь шатууд нь дискний нэг талбар дахь нэг л програмын хэсэг юм. Зайнаас хамаараад тэдгээрийг хоёр хэсэг болгон хуваасан, гэхдээ үргэлж цугтаа суудаг. Тэдгээр нь нэгдсэн `/boot/boot` файлаас суулгагчаар эсвэл bsdlabel-р хуулагддаг.

Тэд файлын системүүдээс гадна ачаалах зүсмэлийн эхний зам дээр эхний сектороос эхлээд байрладаг. Энд л boot0 эсвэл өөр аль нэг ачаалагч менежер ачаалах процессийг үргэлжлүүлэх програмыг олно гэдэгт найдаж байдаг. Ашиглагдах секторуудын тоо `/boot/boot`-ийн хэмжээнээс амархнаар тодорхойлогдоно.

Зөвхөн 512 байт хэмжээтэй байдаг болохоор `boot1` нь их энгийн хялбар бөгөөд `boot2`-ийг олж ажиллуулах, зүсмэлийн тухай мэдээллийг хадгалах, FreeBSD-ийн bsdlabel-ийн тухай хангалттай мэдээлэлтэй байдаг.

`boot2` нь арай илүү төвөгтэй бөгөөд файлуудыг олоход хангалттай FreeBSD-ийн файлын системийг ойлгож цөм эсвэл дуудагчийг ажиллуулахыг сонгох маш энгийн интерфэйсээр хангаж чаддаг.

Дуудагч нь хамаагүй илүү төвөгтэй бөгөөд `boot2`-р ажилладаг ачаалалтын тохиргоотой байдаг.

Жишээ 13.2. `boot2` дэлгэцийн агшин
>> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader boot:

Суулгасан `boot1` болон `boot2` файлуудыг солиход bsdlabel(8)-ийг ашиглаж болно:

`#` `bsdlabel -B `diskslice``

Дээр бичигдсэн `diskslice` нь эхний IDE диск дээрх эхний зүсмэлийн хувьд `ad0s1` гэх мэтээр ачаалах диск болон зүсмэл юм.

### Аюултайгаар Зориулагдсан Горим:

Хэрэв `ad0` гэх мэтээр дискний нэрийг ашиглавал bsdlabel(8) нь зүсмэлүүдгүй аюултайгаар зориулагдсан диск үүсгэх болно. Энэ нь мэдээж хүсээгүй зүйл болохоор bsdlabel(8) тушаалыг Return дарж ажиллуулахаасаа өмнө түүнд дамжуулах `diskslice`-г дахин шалгаарай.

### 13.3.3. Гуравдугаар шат `/boot/loader`

Дуудагч нь гурван шаттай эхлүүлэгчийн төгсгөлийн шат бөгөөд файлын систем дээр гол төлөв `/boot/loader` гэж байрладаг.

Дуудагч нь илүү цогц тушаалын цуглуулга бүхий илүү хүчирхэг хөрвүүлэгчээр дэмжигдсэн тушаалын цуглуулга ашиглан тохиргоо хийхэд интерактив арга байхаар зориулагдсан.

#### 13.3.3.1. Дуудагч програмын урсгал

Эхлүүлэх явцад дуудагч нь консол болон дискнүүдийн хувьд шалгаж аль дискнээс ачаалж байгаагаа тогтоодог. Энэ нь хувьсагчуудыг шаардлагын дагуу тохируулах бөгөөд скрипт эсвэл лавлаж хариулах зарчмаар хэрэглэгчийн тушаалууд дамждаг тайлбарлагч эхэлдэг.

Үүний дараа дуудагч нь хувьсагчуудын боломжийн анхдагчуудыг тохируулдаг `/boot/defaults/loader.conf` дотор байгааг анхдагчаар уншдаг `/boot/loader.rc` файлыг унших бөгөөд тэдгээр хувьсагчуудад хийх локал өөрчлөлтүүдэд зориулсан `/boot/loader.conf` файлыг мөн уншдаг. Дараа нь `loader.rc` аль модулиуд болон цөмийг сонгосон тэдгээрийг дуудан эдгээр хувьсагчуудын дагуу ажилладаг.

Эцэст нь анхдагчаар дуудагч нь 10 секунд гаргаж товч дарахыг хүлээж тасалдуулаагүй бол цөмийг ачаалдаг. Хэрэв тасалдуулбал тушаалын цуглуулгыг ойлгодог тушаал хүлээх мөрийг хэрэглэгчид өгөх бөгөөд үүнийг ашиглан хэрэглэгч хувьсагчуудыг тааруулах, бүх модулиудыг буулгаж болиулах, модулиуд дуудах болон тэгээд төгсгөлд нь ачаалах эсвэл дахин ачаалж болох юм.

#### 13.3.3.2. Дуудагчид багтсан тушаалууд

Эдгээр нь хамгийн ихээр ашиглагддаг дуудагчийн тушаалууд юм. Байгаа бүх тушаалуудын тухай бүрэн хэлэлцүүлгийг loader(8)-с үзнэ үү.

autoboot `seconds`

  Секундээр өгөгдсөн хугацаанд тасалдаагүй бол цөмийг ачаалахаар үргэлжлүүлдэг. Энэ нь тоолуур харуулах бөгөөд анхдагч хугацаа нь 10 секунд байна.

boot [`-options`] [`kernelname`]

  Өгөгдсөн тохируулгууд эсвэл цөмийн нэртэйгээр цөмийг нэн даруй ачаалахаар үргэлжлүүлнэ. unload тушаалыг ажиллуулсны дараа зөвхөн тушаалын мөрөөс цөмийн нэрийг өгч болох бөгөөд хэрэв ингэхгүй бол өмнө нь дуудагдсан цөмийг ашиглах болно.

boot-conf

  Ихэвчлэн `kernel` байх өгөгдсөн хувьсагчууд дээр үндэслэн модулиудын автомат тохиргоогоор орно. Зарим хувьсагчуудыг өөрчлөхөөсөө өмнө `unload`-г эхэлж ашиглавал энэ нь зөвхөн ач холбогдолтой байдаг.

help [`topic`]

  `/boot/loader.help` файлаас тусламжийн мэдээллүүдийг үзүүлнэ. Хэрэв өгөгдсөн сэдэв нь `индекс` бол байгаа сэдвүүдийн жагсаалтыг үзүүлнэ.

include `filename` …

  Өгөгдсөн файлын нэртэй файлыг процесс хийнэ. Файл уншигдаж мөр мөрөөр хөрвүүлэгдэнэ. Алдаа гарвал include буюу оруулах тушаалыг нэн даруй зогсооно.

load [`-t` `type`] `filename`

  Цөм, цөмийн модуль, эсвэл өгөгдсөн төрлийн файлыг нэртэй нь дуудна. `filename`-н дараах дурын нэмэлт өгөгдлүүд нь файлд дамжуулагдана.

ls [`-l`] [`path`]

  Өгөгдсөн зам эсвэл зам өгөгдөөгүй бол root сан дахь файлуудын жагсаалтыг харуулна. Хэрэв `-l` өгөгдсөн бол файлын хэмжээнүүдийг бас харуулдаг.

lsdev [`-v`]

  Модулиуд магадгүй дуудагдаж болох бүх төхөөрөмжүүдийг жагсаана. Хэрэв `-v` өгөгдсөн бол илүү дэлгэрэнгүй мэдээлэл хэвлэгдэнэ.

lsmod [`-v`]

  Дуудагдсан модулиудыг харуулна. Хэрэв `-v` өгөгдсөн бол илүү дэлгэрэнгүй мэдээллийг үзүүлнэ.

more `filename`

  `LINES` болгоныг харуулан түр зогсож өгөгдсөн файлуудыг үзүүлнэ.

reboot

  Системийг нэн даруй дахин ачаална.

set `variable`, set `variable`=`value`

  Дуудагчийн орчны хувьсагчуудыг тохируулна.

unload

  Дуудагдсан модулиудыг арилгана.

#### 13.3.3.3. Дуудагчийн жишээнүүд

Дуудагчийн хэрэглээний практик жишээнүүдийг энд дурдав:

- өөрийн ердийн цөмийг ганц-хэрэглэгчийн горимд ачаалахдаа:

  `boot -s`

- Ердийн цөм болон модулиудыг буулган болиулж дараа нь хуучин эсвэл өөр цөмийг дуудахдаа:

  `unload` `load `kernel.old``

  `kernel.GENERIC`-г суулгацын дисктэй цуг ирсэн анхдагч цөмийг дуудахдаа ашиглаж болох бөгөөд эсвэл цөмийг шинэчилж тохируулахаасаа өмнө эсвэл системийн шинэчлэл хийхээсээ өмнө суулгасан цөмөө дуудахдаа `kernel.old`-г ашиглаж болно.

  ### Тэмдэглэл:

  Ердийн модулиудыг өөр цөмийн хамт дуудахдаа доор дурдсаныг ашигла:

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

- Цөмийн автомат тохиргооны скриптийг дуудахдаа:

  `load -t userconfig_script `/boot/kernel.conf``

#### 13.3.3.4. Ачаалах үеийн дэлгэцийн зураг

Хувь нэмэр болгон оруулсан Жозеф Ж. Барбиш.

Ачаалах үеийн дэлгэцийн зураг нь өөр ачаалах дэлгэцийг бий болгодог. Энэхүү дэлгэц нь тушаалын мөр эсвэл график нэвтрэлт хүлээх цонхыг харуулахаас өмнө ачаалах үеийн шалган илрүүлэх мэдэгдлүүд болон үйлчилгээний эхлэх мэдэгдлүүдийг харуулдаггүй.

FreeBSD дээр үндсэн хоёр орчин байдаг. Эхнийх нь хуучны анхдагч виртуал консол тушаалын мөрний орчин юм. Систем ачаалж дууссаны дараа консолын нэвтрэлт хүлээх мөр харуулагддаг. Хоёр дахь орчин нь Xorg графикийн орчин юм. График дэлгэцийн менежер болон график нэвтрэх менежерийг суулгаж тохируулах талаарх дэлгэрэнгүй мэдээллийг зохих бүлгээс үзнэ үү.

##### 13.3.3.4.1. Ачаалах үеийн дэлгэцийн функц

Ачаалах үеийн дэлгэцийн функц нь зөвхөн 256 өнгийн битмап (`.bmp`), ZSoft PCX (`.pcx`) эсвэл TheDraw (`.bin`) хэлбэрүүдийг дэмждэг. Зураг файлууд нь стандарт VGA адаптер дээр ажиллахын тулд 320-ийг харьцах 200 пикселийн нягтралтай байх ёстой.

1024-ийг харьцах 768 пикселийн максимум нягтрал хүртэлх илүү том зургийг ашиглахын тулд VESA модулийг систем ачаалах үед дуудах хэрэгтэй. өөрчлөн тохируулсан цөмийн хувьд `VESA` цөмийн тохиргоог нэмэх хэрэгтэй. VESA дэмжлэгийг дуудсанаар бүх дэлгэцийг бүрхэх ачаалах үеийн дэлгэцийн зургийг харуулах боломжийг хэрэглэгчид олгодог.

Ачаалах үеийн дэлгэцийг харуулагдаж байх үед гарын аль ч товчлуурыг дарж болиулж болно.

Ачаалах үеийн дэлгэцийн зураг нь анхдагчаар гаднах дэлгэц амраагч болдог. Ашиглаагүй тодорхой хугацааны дараа ачаалах үеийн дэлгэцийн зураг гарч тодоос бүр харанхуй болон дахин дахин солигдон эргэлдэх болно. Дэлгэцийн зургийн тохиргоог `/etc/rc.conf` файлд `saver=` мөрийг нэмэн өөрчилж болно. Хэд хэдэн сонгож болох дэлгэц амраагч байдаг бөгөөд splash(4) гарын авлагын хуудаснаас олж болно. `saver=` тохиргоо нь зөвхөн виртуал консолд хамаатай гэдгийг санаарай. Энэ нь график дэлгэцийн менежерүүдэд ямар ч нөлөөгүй болно.

Ачаалах үеийн дэлгэцийг идэвхжүүлсэн ч гэсэн ачаалагчийн тохиргооны цэс болон тушаал хүлээн секунд гүйх үеийн мөр зэрэг ачаалагч дуудагчийн мэдэгдлүүд нь ачаалах үед харуулагдсан хэвээр байх болно.

Жишээ ачаалах үеийн дэлгэцийн файлуудыг http://artwork.freebsdgr.org хаяг дахь галерейгаас татаж авч болно. `sysutils/bsd-splash-changer` портыг суулгаснаар ачаалах үеийн дэлгэцийн зургийг ачаалах болгонд санамсаргүйгээр цуглуулгаас сонгож харуулах боломжтой болно.

##### 13.3.3.4.2. Ачаалах үеийн дэлгэцийн функцыг идэвхжүүлэх

Ачаалах үеийн дэлгэцийн `.bmp`, `.pcx` эсвэл `.bin` файлыг root хуваалт дээр жишээ нь `/boot` санд байрлуулах ёстой.

Ачаалагчийн анхдагч дэлгэцийн 256 өнгө, 320-ийг харьцах 200 пиксел юм уу эсвэл түүнээс бага нягтралын хувьд `/boot/loader.conf` файл дараахийг агуулсан байхаар засварлах хэрэгтэй:

splash_bmp_load="YES" bitmap_load="YES" bitmap_name="`/boot/splash.bmp`"

1024-ийг харьцах 768 пикселийн максимум хүртэлх илүү том видео нягтралуудын хувьд `/boot/loader.conf` файл дараахийг агуулсан байхаар засварлах хэрэгтэй:

vesa_load="YES" splash_bmp_load="YES" bitmap_load="YES" bitmap_name="`/boot/splash.bmp`"

Дээрх нь ``/boot/splash.bmp``-ийг ачаалах үеийн дэлгэцдээ ашиглахыг зааж өгч байна. PCX файл ашиглахын тулд дараах илэрхийллийг `vesa_load="YES"` мөрийн хамтаар нягтралаас хамааруулан ашиглана.

splash_pcx_load="YES" bitmap_load="YES" bitmap_name="`/boot/splash.pcx`"

FreeBSD 8.3 хувилбараас эхлээд TheDraw хэлбэрийн ascii зураг ашиглах өөр нэг сонголт бий.

splash_txt="YES" bitmap_load="YES" bitmap_name="`/boot/splash.bin`"

Файлын нэр нь дээрх жишээ дээрх шиг заавал «splash» гэдгээр хязгаарлагдахгүй. ``splash_640x400`.bmp` эсвэл ``bluewave`.pcx` зэрэг дэмжигдсэн төрлийн байхад болох юм.

`loader.conf`-ийн бусад сонирхолтой тохиргоонуудыг дурдвал:

`beastie_disable="YES"`

  Энэ нь ачаалагчийн тохиргооны цэсийг харуулахгүй болгоно. Гэхдээ секунд гүйсэн тушаал хүлээх мөрийг харуусан хэвээр байх болно. Ачаалагчийн тохиргооны цэсийг хаасан ч гэсэн секунд гүйсэн тушаал хүлээх мөрөнд сонгосон сонголтын дагуу систем ачаалах болно.

`loader_logo="beastie"`

  Энэ нь ачаалагчийн тохиргооны цэсний баруун талд харуулагдах «FreeBSD» гэсэн анхдагч үгийг өнгөт чөтгөрийн логогоор солих болно.

Дэлгэрэнгүй мэдээллийг splash(4), loader.conf(5), болон vga(4) гарын авлагын хуудаснуудаас үзнэ үү.

Өмнөх | Дээш | Дараах
13.2. Ачаалалтын асуудал | Эхлэл | 13.4. Ачаалах үе дэх цөмийн харилцан үйлдэл

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.