Бездисковый компьютер запрашивает у NFS сервера монтирование /tftpboot/< IP адрес бездискового компьютера> (в ядре Linux 2.1 и выше это - /tftpboot/<имя бездискового компьютера в bootptab> ) в качестве корневого каталога '/'. Вы должны экспортировать его с сервера (rw, no_root_squash) так как бездисковый компьютер захочет в него писать (регистрационные файлы и т.д.).
Корневой каталог / должен содержать /sbin, /bin, /lib, /etc, /var, /tmp, /root, /dev и /proc.
/sbin, /bin, /lib могут быть копиями с существующей Redhat Linux системы. Они могут совместно использоваться всеми бездисковыми компьютерами. Они не должны быть ссылками на оригинальные файлы.
/etc, /var и /dev не должны быть совместно используемыми копиями. Постройте /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/fstab, /etc/conf.modules, и прочее. Выключите все не нужные вам сетевые службы. Удалите все лишнее из /var, например базу данных RPM, файлы lpd.
/root и /proc должны существовать. /tmp должен существовать и иметь режим доступа 1777.
Вероятно вы захотите создать токи монтирования /usr и /home. /usr может быть смонтирован в режиме ro (только чтение).
Должно быть достаточно около 10 Мб на бездисковый компьютер плюс около 15 Мб разделяемых файлов. Если ваши бездисковые компьютеры очень похожи, также можно совместно использовать один образ ядра.
Вот пример скрипта для создания первой корневой файловой системы.
#!/bin/sh if [ $# != 1 ] then echo Usage: $0 client-IP-addr exit 1 fi cd / umask 022 mkdir -p /tftpboot/$1 # создаем каталоги for d in home mnt proc tmp usr do mkdir /tftpboot/$1/$d done chmod 1777 /tftpboot/$1/tmp touch /tftpboot/$1/fastboot chattr +i /tftpboot/$1/fastboot # копируем каталоги cp -a bin lib sbin dev etc root var /tftpboot/$1 cat <<EOF Теперь в /tftpboot/$1/etc, редактируем sysconfig/network sysconfig/network-scripts/ifcfg-eth0 fstab conf.modules и настраиваем rc.d/rc3.d EOF |
Вот примерный скрипт для дублирования корневой файловой системы
#!/bin/sh if [ $# != 2 ] then echo Usage: $0 olddir newdir exit 1 fi cd /tftpboot if [ ! -d $1 ] then echo $1 is not a directory exit 1 fi umask 022 mkdir -p $2 # создаем каталоги for d in home mnt proc tmp usr do mkdir $2/$d done chmod 1777 $2/tmp touch $2/fastboot chattr +i $2/fastboot # link these ones for d in bin lib sbin do (cd $1; find $d -print | cpio -pl ../$2) done # копируем for d in dev etc root var do cp -a $1/$d $2 done cat <<EOF Теперь в /tftpboot/$2/etc редактируем sysconfig/network sysconfig/network-scripts/ifcfg-eth0 fstab (maybe) conf.modules (maybe) и настраиваем rc.d/rc3.d EOF |
На сервере, проверьте, что бездисковый компьютер соответствует пунктам в /etc/X11/xdm/Xaccess и закомментируйте :0 /etc/X11/xdm/Xservers. Затем проверьте, что xdm запускается з init скриптов.
На клиенте запустите X -query server
вы увидите окно xdm с приглашением к входу, и затем все ваши X клиенты будут запускаться на сервере.
Другое применение - использовать технику загрузки по сети для маршрутизаторов, серверов печати (но вы не должны организовывать на них спул), отдельные применения и т.п.