LINUX.ORG.RU

pxeboot и сборка rootfs

 ,


0

1

Понадобилось мне настроить так называемый «толстый клиент» pxeboot(т.е. при загрузке выкачиваем все что нужно с сервера и работаем локально), занимаюсь этим впервые да и о загрузке линукса в принципе знаю понаслышке. dhcp, tftp, nfs настроил, все загружается, дошло дело до rootfs... В сети нашел несколько вариантов:

debootstrap не подходит т.к. сервер на arm, клиент на x64(ведь в новую систему нужно делать чрут что бы доустановить все необходимое)

LTSP в принципе подойдет, есть опция --arch amd64 для создания клиента, но сильно ограничено по дистрам.

Хочу бы поставить elementary os и в связи с этим вопрос: [trollmode]чтоделатькудыбечь?[/trollmode]. Мне нужно установить дистр локально, потом скопировать оттуда рамдиск initrd.img ядро vmlinuz и созданный архив фс rootfs.squashfs? Или есть другой выход?

[upd] и как потом обновлять систему, устанавливать/удалять программы?

Спасибо за любую помощь!

★★★

Последнее исправление: lucky_guy (всего исправлений: 1)

Получилось загрузить установочный образ по сети.

монтируем образ;

cp -rv /dev/loop0 /mnt/rootfs
ln -s /mnt/rootfs/casper/vmlinuz /var/lib/tftpboot/vmlinuz
ln -s /mnt/rootfs/casper/initrd.lz /var/lib/tftpboot/initrd.lz
ln -s /mnt/rootfs/casper/filesystem.squashfs /var/lib/tftpboot/filesystem.squashfs

cat /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT vesamenu.c32

LABEL Testing
        KERNEL vmlinuz
        APPEND initrd=initrd.lz fetch=filesystem.squashfs boot=casper netboot=nfs nfsroot=10.0.0.1:/mnt/rootfs

cat /etc/exports
/mnt/storage/rootfs 10.0.0.1(rw,no_subtree_check,async,all_squash)
Работает с убунтой и основанными на ней(с elementaryos получилось).

lucky_guy ★★★
() автор топика
Ответ на: комментарий от Belen

почитал... iSCSI что-то дико сложное, а вот NBD интересно. Можно ли примонтировать его и установить туда линукс, а затем подправить initrd, что бы он автоматически монтировал NBD как корневую фс?

lucky_guy ★★★
() автор топика

Поставил хард с сервачка на ноут, сделал новый раздел, установил ось,

root@PXE:cat /etc/initramfs-tools/initramfs.conf | grep BOOT
BOOT=nfs
root@PXE:mkinitramfs

root@bananapipro:cat /etc/exports
/mnt/rootfs *(rw,async,no_subtree_check,insecure,no_root_squash)
root@bananapipro:ln -s /mnt/rootfs/initrd.img /var/lib/tftpboot/initrd
root@bananapipro:ln -s /mnt/rootfs/vmlinuz /var/lib/tftpboot/vmlinuz
root@bananapipro:/var/lib/tftpboot/pxelinux.cfg/default
...
label PXELinux
	kernel vmlinuz
	append initrd=initrd root=/dev/nfs nfsroot=10.0.0.1:/mnt/rootfs ip=dhcp rw
...
по идее обновление ядра дожно проходить без казусов, ждем.

lucky_guy ★★★
() автор топика
Ответ на: комментарий от lucky_guy

При обновлении файлу ядра устанавливаются права 600 из-за чего серв не может отдать его по tftp, но если подправить то все работает. Для удобства можно создать ссылки на старые ядра

ln -s /mnt/rootfs/vmlinuz.old /var/lib/tftpboot/vmlinuz.old
ln -s /mnt/rootfs/initrd.img.old /var/lib/tftpboot/initrd.old

lucky_guy ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.