nixp.ru v3.0

19 января 2017,
четверг,
18:10:43 MSK

Аутсорсинг Linux с компанией «Флант»
anonymous написал 25 августа 2004 года в 19:57 (848 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

Slackware 10.

Вторая машина грузится по PXE. На главной настроен dhcp, tftp, nfs. Всё вроде работает, ядро монолитное 2.6.8.1. Содержимое файла /tftpboot/pxelinux.cfg:

label linux

kernel /vmlinuz-2.6.8.1

APPEND nfsroot=192.168.0.1:/ nfsaddrs=192.168.0.1 root=/dev/nfs

Файл /etc/exports

/ (ro) (ro, insecure. no_root_squash)

При загрузке РХЕ-шной машины надо чтобы стартовал init и цеплялся / главной машины, а так только грузится ядро и всё, до init дело не доходит и / не монтируется. Подскажите куда копать?

Genie

создать правильный initrd и грузить его:

$ cat tftpboot/pxelinux.cfg/XXXXXX
prompt 0
timeout 0
default gate
label gate
        kernel gate/vmlinuz
        append vga=7 root=/dev/ram0 ramdisk_size=8192 initrd=gate/initrd


(это у меня так грузится… шлюз. без винта он у меня вообще)

anonymous

тогда загрузка стопорится с сообщением:

could not find ramdisk image: /initrd.gz

Genie

эээххх…

цитирую:

создать правильный initrd

соответственно, должна быть поддержка initrd в ядре.

для nfs-загружаемого pxe-клиента в debian есть несколько пакетов: diskless — создаёт на сервере нужное дерево, netboot — собственно для загрузки самого такого компьютера, diskless-iname-secure и diskless-image-simple — пакеты с файлами, необходимыми для корневого nfs-образа, nfsboot — для предоставления собственно такого способа.

в общем, если не особо понятно, что делать, и как — идёшь на packages.debian.org, скачиваешь эти пакеты (или исходники к ним) и разбираешься.

в этом плане slackware тем и не удобна, что практически всё надо делать самому. это хорошо, когда знаешь, что же именно тебе надо, но во всех остальных случаях появляются проблемы.

anonymous

Подскажи тогда, что мне даст подгрузка образа initrd, если у меня монолитное ядро? Мне нужен доступ к корню именно по nfs.

Короче, всё настроил, грузит и монтирует по nfs!!

Теперь незадача вот в чем:

после загрузки сообщение-

/sbin/e2fsck: no such file or directory while to open /dev/hda1

the superblock couldn’t be read of doesn’t describe a correct ext2 filesystem.

После этого выход в single-user maintenance shell, причем либо control-d b и перезагрузка, или набрать пароль рута и попадаешь в нормальный shell, и имеешь доступ к файлам и вроде всё ок.

Как бы настроить чтобы попадать прямиком в shell……

/ по nfs экспортируется с опциями (ro,insecure.no_root_squash)

Genie

а что, в initrd только модули могут находиться? :))

см. /etc/fstab, /etc/mtab для загружаемой машинки.

и, соответственно, стартовые скрипты при загрузке системы

anonymous

пляски продолжаются…

покоцал скрипты, теперь РХЕ машина догружается до логина!

Не совсем понятно как жить при загрузках с монтированием / как ro. Почти ничего нельзя сделать, даже по ssh зарутитьтся, все логи в read-only! Вот думаю, что безопаснее: смонтировать nfsroot=rw, или скопировать весь этот локальный / в /tftpboot/pxeclient и только его монтировать как nfsroot=rw?

Genie

эээ..

общим правилом является вынесение изменяемых файлов (на их месте делаются симлонки) либо в /dev/shm, либо в отдельный nfs-rw ресурс.

anonymous

да, я так и сделал, т.к. уж слишком несовместимые загрузочные скрипты получаются…

anonymous

всё устраивает, единственная беда:

когда делаю ping pxeclient на самом pxeclient , то получаю connect: Invalid argument. А если коннектиться по ssh к pxeclient, то после авторизации терминал зависает!!!

Genie

а есть ли

/etc/protocols

и настроен ли

/etc/resolv.conf

(или /etc/hosts)

anonymous

да, всё есть — взято 1:1 с главной машины! В /etc/hosts только главная машина со статическим ip.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.