Примеры файлов построения

Примеры файлов построения загрузочного образа

Пример монтирования целевой ФС по протоколу NFS
Файл построения с использованием diskboot
Файл построения без использования diskboot
Файл построения для UEFI-систем
Файл построения для APIC-систем с автоматическим входом в консольном режиме
Аутентификация для протокола PPP с CHAP между двумя узлами с ЗОСРВ «Нейтрино»

Пример монтирования целевой ФС по протоколу NFS

Далее приводится текст простого файла построения загрузочного образа, используемого при монтировании целевой файловой системы NFS.


Note: В реальном файле построения загрузочного образа для разделения длинной строки на более короткие фрагменты нельзя использовать символ обратного слэша (\), но в данном примере мы все же использовали этот способ исключительно в целях лучшей читаемости файла.

########################################################################### ## ## ЗОСРВ «Нейтрино» on the fictitious ABC123 board ## ########################################################################### ## ## SUPPORTED DEVICES: ## ## SERIAL: RS-232 ports UART0 and UART1 ## PCI:4 PCI slots ## NETWORK: AMD 79C973 ## FLASH:4MB Intel Strata Flash ## USB:UHCI USB Host Controller ## ## - For detailed instructions on the default example configuration for ## these devices see the "CONFIGURING ON-BOARD SUPPORTED HARDWARE" ## section below the build script section, or refer to the BSP docs. ## - Tip: Each sub-section which relates to a particular device is marked ## with its tag (ex. SERIAL). You can use the search features of ## your editor to quickly find and add or remove support for ## these devices. ## ########################################################################### ## ## NOTES: ## ########################################################################### ########################################################################### ## START OF BUILD SCRIPT ########################################################################### [image=0x800a0000] [virtual=armle,srec] .bootstrap = { ########################################################################### ## default frequency for 4kc is 80MHz; adjust -f parameter for different ## frequencies ########################################################################### startup-abc123 -f 80000000 -v PATH=:/proc/boot procnto-32 -v } [+script] .script = { procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2 display_msg Welcome to ЗОСРВ «Нейтрино» 6.x on the ABC123 board ####################################################################### ## SERIAL driver ####################################################################### devc-ser8250 -e -c1843200 -b38400 0x180003f8,0x80020004 \ 0x180002f8,0x80020003 & waitfor /dev/ser1 reopen /dev/ser1 slogger & pipe & ####################################################################### ## PCI server ####################################################################### display_msg Starting PCI server... pci-abc123 & waitfor /dev/pci 4 ####################################################################### ## FLASH driver ####################################################################### # display_msg Starting flash driver... # # devf-abc123 & ####################################################################### ## NETWORK driver ## - substitute your IP address for 1.2.3.4 ####################################################################### display_msg Starting on-board ethernet with the v6 TCP/IP stack... io-pkt-v6-hc -dpcnet waitfor /dev/io-net/en0 4 ifconfig en0 1.2.3.4 ####################################################################### ## REMOTE_DEBUG (gdb or Momentics) ## - refer to the help documentation for the gdb, qconn and the IDE ## for more information on remote debugging ## - the commands shown require that NETWORK be enabled too ####################################################################### # devc-pty & # waitfor /dev/ptyp0 4 # qconn port=8000 ####################################################################### ## USB driver ####################################################################### # display_msg Starting USB driver... # # io-usb -duhci & # waitfor /dev/io-usb/io-usb 4 ####################################################################### ## These env variables are inherited by all the programs which follow ####################################################################### SYSNAME=nto TERM=qansi PATH=:/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=:/proc/boot:/lib:/usr/lib:/lib/dll ####################################################################### ## NFS_REMOTE_FILESYSTEM ## - This section is dependent on the NETWORK driver ## - Don’t forget to properly configure and run the nfsd daemon on the ## remote file server. ## - substitute the hostname or IP address of your NFS server for ## nfs_server. The server must be exporting ## "/usr/qnx650/target/neutrino/armle". ####################################################################### display_msg Mounting NFS filesystem... waitfor /dev/socket 4 fs-nfs3 nfs_server:/usr/qnx650/target/neutrino/armle /mnt [+session] ksh & } [type=link] /bin/sh=/proc/boot/ksh [type=link] /dev/console=/dev/ser1 [type=link] /tmp=/dev/shmem ########################################################################### ## uncomment for NFS_REMOTE_FILESYSTEM ########################################################################### [type=link] /bin=/mnt/bin [type=link] /sbin=/mnt/sbin [type=link] /usr/bin=/mnt/usr/bin [type=link] /usr/sbin=/mnt/usr/sbin [type=link] /lib=/mnt/lib [type=link] /usr/lib=/mnt/usr/lib [type=link] /etc=/mnt/etc libc.so.2 libc.so libm.so ########################################################################### ## uncomment for NETWORK driver ########################################################################### devn-pcnet.so libsocket.so ########################################################################### ## uncomment for USB driver ########################################################################### # devu-uhci.so # libusbdi.so [data=c] devc-ser8250 ########################################################################### ## uncomment for REMOTE_DEBUG (gdb or Momentics) ########################################################################### # devc-pty # qconn ########################################################################### ## uncomment for PCI server ########################################################################### pci-abc123 pci ########################################################################### ## uncomment for FLASH driver ########################################################################### # devf-abc123 # flashctl ########################################################################### ## uncomment for NETWORK driver ########################################################################### io-pkt-v6-hc ifconfig nicinfo netstat ping ########################################################################### ## uncomment for USB driver ########################################################################### # io-usb # usb ########################################################################### ## uncomment for NFS_REMOTE_FILESYSTEM ########################################################################### fs-nfs3 ########################################################################### ## general commands ########################################################################### ls ksh pipe pidin uname slogger sloginfo slay ########################################################################### ## END OF BUILD SCRIPT ###########################################################################

