Intel®-н Preboot eXecution Environment (PXE) буюу Ачаалалтаас өмнө ажиллуулах орчин нь үйлдлийн системийг сүлжээгээр ачаалах боломжийг олгодог. PXE дэмжлэг орчин үеийн эх хавтангуудын BIOS дээр ихэвчлэн хийгдсэн байдаг бөгөөд BIOS тохиргоонуудад үүнийг идэвхжүүлэн сүлжээгээр ачаалах боломжтой болгодог. Бүрэн хэмжээгээр ажиллах PXE тохиргоотой байхын тулд зөв тохируулсан DHCP болон TFTP сервертэй байхыг шаарддаг.
Хост компьютер ачаалахдаа DHCP-с
TFTP ашиглан эхний ачаалагч дуудагчийг хаанаас авч болох
мэдээллийг авдаг. Энэ мэдээллийг хост компьютер хүлээж
авсныхаа дараа ачаалагч дуудагчийг TFTP-р
татаж аван ажиллуулдаг. Үүнийг
Preboot Execution Environment (PXE)-ийн тодорхойлолт
хаягийн 2.2.1 хэсэг бичсэн байгаа.
FreeBSD дээр PXE процессын явцад хүлээн авсан
ачаалагч дуудагч нь /boot/pxeboot байна.
/boot/pxeboot ажилласны дараа FreeBSD-н
цөм дуудагддаг бөгөөд FreeBSD-н бусад ачаалалт хийгддэг.
FreeBSD-н ачаалах процессын талаар дэлгэрэнгүйг Бүлэг 13, FreeBSD-ийн Ачаалах процесс
хэсгээс үзнэ үү.
FreeBSD суулгац байх NFS-р холбож болох санг сонгоно. Жишээ нь
/b/tftpboot/FreeBSD/install гэх мэт санг ашиглаж
болно.
#export NFSROOTDIR=/b/tftpboot/FreeBSD/install#mkdir -p ${NFSROOTDIR}
Хэсэг 30.3.2, «NFS-н тохиргоог хийх» хэсэг дэх зааврыг даган NFS серверийг идэвхжүүлнэ.
Дараахийг /etc/exports файлд нэмэн
NFS-р санг экспорт хийнэ:
/b -ro -alldirs
NFS серверийг дахин асаана:
#service nfsd restart
Хэсэг 30.2.2, «Тохиргоо» хэсэгт заасан алхмуудын дагуу inetd(8)-г идэвхжүүлнэ.
/etc/inetd.conf-д
дараах мөрийг нэмнэ:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /b/tftpboot
inetd-г дахин асаана:
#service inetd restart
FreeBSD-н цөм болон хэрэглэгчийн талбарыг дахин бүтээнэ:
#cd /usr/src#make buildworld#make buildkernel
NFS-р холбогдсон санд FreeBSD-г суулгана:
#make installworld DESTDIR=${NFSROOTDIR}#make installkernel DESTDIR=${NFSROOTDIR}#make distribution DESTDIR=${NFSROOTDIR}
TFTP ажиллаж байгааг болон PXE-р дамжин ачаалагч дуудагчийг татаж авч байгаа эсэхийг шалгана:
#tftp localhosttftp>get FreeBSD/install/boot/pxebootReceived 264951 bytes in 0.1 seconds
${NFSROOTDIR}/etc/fstab-г засварлан root файлын
системийг NFS-р холбох мөрийг үүсгэнэ:
# Device Mountpoint FSType Options Dump Pass myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0
myhost.example.com гэдгийг
таны өөрийн NFS серверийн IP хаяг эсвэл
хостын нэрээр солих хэрэгтэй. Энэ жишээн дээр
NFS хэрэглэгчид root файлын системийн
агуулгыг устгачих магадлалаас хамгаалж root файлын системийг
"зөвхөн унших" эрхээр холбосон байгаа.
chroot(8) орчинд root нууц үгийг тохируулна.
#chroot ${NFSROOTDIR}#passwd
Энэ нь PXE-р ачаалж байгаа хэрэглэгч машинуудад зориулж root нууц үгийг тохируулах болно.
${NFSROOTDIR}/etc/ssh/sshd_config файлыг
засварлан PermitRootLogin гэдгийг идэвхжүүлж
PXE-р ачаалж байгаа хэрэглэгч машинуудад
зориулж ssh-р дамжин root хэрэглэгч нэвтрэх боломжийг бүрдүүлнэ.
Үүнийг sshd_config(5)-д тайлбарласан байгаа.
${NFSROOTDIR} дахь chroot(8) орчинд бусад өөрчлөлтүүдийг хийнэ. Эдгээр өөрчлөлтүүдэд pkg_add(1) ашиглан багцууд нэмэх, vipw(8), ашиглан нууц үгийн файлыг засварлах, эсвэл автоматаар холбохын тулд amd.conf(5) харгалзааг засварлах зэрэг орж болно. Жишээ нь:
#chroot ${NFSROOTDIR}#pkg_add -r bash
Хэрэв та NFS root-с ачаалсан бол /etc/rc нь
NFS-ээр ачаалсныг мэдэж /etc/rc.initdiskless
скриптийг ажиллуулдаг. Юу болж байгааг энэ скрипт доторх тайлбаруудыг
уншиж мэдээрэй. Бид /etc болон
/var гэсэн санах ой дээр тулгуурласан
файлын систем үүсгэх хэрэгтэй, учир нь NFS root сан нь зөвхөн
уншигдах эрхтэй бөгөөд эдгээр сангууд нь бичигдэх боломжтой байх
ёстой.
#chroot ${NFSROOTDIR}#mkdir -p conf/base#tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc#tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var
Систем ачаалахад /etc болон /var-д
зориулсан санах ойн файлын системүүд үүсч холбогдох бөгөөд
cpio.gz файлуудын агуулга тэдгээр рүү
хуулагдах болно.
PXE нь TFTP болон DHCP сервер тохируулсан байхыг шаарддаг. DHCP сервер нь TFTP сервер байгаа машин дээр заавал байх шаардлагагүй бөгөөд таны сүлжээнээс хандаж болох боломжтой байх ёстой.
Хэсэг 30.5.7, «DHCP Серверийг Суулгах болон Тохируулах» заасан зааврын дагуу
DHCP серверийг суулгана.
/etc/rc.conf болон
/usr/local/etc/dhcpd.conf файлуудыг
зөв тохируулсан эсэхийг шалгаарай.
/usr/local/etc/dhcpd.conf файлын
next-server, filename,
болон option root-path тохиргоонуудад
TFTP-н IP хаяг, TFTP
дэх /boot/pxeboot хүрэх зам болон
NFS root файлын системийн замыг зааж өгнө.
Жишээ dhcpd.conf файл ийм байна:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.3 ;
option subnet-mask 255.255.255.0 ;
option routers 192.168.0.1 ;
option broadcast-address 192.168.0.255 ;
option domain-name-server 192.168.35.35, 192.168.35.36 ;
option domain-name "example.com";
# IP address of TFTP server
next-server 192.168.0.1 ;
# path of boot loader obtained
# via tftp
filename "FreeBSD/install/boot/pxeboot" ;
# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ;
}Хэрэглэгч машин ачаалахдаа BIOS тохиргооны цэс рүү орно. Сүлжээнээс ачаалахыг BIOS-д тохируулна. Хэрэв өмнөх бүх алхмууд зөв бол бүгд "зүгээр л ажиллах ёстой".
PXE ачаалах процессын явцад үүсэх сүлжээний урсгалыг дибаг хийхийн тулд net/wireshark-г ашиглаарай. Үүнийг доорх диаграм дээр дүрсэлсэн байгаа. Хэсэг 32.8.3, «DHCP сервер тохируулах» хэсэгт жишээ тохиргоог харуулсан бөгөөд DHCP, TFTP ба NFS серверүүд нь нэг машин дээр байна. Гэхдээ эдгээр серверүүд нь өөр өөр машин дээр байж болно.

