LINUX.ORG.RU
решено ФорумAdmin

nfs, бездисковая система и куча боли

 , , , ,


0

3

Вкратце: решил я вместо вызывающего боль и лаги multiseat запилить из имеющегося железа бездисковую рабочую станцию. NFS, iPXE и http-сервер с ядром и initramfs имеются. Настроил по гайду (ArchWiki) плюс немного отсебятины, вроде ранее упомянутого iPXE в качестве загрузчика. Вопрос: почему ругается при запуске? mount.nfs4: Protocol not supported

Конфиги:

Скрипт файла iPXE

#!ipxe

dhcp

set menu-timeout 5000
isset ${menu-default} || set menu-default arch

:start
menu iPXE boot menu for Chiruno
item --gap --		------------------------- Operating systems ------------------------------
item --key a arch	Boot Arch via NFS
item --key n nbxyz	Boot NetBoot.xyz
item --gap --		------------------------- Advanced options -------------------------------
item --key c config	Configure settings
item shell		Drop into iPXE shell
item reboot		Reboot the PC
item
item --key x exit	Exit iPXE and boot from the rest of your BIOS boot order
choose --timeout ${menu-timeout} --default ${menu-default} selected || goto cancel
goto ${selected}

:cancel
echo You cancelled the menu, dropping you to a shell

:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:config
config
goto start

:arch
echo Booting Arch via NFS
set base-url http://192.168.1.4/netboot
kernel ${base-url}/vmlinuz-linux ip=:::::eth0:dhcp nfsroot=192.168.1.4:/ rw splash radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1
initrd ${base-url}/initramfs-linux.img
boot || goto failed
goto start

:nbxyz
echo Netboot.xyz's undionly.kpxe loading...
next-server 192.168.1.1
filename undionly-nbxyz.kpxe
boot || goto failed
goto start

/etc/exports

/srv/dws_root 192.168.1.0/24(rw,fsid=root,no_root_squash,no_subtree_check)

/etc/nfs.conf

[nfsd]
host=192.168.1.4
udp=y
tcp=y
vers3=n
vers4=y
vers4.0=y
vers4.1=y
vers4.2=y
rdma=y
rdma-port=20049

При запуске в появляющейся оболочке команды mount.nfsv4 -vv 192.168.1.4:/ /new_root/ прога пытается несколько раз примонтировать расшаренную папку, и каждый раз спотыкается на ошибке mount(2): Protocol not supported



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

А ты драйвера NFS в сборку добавил? В initramfs тоже?

Выглядит так, будто по сети ядро Linux и initramfs успешно прилетают на машину, стартуют из RAM и падают на помытке примонтировать по NFSv4 /, так как драйверов нет в наличии.

https://wiki.archlinux.org/title/Diskless_system#Bootstrapping_installation

В этом разделе это описано.

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 2)
Ответ на: комментарий от Vsevolod-linuxoid

Модуль nfs4 включил.

/etc/mkinitcpio.conf

MODULES=(amdgpu nfs nfs4 usbhid i8042)
BINARIES=(/usr/bin/mount.nfs4 /usr/bin/bash /usr/bin/sh /usr/bin/mount /usr/bin/umount)
FILES=()
HOOKS=(base udev microcode autodetect kms modconf keyboard block netnfs4 filesystems plymouth plymouth-shutdown)
toxamactep
() автор топика

Если честно, то я до сих пор не могу понять как без rpcbind/portmap можно подключить nfs.

В стартовых скриптах обычно сначала загружают модули sunrpc, lockd, nfs, nfs[34], потом запускают rpcbind/portmap, потом запускают rpc.statd и только потом удается смонтировать nfs.

Или в nfs4 чего-то из этого уже не нужно?

vel ★★★★★
()