Файл построения с использованием diskboot

Далее приводится исходный текст файла построения загрузочного образа, обеспечивающего начальную загрузку .boot на платформе x86.


Note: В реальном файле построения загрузочного образа для разделения длинной строки на более короткие фрагменты нельзя использовать символ обратного слэша (\), но в данном примере мы все же использовали этот способ исключительно в целях лучшей читаемости файла.

# # Файл построения образа ФС для загрузки ЗОСРВ «Нейтрино» на РС # [virtual=x86,bios +compress] boot = { # Резервируется 64k видеопамяти для работы с несколькими видеокартами startup-bios -s64k # В переменной PATH задается *безопасный* путь для исполняемых файлов # (confstr(_CS_PATH...)) # В переменной LD_LIBRARY_PATH задается *безопасный* путь для библиотек # (confstr(_CS_LIBPATH)), т.е. на этом пути происходит поиск библиотек # для исполняемых файлов в setuid/setgid. PATH=/proc/boot:/bin:/usr/bin:/opt/bin \ LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib \ procnto-instr } [+script] startup-script = { # Для экономии памяти в загрузочном образе необходимо использовать # библиотеку libc! Для ускорения (меньшего просмотра символической # информации) вместо указателя на libc.so # используйте указатель на libc.so.3 procmgr symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2 # По умолчанию для пользовательских программ ставится приоритет 10, # для остальных приоритет назначает планировщик (pri=10o) # Для "diskboot" нужно указать, что это загрузочный жесткий диск (-b1) # Для "diskboot" нужно задать использование DMA для IDE-дисков (-D1) # Сделайте для текстовых консолей переправление "-n4" на # "devc-con" (-o) # Добавление "-e" приведет также к монтированию файловой системы # Linux ext2. [pri=10o] PATH=/proc/boot diskboot -b1 -D1 -odevc-con,-n4 } # Включение текущей библиотеки "libc.so". # Она будет создана как реальный файл с внутренним именем "SONAME", # а "libc.so" будет иметь с ним символьную связь. # Символьная связь будет указывать на последнюю версию # "libc.so.*", поэтому если нужна более ранняя версия библиотеки libc # (например, libc.so.2), то добавьте ее перед этой строкой libc.so libc.so.2 libc.so libhiddi.so libusbdi.so # Включите все файлы связи файловых систем по умолчанию libcam.so io-blk.so cam-disk.so fs-qnx4.so fs-dos.so fs-ext2.so cam-cdrom.so fs-cd.so # USB драйверы ввода-вывода для консольного режима devu-ehci.so devu-ohci.so devu-uhci.so devh-usb.so devh-ps2ser.so # Эти программы нужно запускать только один раз из образа загрузки. # "data=uip" будет расходовать меньше памяти, т.к. ОЗУ из образа # загрузки будет использоваться напрямую без копирования данных # (что, например, делает по умолчанию "data=cpy"). Когда программы # уже были один раз запущены, они разрывают связь с /proc/boot. [data=uip] seedres pci-bios devb-eide devb-amd devb-aha2 devb-aha4 devb-aha7 devb-aha8 devb-adpu320 devb-ncr8 devb-umass devb-ahci devb-mvSata umass-enum umass-enum.cfg io-usb io-hid diskboot slogger fesh devc-con devc-con-hid

