Date: Tue, 19 Apr 2016 08:32:35 -0600 From: Ian Lepore <ian@freebsd.org> To: Alan Somers <asomers@freebsd.org> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, BERTRAND =?ISO-8859-1?Q?Jo=EBl?= <joel.bertrand@systella.fr> Subject: Re: Diskless workstation and some minor issues Message-ID: <1461076355.1232.17.camel@freebsd.org> In-Reply-To: <CAOtMX2ggXOe3q5jQXztVDjN68t_rbcBqPtWfUtgoveXREckELg@mail.gmail.com> References: <57163991.4000100@systella.fr> <1461075243.1232.9.camel@freebsd.org> <CAOtMX2ggXOe3q5jQXztVDjN68t_rbcBqPtWfUtgoveXREckELg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2016-04-19 at 08:16 -0600, Alan Somers wrote: > On Tue, Apr 19, 2016 at 8:14 AM, Ian Lepore <ian@freebsd.org> wrote: > > > On Tue, 2016-04-19 at 15:58 +0200, BERTRAND Joël wrote: > > > > Hello, > > > > > > > I have installed a diskless workstation (10.2-RELEASE > > > -p14) that > > mounts > > > its rootfs from a NetBSD nfs server. My fstab is : > > > > > > root@pythagore:~ # cat /etc/fstab > > > # Device Mountpoint FStype Options Dump Pass# > > > 192.168.10.128:/srv/pythagore / nfs > > > nfsv3,tcp,soft,intr,rw > > > 0 0 > > > ... > > > 192.168.10.128:/home /home nfs > > > nfsv3,tcp,soft,intr,rw > > > 0 0 > > > root@pythagore:~ # > > > > > > > First question. I have installed this diskless > > > workstation with > > an USB > > > stick. Now, FreeBSD kernel mounts rootfs over NFS. But in a first > > > time, > > > it tries to mount usbus0 (!) : > > > > > > Apr 9 10:48:00 pythagore kernel: Root mount waiting for: usbus2 > > > usbus1 > > > usbus0 > > > Apr 9 10:48:00 pythagore kernel: uhub0: 2 ports with 2 > > > removable, self > > > powered > > > Apr 9 10:48:00 pythagore kernel: uhub2: 2 ports with 2 > > > removable, self > > > powered > > > Apr 9 10:48:00 pythagore kernel: uhub1: 21 ports with 21 > > > removable, > > > self powered > > > Apr 9 10:48:00 pythagore kernel: Root mount waiting for: usbus2 > > > usbus1 > > > usbus0 > > > Apr 9 10:48:00 pythagore kernel: ugen0.2: at usbus0 > > > Apr 9 10:48:00 pythagore kernel: ugen2.2: at usbus2 > > > Apr 9 10:48:00 pythagore kernel: uhub3: > > > class 9/0, rev 2.00/0.00, addr 2> on usbus2 > > > Apr 9 10:48:00 pythagore kernel: ugen1.2: at usbus1 > > > Apr 9 10:48:01 pythagore kernel: uhub4: > > > class 9/0, rev 2.00/0.00, addr 2> on usbus1 > > > Apr 9 10:48:01 pythagore kernel: Root mount waiting for: usbus2 > > > usbus1 > > > usbus0 > > > Apr 9 10:48:01 pythagore kernel: uhub4: 6 ports with 6 > > > removable, self > > > powered > > > Apr 9 10:48:01 pythagore kernel: uhub3: 8 ports with 8 > > > removable, self > > > powered > > > Apr 9 10:48:01 pythagore kernel: ugen0.3: at usbus0 > > > Apr 9 10:48:01 pythagore kernel: ukbd0: > > > 0/0, rev 1.10/1.12, addr 2> on usbus0 > > > Apr 9 10:48:01 pythagore kernel: kbd2 at ukbd0 > > > Apr 9 10:48:01 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting > > > device > > > descriptor at addr 3 failed, USB_ERR_IOERROR > > > Apr 9 10:48:01 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting > > > device > > > descriptor at addr 3 failed, USB_ERR_IOERROR > > > Apr 9 10:48:01 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:01 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:01 pythagore kernel: usbd_setup_device_desc: getting > > > device > > > descriptor at addr 3 failed, USB_ERR_IOERROR > > > Apr 9 10:48:02 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:02 pythagore kernel: usbd_setup_device_desc: getting > > > device > > > descriptor at addr 3 failed, USB_ERR_IOERROR > > > Apr 9 10:48:02 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:02 pythagore kernel: Root mount waiting for: usbus0 > > > Apr 9 10:48:02 pythagore kernel: usbd_setup_device_desc: getting > > > device > > > descriptor at addr 3 failed, USB_ERR_IOERROR > > > Apr 9 10:48:02 pythagore kernel: ugen0.4: at usbus0 > > > (disconnected) > > > Apr 9 10:48:02 pythagore kernel: uhub_reattach_port: could not > > > allocate > > > new device > > > Apr 9 10:48:02 pythagore kernel: Trying to mount root from > > > nfs:192.168.10.128:/srv/pythagore [nfsv3,tcp,soft,intr,rw]... > > > Apr 9 10:48:02 pythagore kernel: NFS ROOT: 192.168.10.128: > > /srv/pythagore > > > > > > > I don't understand why kernel tries to mount an USB > > > rootfs... > > And I > > > haven't found how fix this trouble. > > > > > > > At this point during booting, the system doesn't know what physical > > device may hold the rootfs, so it waits until it has enumerated all > > the > > devices on all the USB busses, in case one of them is required to > > mount > > root (even in the NFS case, it could require a USB network device). > > > > To disable this wait, put hw.usb.no_boot_wait=1 in loader.conf. > > > > > Second trouble. /var/log/message contains a lot of : > > > Apr 9 10:50:00 pythagore atrun[862]: cannot lock /var/at/jobs/: > > > Permission denied > > > > > > > Of course, lockd and statd are running on nfs server. > > > Permission > > on > > > /var/at are : > > > > > > root@pythagore:/var/at # ls -al > > > total 8 > > > drwxr-xr-x 4 root wheel 512 Aug 12 2015 . > > > drwxr-xr-x 28 root wheel 512 Apr 15 09:14 .. > > > drwxr-xr-x 2 daemon wheel 512 Aug 12 2015 jobs > > > drwxr-xr-x 2 daemon wheel 512 Aug 12 2015 spool > > > root@pythagore:/var/at # > > > > > > > I don't understand where is the mistake. > > > > > > > This is a more serious problem. I have found it to be impossible > > to > > run a diskless workstation with a persistant /var mounted via NFS > > (either by itself or as a directory within the nfs rootfs). It's > > been > > this way for several years. You can add varmfs=yes to your rc.conf > > to > > get a working system, but then you have a non-persistant /var which > > really isn't very useful. > > > > Hmm, but the problems I usually have are with /var/run and > > pidfiles. > > I've never noticed this /var/at problem (maybe just because I gave > > up > > trying to run with an nfs-mounted /var before I noticed them). > > > > > An third trouble, this workstation runs cupsd. When I send > > > a job to > > > printer, cupsd run as expected but aborts after job is completed. > > > In > > > /var/log/cups/error_log, I have : > > > > > > E [19/Apr/2016:12:44:34 +0200] Unable to create > > > "/usr/local/etc/cups/printers.conf.N": Operation not permitted > > > E [19/Apr/2016:12:45:12 +0200] Unable to create > > > "/var/cache/cups/job.cache.N": Operation not permitted > > > E [19/Apr/2016:12:45:12 +0200] Unable to create > > > "/var/spool/cups/c00032.N": Operation not permitted > > > > > > > I have checked permissions on directories (and config > > > file) > > without any > > > result, but I have seen that permissions on /var/spool/cups are > > > overwrittem by cups (to drwx--x---). > > > > > > > This one I can't help with at all, because I gave up on trying to > > get > > printers to work on freebsd about 10 years ago and haven't had the > > energy to ever try again. :( > > > > -- Ian > > > > Check your /etc/exports on the server. Both of these problems could > be > explained if your server has -maproot set (or whatever NetBSD calls > it). > For diskless workstations, you must turn that off at the server. > > -Alan This sounds backwards. With no -maproot, the default is to use a uid/gid of -2/-2; how would the rc scripts be able to create files in /var and manipulate entropy files and all the other root-y things they do? All my nfsroot exports use -maproot 0. Hmmm, I wonder if -maproot 0:0 would be better (not that I expect that change alone to make diskless /var start working again). -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1461076355.1232.17.camel>