Booting On PXE ... Partimage

Discussion in 'HOWTO-Related Questions' started by alexiel, Feb 29, 2008.

  1. alexiel

    alexiel New Member

    Hi,

    I'm trying to install a debian system over the network by following this tutorial.

    I've done all steps but in "3.2 Customize your virtual system", I don't understand "Then simply install the wanted package. In our case, we will run partimage for dumping partition."

    Does "install the wanted package" mean that I have to install a boot loader ?

    What do you mean by "run partimage for dumping partition" ?
    If I run partimage, it complains that /proc/partitions doesn't exist.
    Solved with '$cp /proc/partitions /proc/mounts' /pxeroot/proc'.

    And now what am i supposed to do ?

    If I ignore this section, I can boot up but the remote pc is unable to acces to the nfs partition.

    It display "Begin : Waiting for root file system..." and few minutes later :
    "ALERT! /dev/nfs does not exist. Dropping to a shell!
    Check your root= boot argument (cat /proc/cmdline)
    Check for missing modules (cat /proc/modules), or device files (ls /dev)

    BusyBox v1.1.3 (Debian 1:1.1.3-5) Built-in shell (ash)
    Enter 'help' for a list of built-in commands.

    /bin/sh: can't acces tty: job control turned off
    (initramfs) _"

    And when I do "/etc/init.d/nfs-kernel-server restart", there is "RPC: failed to contact local rpcbind server (errno 5)" in syslog.

    Can you help me ?
    If you need log and/or configuration files, I can post them.

    Thanks
     
  2. falko

    falko Super Moderator Howtoforge Staff

    It simply means that you can install any package you want.

    No.
     
  3. alexiel

    alexiel New Member

    No boot loader ?
    OK

    Hum.. for sure !
    But I was wondering what kind of package I had to install and to do what.


    I think the remote PC can't access to /pxeroot because of a misconfiguration in my NFS server.

    Do you know what's wrong ?

    Thanks for your help
     
  4. olivierb2

    olivierb2 New Member

    Can you send me the content of your /etc/exports?

    for the error "ALERT! /dev/nfs does not exist. Dropping to a shell!", there is a problem with nfs in the initrd.img, I will try to see why.

    Thanks.
     
    Last edited: Mar 4, 2008
  5. alexiel

    alexiel New Member

    When I have tested this HOWTO, I had two keyboards, two monitors and two PCs. It was not very handy to write down error messages so I decided to install a full virtual debian system thanks to VirtualBox.
    Now I can 'pause' and 'resume' the system when I want.

    In order to communicate with my PC (the host), the virtual system (the guest) needs a virtual interface wich is 'tap0' in my case.

    192.168.0.200 => IP adress of the interface tap0 (and so the adress of the DHCP server). It's like your 192.168.0.1 for eth0.

    192.168.0.1 => given by the DHCP server to the gest.


    + /etc/network/interfaces
    Code:
    auto lo
    iface lo inet loopback
    
    auto tap0
    iface tap0 inet static
        address 192.168.0.200
        netmask 255.255.255.0
    + /etc/dhcp3/dhcpd.conf
    Code:
    ddns-update-style none;
    ddns-updates off;
    server-name "MyDHCP";
    authoritative;
    option T150 code 150 = string;
    deny client-updates;
    one-lease-per-client false;
    allow bootp;
    allow booting;
    
    log-facility local7;
    
    
    subnet 192.168.0.0 netmask 255.255.255.0 {
        interface tap0;
        range 192.168.0.2 192.168.0.254;
        default-lease-time 6000;
        max-lease-time 7200;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
        option time-offset -3600;
    }
    
    host bootPXE {
       hardware ethernet 08:00:27:04:B1:59;
       fixed-address 192.168.0.1;
    
        default-lease-time 6000;
        max-lease-time 7200;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.0.255;
    
        filename "pxelinux.0";
        next-server 192.168.0.200;
        option root-path "192.168.0.200:/pxeroot";
    }
    + /etc/exports
    Code:
    /pxeroot    192.168.0.0/255.255.255.0(rw,sync,no_root_squash,no_subtree_check)

    I can mount the nfs directory from the host so the nfs server seems to work correctly.

    In the built-in shell of the guest, the 'ifconfig' command doesn't display anything.
    Moreover 'ping 192.168.0.200' replies 'Network unreachable'.

    But if I do 'ifconfig eth0 192.168.0.1' then 'ping 192.168.0.200', the host replies to guest requests.

    Unfortunatly, 'mount 192.168.0.200:/pxeroot /' fails.


    A problem with initrd.img ?
    There are the kernel packages I installed :
    Code:
    debian:~# chroot /pxeroot/
    debian:/# dpkg --get-selections | grep install | grep linux
    libselinux1					install
    linux-image-2.6-686				install
    linux-image-2.6.22-3-686			install
    linux-image-686					install
    util-linux					install
    Thanks
     
    Last edited: Mar 5, 2008
  6. olivierb2

    olivierb2 New Member

    Can you try to make the virtual device in chroot /pxeroot

    mknod /dev/nfs b 0 255
     
  7. alexiel

    alexiel New Member

    From the host, "chroot /pxeroot/ ; mknod /dev/nfs b 0 255" creates /pxeroot/dev/nfs.

    But the guest doesn't have /dev/nfs.
    Code:
    (initramfs) ls /dev
    console   ram1     snapshot  tty21    tty36    tty50    tty8
    disk     ram10    tty      tty22    tty37    tty51    tty9
    fd0      ram11    tty0     tty23    tty38    tty52    tty50
    full     ram12    tty1     tty24    tty39    tty53    tty51
    hda      ram13    tty10    tty25    tty4     tty54    tty52
    hdc      ram14    tty11    tty26    tty40    tty55    tty53
    hpet     ram15    tty12    tty27    tty41    tty56    urandom
    input    ramZ     tty13    tty28    tty42    tty57    vcs
    kmem     ram3     tty14    tty29    tty43    tty58    vcs1
    kmsg     ram4     tty15    tty3     tty44    tty59    vcsa
    mem      ram5     tty16    tty30    tty45    tty6     vcsa1
    null     ram6     tty17    tty31    tty46    tty60    zero
    port     ram7     tty18    tty32    tty47    tty61
    psaux    ram8     tty19    tty33    tty48    tty62
    ptmx     ram9     tty2     tty34    tty49    tty63
    ram0     random   tty20    tty35    tty5     tty7
    (initramfs)
    "export" in BusyBox gives interesting details :
    Code:
    (initramfs) export
    export BOOT_IMAGE='vmlinuz'
    export DPKG_ARCH='i386'
    export HOME='/'
    export MODPROBE_OPTIONS='-qb'
    export PATH='/usr/local/bin:/usr/bin:/sbin:/bin'
    export PROGRESS_STATE='4'
    export PS1='(initramfs) '
    export PWD='/'
    export ROOT='/dev/nfs'
    export ROOTDELAY=''
    export TERM='linux'
    export blacklist=''
    export break=''
    export debug=''
    export init='/sbin/init'
    export initrd='initrd.img'
    export nfsroot='192.168.0.200:/pxeroot'
    export panic=''
    export quiet='n'
    export readonly='n'
    export resume=''
    export rootmnt='/root'
    export vga='normal'
    (initramfs)
    I'm at the 4th (progress) state but... What does it mean ?

    And if initrd.imd doesn't include nfs support, I should maybe build my own kernel.
     
  8. olivierb2

    olivierb2 New Member

    It's crazy, I never build my own kernel. I will continue to investigate.
     
  9. olivierb2

    olivierb2 New Member

    Ok, your initrd.img doesn't support nfs :

    chroot /pxeroot

    vi /etc/initramfs-tools/initramfs.conf

    change the line :

    BOOT=local

    to

    BOOT=nfs

    then run :

    update-initramfs -u
     

Share This Page