Файл построения без использования diskboot

Данный файл построения загрузочного образа предназначен для образа ОС, начальный запуск которой происходит без использования загрузчика diskboot.


Note: В реальном файле построения загрузочного образа для разделения длинной строки на более короткие фрагменты нельзя использовать символ обратного слэша (\), но в данном примере мы все же использовали этот способ исключительно в целях лучшей читаемости файла.

# # Файл построения образа ФС для загрузки ЗОСРВ «Нейтрино» на ПК # [virtual=x86,bios +compress] boot = { startup-bios -s64k PATH=/proc/boot:/bin:/usr/bin \ LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll \ procnto-smp } [+script] startup-script = { display_msg " " display_msg "Neutrino Inside!" display_msg " " procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2 display_msg "---> Starting PCI Services" seedres pci-bios waitfor /dev/pci display_msg "---> Starting Console Manager" devc-con -n8 waitfor /dev/con1 reopen /dev/con1 display_msg "---> Starting EIDE Driver" devb-eide blk cache=64M,auto=partition,vnode=2000,ncache=2000,\ noatime,commit=low dos exe=all waitfor /dev/hd0 waitfor /dev/hd1 # Смонтируйте одну файловую систему QNX4 как /, а другую как /home. # Смонтируйте также раздел DOS и CD-дисковод. mount /dev/hd0t79 / mount /dev/hd1t78 /home mount -tdos /dev/hd1t12 /fs/hd1-dos mount -tcd /dev/cd0 /fs/cd0 display_msg "---> Starting /etc/system/sysinit" ksh -c /etc/system/sysinit } libc.so libcam.so io-blk.so cam-disk.so fs-qnx4.so fs-dos.so fs-ext2.so cam-cdrom.so fs-cd.so [data=c] seedres pci-bios devb-eide slogger ksh devc-con mount

Файл построения для UEFI-систем

В приводимом далее сценарии приводится типовой файл построения загрузочного образа для UEFI-систем.

