Hi, I'm trying to setup diskless operation between my FreeBSD desktop (server) and my laptop (client) I have NFS_ROOT and all other necessary options compiled into my kernel, I have this in /etc/exports: =========================================================================/ -ro -maproot=root -alldirs 192.168.0.3 /usr -ro -alldirs 192.168.0.3 ========================================================================= and this in dhcpd.conf =========================================================================subnet 192.168.0.0 netmask 255.255.255.0 { use-host-decl-names on; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.1; host laptop { hardware ethernet 00:1E:68:45:0D:98; fixed-address 192.168.0.3; filename "pxeboot"; option root-path "192.168.0.1:/"; } ========================================================================= when I attempt to (diskless) boot the laptop - stage one and two of the boot process are fine...actually stage tree which is the kernel is also fine...the kernel boots and starts bringing the system up...however it's unable to mount the NFS root for some reason and the system freezes here: =========================================================================... ... Trying to mount root from ufs:/dev/ad4s1a Trying to mount root from nfs: NFS ROOT: 192.168.0.1:/ nfs send error 13 for server 192.168.0.1:/ bge0: link state changed to DOWN bge0: link state changed to UP ========================================================================= I think error 13 means attempt to write on read-only mounted NFS...but it does not make sense, does it? do you have any ideas what could be the problem? thanks ----------------------------------------------------------------- ????? ???????? ?????? ?? Vesti.bg! http://www.vesti.bg
Hi Tim, thanks a lot for your answer, I'll try that out tomorrow. cheers, mgp > > >Please compare my working configuration to yours to check. I found >lots of odd problems in your post and I thought it'd be best to just >run with this clean slate. > >Network config: > One low-power PC Engines ALIX board running as the NFS server, with >a microdrive partitioned off for it's own system, plus a separate >mounted partition for diskless clients. This config works best with >one diskless client, and is not the documented way from FreeBSD >handbook to accomplish diskless workstations. I'll note what I >immediately saw as an error in your config during these snippets. > >alix# bsdlabel /dev/ad0s1 ># /dev/ad0s1: >8 partitions: ># size offset fstype [fsize bsize bps/cpg] > a: 1048576 16 4.2BSD 2048 16384 8 > c: 12000177 0 unused 0 0 # "raw" part, don't edit > h: 10951585 1048592 4.2BSD 2048 16384 28552 > >alix# cat /etc/fstab >/dev/ad0s1a / ufs rw 0 0 >/dev/ad0s1h /diskless ufs rw 0 0 > >alix# cat /etc/exports >/diskless -maproot=0:0 -network 192.168.0.0 -mask 255.255.255.0 > >*** maproot needs a user and group definition. > >alix# cat /etc/rc.conf >rpcbind_enable="YES" >nfs_server_enable="YES" >rpc_statd_enable="YES" >rpc_lockd_enable="YES" > >*** rpc_lockd provides file locking, rpc_lockd depends on rpc_statd > > >************** Diskless side > >*** I believe the root filesystem information is passed on from dhcp, >to pxeboot, to the kernel, in order to mount the root filesystem. You >can have a 0-size fstab file for read-write access, or provide the >read-only nfs root here. If you want it read only, it's best to >specify it here, such as below > >alix# cat /diskless/etc/fstab >192.168.0.1:/diskless / nfs ro 0 0 > >alix# cat /diskless/etc/rc.conf >rpcbind_enable="YES" >nfs_client_enable="YES" >rpc_statd_enable="YES" >rpc_lockd_enable="YES" > >*** File locking needed lockd/statd support on the client, also. >Think of editing /etc/passwd (the proper way) when you need file >locking. > > > > >This will result in a basic, 1-workstation diskless setup working. >The difference is that the FreeBSD rc startup looks for a /conf >directory which can provide multiple overrides to multiple >workstations. I tried setting up a livecd with a /conf directory only >to find that the /conf is checked, no matter which medium it's booting >off of. > >This config does NOT cover the DHCP scope, TFTP, IPs or other settings >that might be pertinent to booting diskless-ly. > >Note that by sharing your exact / filesystem as an export is a bad >idea. It will essentially create a NFS server on a NFS server round >robin and probably won't connect. It's why you setup a separate >partition (EVEN if it's a file-backed filesystem mounted with the help >of mdconfig on a separate mountpoint on your filesystem). > >Once you revise your config, please try again. > > >--Tim > ----------------------------------------------------------------- ????? ???????? ?????? ?? Vesti.bg! http://www.vesti.bg
<snip all> Please compare my working configuration to yours to check. I found lots of odd problems in your post and I thought it'd be best to just run with this clean slate. Network config: One low-power PC Engines ALIX board running as the NFS server, with a microdrive partitioned off for it's own system, plus a separate mounted partition for diskless clients. This config works best with one diskless client, and is not the documented way from FreeBSD handbook to accomplish diskless workstations. I'll note what I immediately saw as an error in your config during these snippets. alix# bsdlabel /dev/ad0s1 # /dev/ad0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1048576 16 4.2BSD 2048 16384 8 c: 12000177 0 unused 0 0 # "raw" part, don't edit h: 10951585 1048592 4.2BSD 2048 16384 28552 alix# cat /etc/fstab /dev/ad0s1a / ufs rw 0 0 /dev/ad0s1h /diskless ufs rw 0 0 alix# cat /etc/exports /diskless -maproot=0:0 -network 192.168.0.0 -mask 255.255.255.0 *** maproot needs a user and group definition. alix# cat /etc/rc.conf rpcbind_enable="YES" nfs_server_enable="YES" rpc_statd_enable="YES" rpc_lockd_enable="YES" *** rpc_lockd provides file locking, rpc_lockd depends on rpc_statd ************** Diskless side *** I believe the root filesystem information is passed on from dhcp, to pxeboot, to the kernel, in order to mount the root filesystem. You can have a 0-size fstab file for read-write access, or provide the read-only nfs root here. If you want it read only, it's best to specify it here, such as below alix# cat /diskless/etc/fstab 192.168.0.1:/diskless / nfs ro 0 0 alix# cat /diskless/etc/rc.conf rpcbind_enable="YES" nfs_client_enable="YES" rpc_statd_enable="YES" rpc_lockd_enable="YES" *** File locking needed lockd/statd support on the client, also. Think of editing /etc/passwd (the proper way) when you need file locking. This will result in a basic, 1-workstation diskless setup working. The difference is that the FreeBSD rc startup looks for a /conf directory which can provide multiple overrides to multiple workstations. I tried setting up a livecd with a /conf directory only to find that the /conf is checked, no matter which medium it's booting off of. This config does NOT cover the DHCP scope, TFTP, IPs or other settings that might be pertinent to booting diskless-ly. Note that by sharing your exact / filesystem as an export is a bad idea. It will essentially create a NFS server on a NFS server round robin and probably won't connect. It's why you setup a separate partition (EVEN if it's a file-backed filesystem mounted with the help of mdconfig on a separate mountpoint on your filesystem). Once you revise your config, please try again. --Tim
Hi, thanks again for your response: here's what I have, what I do and what I want to happen 1. I have my desktop machine which is running FreeBSD-7.2-STABLE-amd64 from June. I created a new distribution like that (as shown in the handbook - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-diskless.html): ===============================================================================mkdir /storage0/diskless cd /usr/src export DESTDIR=/storage0/diskless make buildworld buildkernel installworld distribution installkernel =============================================================================== and created /storage0/diskless/etc/fstab with the following content: ===============================================================================192.168.0.1:/storage0/diskless / nfs ro 0 0 =============================================================================== and I put this in /etc/exports (having in mind your advice about the group) ===============================================================================/storage0/diskless -maproot=0:0 -ro -alldirs 192.168.0.3 /usr -ro -alldirs 192.168.0.3 =============================================================================== and this is in my dhcpd.conf (I tried with and without the comments - no difference, same result) =============================================================================== host laptop { hardware ethernet 00:1E:68:45:0D:98; # option host-name "laptop"; # ddns-hostname "laptop"; # next-server 192.168.0.1; fixed-address 192.168.0.3; filename "pxeboot"; option root-path "192.168.0.1:/storage0/diskless"; } =============================================================================== 2. And I do this: ===============================================================================rpcbind nfsd -u -t -n 4 mountd -r /etc/rc.d/ineted onestart # I have my TFTP root set to /boot /usr/local/etc/rc.d/isc-dhcpd onestart =============================================================================== then I start my laptop (which has a 64bit CPU therefore it should be compatible with my amd64 kernel) enter the boot menu and choose the network boot option and I can see that it acquires its IP address then fetches pxeboot over TFTP then pxeboot loads the kernel and the kernel starts bringing the system up...and these are the last few lines where the system stops: ===============================================================================... ... Trying to mount root from nfs:192.168.0.1:/storage0/diskless NFS ROOT: 192.168.0.1:/storage0/diskless nfs send error 13 for server 192.168.0.1:/storage0/diskless bge0: link state changed to DOWN bge0: link state changed to UP =============================================================================== 3. What I want is to have a server that multiple clients can boot from (diskless-ly as you say). And I want all file systems provided by the server to be read-only (which means I don't need lockd, do I...) Do you have an idea what could be my problem? ...obviously my TFTP and DHCP services are fine, even the NFS as pxeboot is able to download the kernel...maybe something in my distribution in /storage0/diskless is not OK? thanks mgp >Please compare my working configuration to yours to check. I found >lots of odd problems in your post and I thought it'd be best to just >run with this clean slate. > >Network config: > One low-power PC Engines ALIX board running as the NFS server, with >a microdrive partitioned off for it's own system, plus a separate >mounted partition for diskless clients. This config works best with >one diskless client, and is not the documented way from FreeBSD >handbook to accomplish diskless workstations. I'll note what I >immediately saw as an error in your config during these snippets. > >alix# bsdlabel /dev/ad0s1 ># /dev/ad0s1: >8 partitions: ># size offset fstype [fsize bsize bps/cpg] > a: 1048576 16 4.2BSD 2048 16384 8 > c: 12000177 0 unused 0 0 # "raw" part, don't edit > h: 10951585 1048592 4.2BSD 2048 16384 28552 > >alix# cat /etc/fstab >/dev/ad0s1a / ufs rw 0 0 >/dev/ad0s1h /diskless ufs rw 0 0 > >alix# cat /etc/exports >/diskless -maproot=0:0 -network 192.168.0.0 -mask 255.255.255.0 > >*** maproot needs a user and group definition. > >alix# cat /etc/rc.conf >rpcbind_enable="YES" >nfs_server_enable="YES" >rpc_statd_enable="YES" >rpc_lockd_enable="YES" > >*** rpc_lockd provides file locking, rpc_lockd depends on rpc_statd > > >************** Diskless side > >*** I believe the root filesystem information is passed on from dhcp, >to pxeboot, to the kernel, in order to mount the root filesystem. You >can have a 0-size fstab file for read-write access, or provide the >read-only nfs root here. If you want it read only, it's best to >specify it here, such as below > >alix# cat /diskless/etc/fstab >192.168.0.1:/diskless / nfs ro 0 0 > >alix# cat /diskless/etc/rc.conf >rpcbind_enable="YES" >nfs_client_enable="YES" >rpc_statd_enable="YES" >rpc_lockd_enable="YES" > >*** File locking needed lockd/statd support on the client, also. >Think of editing /etc/passwd (the proper way) when you need file >locking. > > > > >This will result in a basic, 1-workstation diskless setup working. >The difference is that the FreeBSD rc startup looks for a /conf >directory which can provide multiple overrides to multiple >workstations. I tried setting up a livecd with a /conf directory only >to find that the /conf is checked, no matter which medium it's booting >off of. > >This config does NOT cover the DHCP scope, TFTP, IPs or other settings >that might be pertinent to booting diskless-ly. > >Note that by sharing your exact / filesystem as an export is a bad >idea. It will essentially create a NFS server on a NFS server round >robin and probably won't connect. It's why you setup a separate >partition (EVEN if it's a file-backed filesystem mounted with the help >of mdconfig on a separate mountpoint on your filesystem). > >Once you revise your config, please try again. > > >--Tim >_______________________________________________ >freebsd-stable@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-stable >To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" > ----------------------------------------------------------------- ????? ???????? ?????? ?? Vesti.bg! http://www.vesti.bg