| Клиент DHCPDISCOVER цацна. |
| DHCP сервер IP хаяг,
|
| Клиент |
| TFTP сервер клиент рүү хариу өгч
|
| Клиент |
pxeboot-г TFTP-р
авч болж байгаа эсэхийг шалгаарай. TFTP
сервер дээрээ /var/log/xferlog файлыг
нээж харан pxeboot файл зөв газраас
татагдаж байгаа эсэхийг шалгаарай. Дээрх dhcpd.conf
файлын тохиргоог шалгахын тулд:
#tftp 192.168.0.1tftp>get FreeBSD/install/boot/pxebootReceived 264951 bytes in 0.1 seconds
tftpd(8) ба tftp(1) гарын авлагын хуудаснуудыг уншаарай.
TFTP-н зарим нэг хязгаарлалтуудыг
BUGS хэсэгт тайлбарласан байгаа.
root файлын системийг NFS-р холбож болж
байгаа эсэхийг шалгаарай. Дээрх dhcpd.conf
файлын тохиргоог шалгахын тулд:
#mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt
boot.nfsroot.server болон
boot.nfsroot.path гэх мэт хувьсагчуудыг
pxeboot дуудагч хэрхэн тохируулдагийг
src/sys/boot/i386/libi386/pxe.c файлын
кодыг уншиж ойлгоорой. Эдгээр хувьсагчууд дараагаар нь
src/sys/nfsclient/nfs_diskless.c файлын
NFS-р дискгүй root холбох кодод ашиглагддаг.
pxeboot(8) болон loader(8) гарын авлагын хуудаснуудыг уншина уу.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.