# # Файл построения защищенного загрузочного образа ЗОСРВ "Нейтрино" # для систем с UEFI # [image=0x1400000] [virtual=x86,binary compress=zstd] boot = { startup-uefi -x # Раскомментируйте один вариант запуска микроядра # Двукратная очистка оперативной памяти PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin \ LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib \ procnto-smp-ksz -v -K z,d # # Расширенный аудит #PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin \ #LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib \ #procnto-smp-ksz -v -K A # # Однократная очистка оперативной памяти и расширенный аудит #PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin \ #LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib \ #procnto-smp-ksz -v -K z,A } [+script] startup-script = { procmgr_symlink ../../proc/boot/libc-ksz.so.3 /usr/lib/ldqnx.so.2 # Раскомментируйте один вариант запуска diskboot # Без очистки внешней памяти # Использовать данные чипсета для распределения прерываний #[pri=10o] PATH=/proc/boot diskboot -b1 -D1 -c devc-fbcon-hid \ # -o"devc-fbcon-hid,-Dc -n4" # # Использовать данные чипсета для распределения прерываний, отключить MSI #[pri=10o] PATH=/proc/boot diskboot -b1 -D1 -c devc-fbcon-hid \ # -o"devc-fbcon-hid,-Dc -n4" \ # -o"pci-bios,-M" # # С двукратной очисткой внешней памяти # Использовать данные чипсета для распределения прерываний [pri=10o] PATH=/proc/boot diskboot -b1 -D1 -c devc-fbcon-hid \ -o"devc-fbcon-hid,-Dc -n4" \ -o"devb-*,qnx6 zero,dzero qnx4 zero,dzero" # # Использовать данные чипсета для распределения прерываний, отключить MSI #[pri=10o] PATH=/proc/boot diskboot -b1 -D1 -c devc-fbcon-hid \ # -o"devc-fbcon-hid,-Dc -n4" \ # -o"devb-*,qnx6 zero,dzero qnx4 zero,dzero" \ # -o"pci-bios,-M" } ########################################################################### ## Системные библиотеки ########################################################################### libc-ksz.so.3 [type=link] /proc/boot/libc.so=libc-ksz.so.3 [type=link] /proc/boot/libc.so.3=libc-ksz.so.3 lsm-qnet-ksz.so [type=link] /proc/boot/lsm-qnet.so=lsm-qnet-ksz.so ########################################################################### ## Библиотеки работы с диском и файловые системы ########################################################################### fs-qnx4-ksz.so [type=link] /proc/boot/fs-qnx4.so=fs-qnx4-ksz.so fs-qnx6-ksz.so [type=link] /proc/boot/fs-qnx6.so=fs-qnx6-ksz.so libcam.so io-blk.so cam-disk.so fs-dos.so cam-cdrom.so fs-cd.so fs-udf.so fs-nt.so fs-mac.so ########################################################################### ## Драйверы USB и устройств ввода ########################################################################### libhiddi.so libusbdi.so devu-xhci.so devu-ehci.so devu-ohci.so devu-uhci.so devh-usb.so devh-ps2ser.so [data=copy] ########################################################################### ## Менеджеры ресурсов, системные сервисы и утилиты ########################################################################### pci-bios=pci-acpi io-pkt-v4-hc-ksz [type=link] /proc/boot/io-pkt-ksz=io-pkt-v4-hc-ksz devb-eide devb-umass devb-ahci devb-sdmmc io-usb io-hid diskboot slogger fesh devc-fbcon-hid enum-usb pipe ########################################################################### ## Программы КСЗ ########################################################################### auditlogger2-ksz [type=link] /proc/boot/auditlogger2=auditlogger2-ksz spooler-ksz [type=link] /proc/boot/spooler=spooler-ksz unlink_list={ /proc/boot/devb-* }

Файл построения для APIC-систем с автоматическим входом в консольном режиме

Для автоматического входа в консоль следует отказаться от использования утилиты tinit в файле построения загрузочного образа (обратите внимание на последнюю команду в скрипте startup-script). При этом следует корректно настроить переменные окружения. Ниже представлен пример загрузочного образа для системы с процессорной архитектурой x86 в APIC-режиме.

