Unable to mount NFS
-
r3582–>r3592–>r3594
Dell D610
CPU arch: x86 onlyIssue:
When uploading it gets to the point of Mounting File system and then fails with “Unable to mount NFS”HOWEVER, I have just uploaded an image from a HP DC7800 not 5 minutes before I tried uploading this one, so it leads me to believe there is an issue with the x86 kernel only and not the x64 kernel.
Passes all compatibility tests.
Nothing relevant in apache logs.
-
Maybe try some of the older kernels?
-
just tested 3.0.1(i386) x86 as per Tom’s hunch and still the same result
-
3.0.1 x86 no network device found. Testing 4.0.5 x86 next.
-
Found this in the hardware lists:
Dell Latitude D610 Default bzImage undionly.kpxe 2014-06-26
https://wiki.fogproject.org/wiki/index.php/WorkingDevices
So… whatever the current kernel was back this time last year… that’d be your ticket. Maybe look at the pushes to SourceForge on that week and you might find what kernel was being given out, because kernels used to be included in the “package” right?
-
don’t work anymore with last svn, i’ll already report
it’s why i said, we need a script to agregate informations from fails and success :
Model, svn, kernel used, ipxe used, lan driver, image configuration (single or not, resizable or not), error message.
-
@TheKoR said:
it’s why i said, we need a script to agregate informations from fails and success :
Model, svn, kernel used, ipxe used, lan driver, image configuration (single or not, resizable or not), error message.
For sure it’s a good idea, but at this time to have some support you can manually provide these informations .
-
4.0.5 x86 (i686) flashing cursor when trying to debug nothing else shows on the screen.
4.1.0 x86 (i686) we get into debug. not getting an ip address in debug mode. eth0 is found so it is NOT a driver issue. It is also not exactly a kernel issue either. Still testing.
-
in debug I can get an ip when…
vi /etc/network/interfaces
add:
auto eth0 iface eth0 inet dhcp
ifup eth0
Then I get a ip address.
Tom thinks it has something to do with the number of retries to get a DHCP address after the kernel has been launched.
-
How many of these do you have to image?
-
oh 300 give or take.
-
Have you tried to mount manually in a debug session?
ALSO -(and this is really exciting ****), Tom added CIFS support to the kernel recently.
If NFS just won’t work… You could use CIFS to image… You’d have to start a debug session on each machine and mount manually… yes it will suck… but it would get the job done.
You are a developer… maybe you can figure out what I couldn’t… I tried editing the fog.checkin script so that it would use CIFS every time (at home) but failed at doing this… I don’t know what I did wrong.
I’ll post the relevant parts here for others to see (since it’s in the secret area).
NOTE that this is only tested on Fedora 21 (or… 22? don’t remember) and the latest FOG Trunk kernels.
Firstly (and I have no idea if this has any bearing on this working or not), I made it impossible for
[CODE]/svn/trunk/src/buiildroot/package/fog/scripts/bin/fog.checkin[/CODE]
to fail in mounting. I basically just removed all the failure code. I also replaced all the mount commands but it didn’t seem to make a difference.
INSTALL SAMBA:
[CODE]# Last Modified:6-8-2015
Install samba and samba client.
yum install -y samba samba-client
Move the old samba configuration file.
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Make a new config file, then fill it with settings.
touch /etc/samba/smb.conf
#beware, below line overwrites anything in /etc/samba/smb.conf
echo ‘#’ > /etc/samba/smb.conf
#below lines append to the end of /etc/samba/smb.conf
echo ‘#This file was generated by an automated installation script’ >> /etc/samba/smb.conf
echo ‘#for FOG 1.3.0 and higher to share the default /images directory.’ >> /etc/samba/smb.conf
echo ‘#Original Author: Wayne Workman’ >> /etc/samba/smb.conf
echo ‘#’ >> /etc/samba/smb.conf
echo ‘[images]’ >> /etc/samba/smb.conf
echo ‘path = /images’ >> /etc/samba/smb.conf
echo ‘read only = no’ >> /etc/samba/smb.conf
echo ‘unix charset = utf-8’ >> /etc/samba/smb.conf
echo ‘dos charset = cp932’ >> /etc/samba/smb.confThe bleow bit extracts the out-facing IP. Only works if there is one interface.
This is for extra security, prevents an IP not from your network getting in, even if they know the username / password.
the last part determines the number of octects set for “hosts allow”. -f 1-1 is one, -f 1-2 is two, -f 1-3 is three
ServerIP=“$( ip route get 8.8.8.8 | awk ‘NR==1 {print $NF}’ | cut -d ‘.’ -f 1-2 )”
echo ‘# The below line defines what IP ranges are allowed. They are space delemeted.’ >> /etc/samba/smb.conf
echo ‘# For instance, if you wanted local loopback address, the 10.0.0. range,’ >> /etc/samba/smb.conf
echo ‘# and the 192.168.1 range, and a specifc public IP of 50.50.50.50,’ >> /etc/samba/smb.conf
echo ‘# It would be this:’ >> /etc/samba/smb.conf
echo ‘# hosts allow = 127.0.0.1 10.0.0. 192.168.1. 50.50.50.50’ >> /etc/samba/smb.conf
echo “hosts allow = “$ServerIP”.” >> /etc/samba/smb.confContinue with building the smb.conf file…
echo ‘security = user’ >> /etc/samba/smb.conf
echo ‘passdb backend = tdbsam’ >> /etc/samba/smb.conf
echo ‘create mode = 0777’ >> /etc/samba/smb.conf
echo ‘directory mode = 0777’ >> /etc/samba/smb.conf
echo ‘share modes = yes’ >> /etc/samba/smb.conf
echo ‘writable = yes’ >> /etc/samba/smb.confBelow gets the ftp user & pass from /opt/fot/.fogsettings and “assumes” it matches the local linux user
Credit for trying?
user=“$(grep ‘storageftpuser=’ /opt/fog/.fogsettings | awk -F’”’ ‘{$0=$2}1’)"
pass=“$(grep ‘storageftppass=’ /opt/fog/.fogsettings | awk -F’”’ ‘{$0=$2}1’)"Set the samba user with the credentials.
(echo “$pass”; echo “$pass”) | smbpasswd -s -a $user
systemctl enable smb.service
systemctl restart smb.service
[/CODE]Run a “Download - Debug” task for the host(s).
At the CLI, create the /images directory manually
[CODE]mkdir /images[/CODE]
Mount to the remote images directory via CLI (ensure NFS is NOT running first on the FOG server):
Server:
[CODE]systemctl stop nfs-server[/CODE]
Debug client:
[CODE]mount -t cifs -o username=USERNAMEHERE,password=PASSWORDHERE //x.x.x.x/images /images[/CODE]Then, issue the FOG command on the debug client and it should work via CIFS (samba):
[CODE]fog[/CODE] -
UPDATE:
Ok at least Tom and I have gotten down to the issue at hand. The machine would get an ipaddress in ipxe but when it came to booting the machine in busybox(bzimage32, init_32) it didn’t get an ip address. Eth0 was there and active just no ip address. After some time we figured out that these machines could not use the sleep command. (Weird I know) Alas, Tom used usleep and it worked like a charm.
THUS why nfs would not mount. B/C the machine didn’t have an ip address it couldn’t get out to even talk to the fog server for the mount to occur.
Now we are looking a the HDD is not detected but passes in compatibility and the partition information is all there. Machine still boots into windows. Again some issue with the bzimage32, init_32 ???
Just wanted to throw an update out there for your 32-bit processor junkies!
-
@Wolfbane8653 @Tom-Elliott has this been put into the current code base or was this done just on Wolfbane’s setup ?
I think that this is affecting a much larger group of people than the developers are aware of.
-
x32 bit machines should now be fixed in the latest git.
- x32 Upload times are slow but they will upload all the way. ~84Mib/s with lvl 9 compression (4:20:15)
- x32 Download times are “fast” ~1.8Gib/s lvl 9 compression (00:12:01)
- x64 Up 3.2Gib/s lvl9 (00:20:00) Down 7.3Gib/s lvl9 (00:09:00)
Full Description of problem:
1.)nfs mount issue was due to not getting an ip address during init boot.
2.)Not getting an ip was due to an addition of fixing VLAN issues for networks and sleep command was an “Illegal Instruction” (along with other commands essential to “init fog script”)
3.)sleep was not working due to a compiling issue in the glibc v2.21.*Solution:
1.) Downgraded init’s to use glibc v2.20 (fixed sleep function).
2.) init’s now get ips from edits in files K40Network and S40Network.
3.)NFS mounts successfully now that init gets an ip address at boot.These changes have been pushed to both init_32.xz and init.xz.
If you see this issue with your old 32 bit only processors please make sure you update to the latest version and this should be fixed.
P.S. @Tom-Elliott thanks for the remote sessions and time. Took us a while but we nailed down the problem