Boot from net (again)



  • Hi all,
    sorry but my search regarding the topic did not resolve my problem. There are threads regarding booting pfSense from net but they are locked and I can not post my question there.
    I want to make Soekris 5501 to boot pfSense from FreeBSD 7.0 (installed on VMWare).
    I followed this wonderful article http://devwiki.pfsense.org/NetBootSoekrisEmbedded
    I downloaded embedded version of pfSense image and put it on my FreeBSD.
    After some adjustments (I am newbe to FreeBSD) I made Soekris to start booting from my FreeBSD tftp-server, but what happens now is…

    1. Soekris successfully gets IP address from FreeBSD box via DHCP
    2. Soekris successfully loads /boot/pxeboot
    3. Soekris successfully mounts /usr/local/tftpboot/soekris/ (this is place where I put unpacked pfSense-embedded)
    4. Soekris successfully finds /boot via NFS
    5. Soekris sequentially tries to find /boot.4th.split /boot.4th.gz.split /boot.4th.gz /boot.4th /loader.rc.split /loader.rc.gz.split /loader.rc.gz and fails
    6. Soekris successfully finds /loader.rc and reads it.
    7. Soekris sequentially tries to find /loader.4th.gz.zplit /loader.4th.gz and fails
    8. Soekris successfully find /loader.4th adn reads it.
    9. Soekris sequentially tries to find /support.4th.split /support.4th.gz.split /support.4th.gz and fails
    10. Soekris successfully find /support.4th and reads it.
    11. Soekris successfully finds /defaults
    12. Soekris sequentially tries to find /loader.conf.split /loader.conf.gz.split /loader.conf.gz and fails
    13. Soekris successfully finds /loader.conf and reads it.
    14. Soekris sequentially tries to find /device.hints.split /device.hints.gz.split /device.hints.gz and fails
    15. Soekris successfully finds /device.hints and reads it.
    16. Read steps 12 and 13
    17. Soekris sequentially tries to find /loader.conf.local.split /loader.conf.local.gz.split /loader.conf.local.gz /loader.conf.local and fails
    18. Soekris sequentially tries to find /nextboot.conf.split /nextboot.conf.gz.split /nextboot.conf.gz /nextboot.conf and fails
    19. Soekris successfully finds /kernel
    20. Soekris sequentially tries to find /linker.hints.split /linker.hints.gz.split /linker.hints.gz and fails
    21. Soekris successfully finds /linker.hints
    22. Repeats step 20 and 21
    23. Soekris reads /liker.hints
    24. Soekris sequentially tries to find /kernel.ko.split /kernel.ko.split /kernel.ko.gz.split /kernel.ko.gz /kernel.ko /kernel.split /kernel.gz.split and fails
    25. Soekris successfully finds /kernel.gz and reads a smal chunk of it.
    26. Soekris sequentially tries to find /kernel.split /kernel.gz.split and fails
    27. Soekris successfully finds /kernel.gz and reads it.
    28. Repeats steps 26 and 27
    29. Soekris successfully finds /etc
    30. Soekris sequentially tries to find /etc/fstab.gz.split /etc/fstab.gz and fails
    31. Soekris successfully finds /etc/fstab and reads it.
    32. Nothing happens during 13 seconds.
    33. Successfully finds dev sbin init
    Then a strange things happens Soekris successfully reads init with intervals of 1-2 seconds and that is it.

    Please any advice. Where the problem might be?
    Sorry if you have already answered this question approximately 42 times, just give me a link in this case.

    Thanks in advance.



  • Sorry, I am stupid. Instead of monitoring boot process via tcpdump I should have changed my terminal speed to 9600 (Soekris has it at 19200) and now I clearly see booting process but it ends up with:
    …..
    Timecounter "TSC" frequency 433251346 Hz quality 800
    Timecounters tick every 10.000 msec
    Fast IPsec: Initialized Security Association Processing.
    Trying to mount root from nfs:192.168.7.114:/usr/local/tftpboot/soekris
    NFS ROOT: 192.168.7.114:/usr/local/tftpboot/soekris/
    vr0: link state changed to UP

    and nothing else...
    /tftpboot/soekris/cf/conf/config.xml has
    <if>vr0</if>
    <ipaddr>192.168.7.7</ipaddr>

    Can ping interface, but can not manage Soekris via this IP-address - no http, no https, no ssh. Console reflects only plug-unplug cable:
    vr0: link state changed to DOWN
    vr0: link state changed to UP

    Any ideas why it does not boot further?



  • I guess initializing the nic that it started booting from throws away the bootmedia. It's like ejecting the drive while it's booting up.




  • Please have a look at picture…. It looks like soekris loads /sbin/init (in Read reply I always have OK) tries to execute it, fails and loads again... It is endless process. Is something wrong with hardware?

    Thanks.



  • Same problem here.  Is this an NFS issue?  Is there a way to change when the interface comes up?



  • @Ben.K:

    Same problem here.  Is this an NFS issue?  Is there a way to change when the interface comes up?

    Why NFS? NFS works perfectly as seen from logs. And it is definitely not hardware problem I tried three boxes - the same results.
    We have to dig into FreeBSD internals - what a net-boot proces is exactly :-))), but not enough time as usual -((( I enrolled my boxes with flash-cards. Actually I was trying to set up net-booting boxes only out of curiosity.
    Regards,
    Eugene.



  • Thank you for the resoponse :).  I was trying pxe because i was having issues with using CF (whole other off topic issue I won't go into).  The only reason i was curions about NFS was because i had no other way to test NFS, aside from loopback on the server itself.

    Agreed about the FreeBSD boot process.  It looks like this fails when init starts correct?  I think that normal versions of FreeBSD will grab rc.conf at this point, but it looks like pfSesnse (via m0n0wall) has done away with the typical method.  Someother time for me too, I think.

    Thank you!


Log in to reply