# # Файл построения образа ФС ЗОСРВ "Нейтрино" # [image=0x1400000] [virtual=x86,bios compress=zstd] boot = { startup-apic PATH=/proc/boot:/bin:/sbin:/usr/bin:/usr/sbin \ LD_LIBRARY_PATH=/proc/boot:/lib:/lib/dll:/usr/lib \ procnto-smp-ksz -v -K z,d } [+script] startup-script = { procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2 display_msg Запуск менеджера системного журнала slogger -s100k & waitfor /dev/slog display_msg Запуск системных сервисов (менеджера каналов и очередей) pipe mqueue display_msg Запуск менеджера последовательного порта devc-ser8250 -e -b115200 & display_msg Запуск PCI сервера seedres pci-bios -dbios-v2 mptable waitfor /dev/pci 5 display_msg Запуск менеджера USB io-usb -duhci -dohci -dehci -dxhci waitfor /dev/io-usb display_msg Запуск менеджера ввода и консоли io-hid -d usb /dev/io-usb/io-usb devc-con-hid -n4 waitfor /dev/con1 reopen /dev/con1 display_msg Запуск менеджера аудита auditlogger2-ksz -c & #display_msg Запуск менеджера жестких дисков EIDE #devb-eide blk auto=partition dos exe=all cam quiet # Для носителей без поддержки синхронизации, например Compact Flash #devb-eide blk auto=partition dos exe=all qnx6 zero,dzero \ # sync=optional cam quiet #display_msg Запуск менеджера жестких дисков AHCI devb-ahci ahci nports=4 blk auto=partition dos exe=all qnx6 zero,dzero \ sync=optional cam quiet ####################################################################### ## Networking ####################################################################### display_msg Запуск менеджера io-pkt-ksz io-pkt-ksz -ptcpip forward,stacksize=8192 auditksz=1 -p qnet-ksz protected=1 waitfor /dev/bpf0 5 waitfor /dev/socket 5 mount -T io-pkt devnp-rtl8169.so ifconfig rt0 172.16.9.60 up ####################################################################### ## Filesystem ####################################################################### mount -tqnx6 /dev/hd0t177 / SYSNAME=nto TERM=qansi HOME=/tmp display_msg Запуск /etc/rc.d/rc.local waitfor /etc/rc.d/rc.local /etc/rc.d/rc.local & # Проверка целостности #waitfor /etc/ksz/ksz_list 5 #checkksz -v display_msg Запуск отладочной консоли [+session] ksh & } [type=link] /bin/sh=/proc/boot/ksh ########################################################################### ## Системные библиотеки ########################################################################### libc-ksz.so.3 [type=link] /proc/boot/libc.so=libc-ksz.so.3 [type=link] /proc/boot/libc.so.3=libc-ksz.so.3 libm.so libz.so.2 ########################################################################### ## Библиотеки работы с диском и файловые системы ########################################################################### fs-qnx4-ksz.so [type=link] /proc/boot/fs-qnx4.so=fs-qnx4-ksz.so fs-qnx6-ksz.so [type=link] /proc/boot/fs-qnx6.so=fs-qnx6-ksz.so libcam.so io-blk.so cam-disk.so fs-dos.so cam-cdrom.so fs-cd.so fs-udf.so ########################################################################### ## Драйверы USB и устройств ввода ########################################################################### libhiddi.so libusbdi.so devu-xhci.so devu-ehci.so devu-ohci.so devu-uhci.so devh-usb.so devh-ps2ser.so ########################################################################### ## Сетевые драйверы ########################################################################### devnp-shim.so libsocket.so lsm-qnet-ksz.so [type=link] /proc/boot/lsm-qnet.so=lsm-qnet-ksz.so devn-pcnet.so devnp-e1000.so devnp-rtl8169.so devnp-speedo.so [data=copy] ########################################################################### ## Менеджеры ресурсов: PCI, сеть, графика, аудио, драйвер диска и т.д. ########################################################################### seedres pci-bios=pci-bios-v2 io-pkt-v4-hc-ksz [type=link] /proc/boot/io-pkt-ksz=io-pkt-v4-hc-ksz [type=link] /sbin/io-pkt-v4-hc-ksz=io-pkt-v4-hc-ksz io-audio devb-eide devb-ahci devb-sdmmc devb-umass io-usb io-hid devc-con-hid devc-ser8250 slogger ########################################################################### ## Системные сервисы и утилиты ########################################################################### ksh pipe mqueue cp mkdir ls pidin rm mv sed ln on uname slay mount umount shutdown less setconf getconf grep rtc date cat chown chmod use which dcheck usb pci waitfor sloginfo find tar gzip xz liblzma.so.7 xargs ########################################################################### ## Сетевые утилиты ########################################################################### fs-nfs3 hostname ifconfig inetd ping telnetd ftpd nicinfo dhcp.client if_up libcrypto.so.2 libz.so.1 libnbutil.so ########################################################################### ## Disk drivers (filesystems support) ########################################################################### sync /sbin/fdisk=fdisk /sbin/mkdosfs=mkdosfs /sbin/mkqnx6fs=mkqnx6fs /sbin/chkdosfs=chkdosfs /sbin/chkqnx6fs=chkqnx6fs /sbin/chkfsys=chkfsys /usr/bin/fsysinfo=fsysinfo ########################################################################### ## Программы КСЗ ########################################################################### auditlogger2-ksz [type=link] /proc/boot/auditlogger2=auditlogger2-ksz checkksz [type=link] /proc/boot/check_ksz=checkksz [type=link] /proc/boot/cksum_ksz=checkksz spooler-ksz [type=link] /proc/boot/spooler=spooler-ksz

