FreeBSD гарын авлага
Өмнөх | Бүлэг 12. FreeBSD-ийн Ачаалах процесс | Дараах

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

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

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

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

Жишээ 12-1. `boot0` дэлгэцийн агшин

    F1 DOS
    F2 FreeBSD
    F3 Linux
    F4 ??
    F5 Drive 1

    Default: F2

Бусад үйлдлийн системүүд ялангуяа Windows� байгаа 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` тушаалыг ажиллуулж өөрийн шинэ өөрчлөлтийг системд оруулна; ингэхийн тулд дэлгэц дээр гаргах мэдээллүүдийг хянан шалгах хэрэгтэй.

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

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

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

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

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

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

Жишээ 12-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 дарахаасаа өмнө дахин шалгаарай.

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

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

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

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

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

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

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

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

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

autoboot `seconds`

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

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

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

boot-conf

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

help [`topic`]

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

include `filename` ...

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

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

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

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

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

lsdev [`-v`]

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

lsmod [`-v`]

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

more `filename`

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

reboot

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

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

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

unload

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

### 12.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

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

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

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

FreeBSD дээр үндсэн хоёр орчин байдаг. Эхнийх нь хуучны анхдагч виртуал консол тушаалын мөрний орчин юм. Систем ачаалж дууссаны дараа консолын нэвтрэлт хүлээх мөр харуулагддаг. Хоёр дахь орчин нь X11 ширээний графикийн орчин юм. X11 болон GNOME, KDE, эсвэл XFce зэрэг аль нэг ширээний орчнуудыг суулгасны дараа X11 ширээний орчныг `startx` тушаалыг ашиглан ажиллуулж болно.

Зарим хэрэглэгчид уламжлалт текст нэврэлт хүлээх мөрнөөс илүү X11 график нэвтрэлтийн дэлгэцийг илүүд үздэг. Xorg-д зориулсан XDM, GNOME-д зориулсан gdm болон KDE-д зориулсан kdm (болон портын цуглуулга дахь бусад) нь консол нэвтрэлт хүлээх мөрний оронд график нэвтрэх дэлгэцийн боломжийг үндсэндээ бүрдүүлдэг. Амжилттай нэвтэрсний дараа хэрэглэгчид график ширээний орчинг харуулдаг.

Тушаалын мөрний орчинд ачаалах үеийн дэлгэц нь нэвтрэлт хүлээх мөрийг үзүүлэхээсээ өмнө ачаалах үеийн бүх мэдэгдлүүд болон эхлүүлэлтийн мэдэгдлүүдийг нуух болно. X11 орчинд хэрэглэгчид нь тэдний танил (Microsoft� Windows эсвэл unix биш төрлийн) системийн эхлэлийг харах болно.

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

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

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

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

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

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

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

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

Ачаалах үеийн дэлгэцийн (`.bmp`) эсвэл (`.pcx`) файлыг 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"

Файлын нэр нь дээрх жишээ дээрх шиг заавал “splash” гэдгээр хязгаарлагдахгүй. ``splash_640x400`.bmp` эсвэл ``blue_wave`.pcx` зэрэг дурын BMP эсвэл PCX төрлийн байхад болох юм.

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

`beastie_disable="YES"`

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

`loader_logo="beastie"`

  Энэ нь ачаалагчийн тохиргооны цэсний баруун талд харуулагдах “FreeBSD” гэсэн анхдагч үгийг өмнөх хувилбаруудад байсан шиг өнгөт чөтгөрийн логогоор солих болно.

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

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

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

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