Аутентификация для протокола PPP с CHAP между двумя узлами с ЗОСРВ «Нейтрино»

В приводимом далее сценарии происходит запуск сервиса pppd протокола для соединения типа "точка-точка" (point-to-point) со сценарием chat. Далее ожидается звонок со стороны модема, формируется ответ на него и запускается служба PPP с аутентификацией через CHAP (Challenge-Handshake Authentication Protocol, протокол аутентификации с предварительным согласованием вызова). После завершения работы служб PPP или при возникновении ошибки во время ответа модема происходит перезапуск, и далее ожидается поступление следующего вызова:

#!/bin/sh SERIAL_PORT=$1 DEFAULT_SERIAL_PORT=/dev/ser1 PPPD="/usr/sbin/pppd" DO_CHAT="chat -v ABORT BUSY ABORT CARRIER ABORT ERROR \ TIMEOUT 32000000 RING ATA TIMEOUT 60 CONNECT \d\d\d" STTY="/bin/stty" ECHO="/bin/echo" LOCAL_IP=10.99.99.1 REMOTE_IP=10.99.99.2 if [ "$SERIAL_PORT" == "" ]; then SERIAL PORT=$DEFAULT_SERIAL_PORT fi # кое-что нужно проинициализировать $STTY +sane +raw < $SERIAL_PORT while [ true ]; do $ECHO "Waiting on modem $SERIAL_PORT..." $ECHO "Starting PPP services..." $PPPD connect "$DO_CHAT" debug nodetach auth +chap \ $LOCAL_IP:$REMOTE_IP $SERIAL_PORT done;

Параметр TIMEOUT имеет значение 32000000, потому что до истечения времени ожидания приходится ждать достаточно долго, а для сценария chat нельзя устанавливать бесконечное время ожидания. Файл /etc/ppp/chap-secrets имеет такое содержимое:

# Разрешаются секретные адреса для клиент-серверной работы ############################################################## * * "password" *

Можно расширить возможности сценария chat, сделав возможности ответа модема более устойчивыми (робастными) по отношению к конкретным событиям, при которых должны перезапускаться отвечающие службы, отличные от тех, что подразумеваются в событиях. Можно также добавить и другие функциональные возможности.

Ниже представлен пример файла построения загрузочного образа, который используется для настройки машины на работу с соединениями telnet (для входа в удаленную систему с целью подключения к командной оболочке) и на доступ по протоколу tftp (передача файлов) поверх протокола PPP:

[virtual=x86,bios +compress] .bootstrap = { startup-bios -K8250.2f8.0.57600.1843200.16 -v PATH=/proc/boot procnto -vvv } [+script] startup-script = { seedres pci-bios & waitfor /dev/pci # Запуск клавиатурной консоли 1 devc-con -n8 & # Запуск драйвера последовательного порта A waitfor /dev/con1 reopen /dev/con1 devc-ser8250 -e -b38400 waitfor /dev/ser1 pipe touch /tmp/syslog syslogd devc-pty io-pkt-ksz -ppppmgr -pttcpip waitfor /dev/io-net/ip ppp inetd & display_msg "[Shell]" [+session] PATH=/bin:/proc/boot /bin/sh & } # Установить указатель для /tmp на область разделяемой памяти... [type=link] /tmp=/dev/shmem # Для программ нужно, чтобы линкер реального времени # (ldqnx.so) находился в фиксированном месте [type=link] /usr/lib/ldqnx.so.2=/proc/boot/libc.so [type=link] /bin/sh=/bin/ksh # Мы используем разделяемую C-библиотеку (которая содержит также # загрузчик реального времени) libc.so libsocket.so # Перечисленные выше файлы могут разделяться несколькими процессами [data=c] devc-con devc-ser8250 devc-pty pci-bios seedres pipe io-pkt-v4 /bin/echo=echo /bin/stty=stty tail pci chat ifconfig ping syslogd touch ./modem ans ppp.sh # Конфигурирование сервисов (telnetd и т.д.) inetd /usr/sbin/telnetd=telnetd /usr/sbin/tftpd=tftpd /usr/sbin/pppd=pppd /bin/login=login /bin/ksh=ksh /etc/ppp/chap-secrets = { # Секретные адреса клиент-серверной конфигурации ######################################### * * "password" * } /etc/syslog.conf = { *.* /tmp/syslog } # Файлы конфигурирования Inetd /etc/services= /etc/services /etc/protocols= /etc/protocols /etc/termcap= /etc/termcap /etc/passwd= /etc/passwd /etc/default/login= /etc/default/login /etc/resolv.conf= /etc/resolv.conf /etc/shadow = /etc/shadow /etc/inetd.conf = { telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd tftp dgram udp wait root /usr/sbin/tftpd in.tftpd } /etc/hosts = { 127.1 localhost.localdomain localhost 10.99.99.1 server server 10.99.99.2 client client }


Note: Для формирования образа с помощью данного файла построения загрузочного образа необходимо подключение к системе с учетной записью root. Это связано с тем, что используются копии файлов /etc/passwd и /etc/shadow (что позволяет легче запоминать пароли), но вы можете также использовать собственные версии файлов внутри файла построения загрузочного образа в качестве включаемых (inline).

Используя два компьютера с модемами, можно один из них настроить на автоматический ответ, запуск служб протокола PPP и выполнение аутентификации. Затем можно воспользоваться службами telnet и tftp для доступа с клиента на сервер. Используйте такие параметры сервиса pppd для клиента (в дополнение к тем же параметрам в файле chap-secrets):

pppd connect "chat -v -f/tmp/dial_modem" auth +chap /dev/ser3

но вместо /dev/ser3 впишите соответствующий последовательный порт для модема на стороне клиента. Проверьте, чтобы использовался полный путь к сценарию вашего модема. Сценарий chat, или dial-modem, достаточно прост:

ABORT 'NO CARRIER' ABORT 'ERROR' ABORT 'BUSY' '' ATDTxxxxxxx CONNECT ''

Тематические ссылки:

mkefs, mketfs, mkifs, mkqnx6fsimg2, mkxfs

Файл построения образа ФС




Предыдущий раздел: Загрузочные образы