DRBL logo DRBL FAQ/Q&A DRBL logo

Common

Type: Generally FAQ
  • What's NCHC ?
  • What's the difference between DRBL and LTSP ?
  • What's kind of server and client should I buy if I want to use DRBL ?

  • System

    Type: About DRBL system
  • Where is the corresponding directory of DRBL client in server ?
  • How can I append boot time parameters of the Linux kernel to DRBL clients ?
  • How can I debug in the PXE initrd when client boots ?
  • How can I start a service (like cron, sysklogd, klogd...) of DRBL clients in server ?
  • How can I run vmplayer in DRBL client machine ?
  • Is it possible to run a script on the client after clonezilla finishes cloning ?
  • When I reboot the DRBL client in Ubuntu Breezy Linux, it just hangs there, any solution ?
  • How can I put my own kernel for DRBL clients ?
  • How can I create module for some hardware, like Nvidia, ATI VGA card, to use in client ?
  • How can I share the printer in the server to clients ?
  • How can I insert bios flash program and firmware to the freedos so that I can upgrade the BIOS in client ?
  • How to get Japanese (Chinene, Korean) input method in English environment ?
  • How can I hide the mounted NFS icons in my KDE desktop environment ?

  • Common

    Type: Generally FAQ
  • What's NCHC ?     ^TOP^
  •  

    National Center for High-Performance Computing, it's located in Hsinchu, Taiwan. For more details, please visite the website of NCHC http://www.nchc.org.tw

  • What's the difference between DRBL and LTSP ?     ^TOP^
  •  DRBL uses PXE or etherboot to let the client machine boot, which is similar to LTSP (Linux Terminal Server Project). While LTSP is a centralized server, all the users from the client machines access the LTSP server to run their applications on the LTSP server. You use the client's keyboard and mouse to input, and the client's monitor to display the results. This is great when you use a thin client. You have to increase the server requirements when you have more than 20 or 30 clients. On the other hand, DRBL uses NFS and NIS to provide boot services to the client machines, so DRBL server is just a NFS and NIS server. All the users from all the client machines just access the DRBL server to request files or authentication. Packages are loaded to the client machines and use their own CPU and RAM for processing. Therefore, you can use a common PC as the DRBL server, since it's only doing file and authentication serving. The client machines, however, should be powerful enough to run the applications they need. Our typical installations using DRBL to deploy the Linux classroom have around 30 to 40 clients.
    Both LTSP and DRBL have their own roles, you can choose what you want depending on your situation.
  • What's kind of server and client should I buy if I want to use DRBL ?     ^TOP^
  •  

    This depends on what's kind of application you want to run.
    For the education environment, the following is recommended:

    • Server:
        • x86 CPU at least 450 MHz is recommended.
        • Memory at least 256 MB is recommended.
        • 2 or more fast ethernet network interface cards (NICs) is recommended.
        • At least 10 GB HD space is recommended.
    • Client:
        • x86 CPU at least 200 MHz is recommended.
        • Memory at least 128 MB is recommended.
        • 1 fast ethernet network interface cards.
    • Fast ethernet switch
        • An ethernet hub is not acceptable. It's too slow for network booting and NFS. An fast ethernet switch will reduce the collision domain and give you a much smoother deployent.
        • Your fast ethernet switch should have enough ports for your clients and your server. You can find low cost 12 and 16-port fast ethernet switches just about anywhere. The 40+ port switches are nice, but they typically cost more.

    Since DRBL will work with any Pentium class hardware, you can start your PC cluster with just about any machine you have laying around. You can expand your cluster as your budget allows.


    System

    Type: About DRBL system
  • Where is the corresponding directory of DRBL client in server ?     ^TOP^
  •  It's in /tftpboot/nodes/$IP, where IP is the client's IP address, like /tftpboot/nodes/192.168.0.1.
    There are directories:
    dev etc root var
    under /tftpboot/nodes/$IP.
    For common root directory it's in /tftpboot/node_root, where all clients share this same one directory.
  • How can I append boot time parameters of the Linux kernel to DRBL clients ?     ^TOP^
  •  You can modify the
    /tftpboot/nbi_img/pxelinux.cfg/default
    It's almost similar to grub syntax. And if you are familiar with syslinux, it's the same thing.
    Say, if you want to append "vga=791" for client, you can find the "label drbl", and modify or append the "append" like
    ------------
    append initrd=initrd-pxe.img ramdisk_size=12288 devfs=nomount drblthincli=off selinux=0 vga=791
    ------------
  • How can I debug in the PXE initrd when client boots ?     ^TOP^
  •  In the early stage in PXE initrd when client boots, there is NO log file. However, you can try to debug by:
    1. edit /usr/lib/mkpxeinitrd-net/initrd-skel/linuxrc
    or
    "/usr/lib/mkpxeinitrd-net/initrd-skel/linuxrc/udhcpc-post"
    insert some code to debug, or just put a shell (/bin/sh) so you can enter the shell.
    2. run "/opt/drbl/sbin/mknic-nbi" to generate the PXE initrd.
    3. reboot the client, then you can see some logs or enter the shell.
  • How can I start a service (like cron, sysklogd, klogd...) of DRBL clients in server ?     ^TOP^
  •  Only some necessary services of DRBL client are on, so if you need more services, like cron, sysklogd, klogd..., then:
    In DRBL server, take service "cron" as an example, run:
    /opt/drbl/sbin/drbl-client-service cron on
    Then
    (1) Reboot the clients, or
    (2) Run /opt/drbl/bin/drbl-doit -u root "/etc/init.d/cron start"
    if clients are already on.
  • How can I run vmplayer in DRBL client machine ?     ^TOP^
  •  Here we take vmware-player 1.0.0-19317 as an example, and this method only works in the CPU arch matches each other in the server and client:
    0. Make sure client's kernel is same with server, i.e.
    For server, "uname -r"
    For client, "cat /tftpboot/nbi_img/kernel_version_in_initrd.txt"
    These two must match each other.
    The CPU arch must be the same, too.
    For server, "uname -m"
    For client, "cat /tftpboot/nbi_img/client_kernel_arch.txt"
    These two must match each other.
    If not, you have to run "/opt/drbl/sbin/drblsrv -i" again, and let kernel of
    client is same with that of server, or reinstall the kernel in the server to make it same with that in client.
    1. wget http://download3.vmware.com/software/vmplayer/VMware-player-1.0.1-19317.i386.rpm
    Or get the in http://www.vmware.com 2. sudo rpm -Uvh VMware-player-1.0.1-19317.i386.rpm
    3. sudo vmware-config.pl
    4. sudo /opt/drbl/sbin/dcs , then choose "others" -> re_deploy
    or
    run "/opt/drbl/sbin/drblpush -i" again.
    5. Just in case, remove the file /etc/vmware/not_configured in every client by:
    sudo /opt/drbl/sbin/drbl-rm-host /etc/vmware/not_configured
    6. sudo /opt/drbl/sbin/drbl-client-service vmware on
    7. If client is already on, you can run
    sudo /opt/drbl/bin/drbl-doit "/etc/init.d/vmware start"
    or
    reboot the client
    8. login client, run vmplayer
    The principle is: (a) The client must have the modules "vmmon" and "vmnet" that vmware need, and they exist in the client's kernel modules. For example, in CentOS 4.2, they exist in /tftpboot/node_root/lib/modules/2.6.9-22.0.1.EL/misc.
    (b) The file "/tftpboot/nodes/$IP/etc/vmware/not_configured" should not exist if well configured (by vmware-config.pl).
  • Is it possible to run a script on the client after clonezilla finishes cloning ?     ^TOP^
  •  Yes, but not from /opt/drbl/sbin/dcs. You have to use /opt/drbl/sbin/drbl-ocs like this:
    /opt/drbl/sbin/drbl-ocs -l 0 startdisk restore -p "mount -t ntfs /dev/hda1 /mnt; chntpwd...; reboot -f -n"
    For more info, check "/opt/drbl/sbin/drbl-ocs --help".
  • When I reboot the DRBL client in Ubuntu Breezy Linux, it just hangs there, any solution ?     ^TOP^
  •  This is a kernel problem, check this for more details:
    http://ubuntuforums.org/showthread.php?t=85379
    Maybe "reboot=h" will work for you, you can try to put it in /tftpboot/nbi_img/pxelinux.cfg/default like this:
    ---------------
    label drbl
    MENU DEFAULT
    # MENU HIDE
    MENU LABEL Clonezilla: unicast restore to primary IDE HD partition 1 (hda1)
    # MENU PASSWD
    kernel vmlinuz-pxe
    append initrd=initrd-pxe.img ramdisk_size=12288 devfs=nomount drblthincli=off selinux=0 reboot=h
    ---------------
  • How can I put my own kernel for DRBL clients ?     ^TOP^
  •  Ex: The kernel you compiled yourself: name is 2.6.11-1.steven with CPU arch i686.
    a. Put these files to DRBL server
    1. 3 filres in /boot
    System.map-2.6.11-1.steven
    config-2.6.11-1.steven
    vmlinuz-2.6.11-1.steven
    2. put the kernel and modules in /lib/modules, like:
    /lib/modules/2.6.11-1.steven
    b. depmod -a 2.6.11-1.steven
    c. /opt/drbl/sbin/mknic-nbi -k 2.6.11-1.steven -i i686
    -k: specifly the kernel name
    -i: specify the CPU arch for DRBL clients, such as i386/i586/i686

    Now you can boot the client to use the i686 kenrel 2.6.11-1.steven.
  • How can I create module for some hardware, like Nvidia, ATI VGA card, to use in client ?     ^TOP^
  •  1. If the client uses different kernel with that of server, install the kernel in the server which client is using. Here we take 2.6.12-10-686 as an example.
    If you do not know the kernel name and CPU arch, run
    cat /tftpboot/nbi_img/kernel_version_in_initrd.txt
    cat /tftpboot/nbi_img/client_kernel_arch.txt
    to get that.
    2. Boot the server to the kernel 2.6.12-10-686
    3. Compile and install the module for your hardware, such as download the necessary source from NVidia or ATI website
    4. Run
    /opt/drbl/sbin/mknic-nbi -k 2.6.12-10-686 -i i686
    5. Boot the client, the client now will have the compiled modules.
  • How can I share the printer in the server to clients ?     ^TOP^
  •  Take Fedora Core 3 as an example:
    Assume the DRBL server IP address is 192.168.0.254,
    1. Installed the driver and setup the local printer in DRBL server (such as via LPT PORT)¡Aand config the CUPS to share the printer (Note: in Fedora Core 3, the default setting of CUPS is DENY ALL¡Aso remember to open that to clents in /etc/cups/cupsd.conf).
    2. In DRBL server, config the CUPS network printer¡Awhich means set the local printer as network printer. The path is CUPS ipp://192.168.0.254/printers/epsonc60 (You can find the string in /etc/cups/cupsd.conf)¡Aand set the network printer as the default printer. Here epsonc60 is just an example, so use yours.
    3. Run "/opt/drbl/sbin/drblpush -i" again
    4. Boot the client, you will see the network printer, which is the default printer.
  • How can I insert bios flash program and firmware to the freedos so that I can upgrade the BIOS in client ?     ^TOP^
  •  Take Asus A8V-MX (client's motherboard) as an example (use the freedos 1.0-8drbl or later version provided by DRBL):
    In server:
    1. Download
    bios firmware:
    wget http://dlsvr01.asus.com/pub/ASUS/mb/socket939/A8V-MX/A8V-MX-0503.zip
    and flash program:
    wget http://dlsvr01.asus.com/pub/ASUS/mb/socket939/A8V-MX/AFUDOS217.zip

    2. unzip them:
    unzip A8V-MX-0503.zip
    unzip AFUDOS217.zip

    3. put them into a directory:
    mkdir bios
    mv AFUDOS.exe A8V-MX-ASUS-0503.ROM bios

    4. As root, run /opt/drbl/sbin/insert-file-fdos.sh to put them into the freedos image in /tftpboot/nbi_img/:
    /opt/drbl/sbin/insert-file-fdos.sh bios
    Then a modified freedos image "/tftpboot/nbi_img/fdos1440_drbl.img" is created.

    In client:
    5. Now you can PXE boot the client into freedos, and the programs you put are in A:\DRBL\BIOS. You can follow your BIOS manual to upgrade the bios.
  • How to get Japanese (Chinene, Korean) input method in English environment ?     ^TOP^
  •  Take Fedora Core 4 as an example:
    Find a user, say it's john, login as John
    0. cd ~/
    1. mkdir -p ~/.xinput.d
    2. ln -s /etc/X11/xinit/xinput.d/scim ~/.xinput.d/default

    To apply this setting to all users,
    0. login in the server as root
    1. cd ~john/.xinput.d
    2. /opt/drbl/sbin/drbl-cp-user -d .xinput.d default

    If in the future, you want to remove the directory .xinput.d for every user, run
    /opt/drbl/sbin/drbl-rm-user .xinput.d

    If you want to make new user can apply this, you can try to add that setting in /etc/skel in the server like this:
    0. in server, as root
    1. cd /etc/skel
    2. mkdir -p ~/.xinput.d
    3. ln -s /etc/X11/xinit/xinput.d/scim ~/.xinput.d/default

    Therefore, if you add new user later, that file will be automatically copied.
  • How can I hide the mounted NFS icons in my KDE desktop environment ?     ^TOP^
  •  In KDE desktop, right click mouse -> configure desktop -> behavior -> device icons -> uncheck "Mounted NFS Share"

    If you want to modify the config file for user, just edit the file in his/her home directory:
    ~/.kde/share/config/kdesktoprc
    [Media]
    exclude=media/hdd_mounted,media/nfs_mounted,media/floppy5_unmounted,media/hdd_unmounted

    To edit the system file, this one:
    /usr/share/config/kdesktoprc
    ...
    [Media]
    enabled=true
    exclude=media/hdd_mounted,media/floppy5_unmounted,media/floppy_unmounted,media/hdd_unmounted/nfs_mounted,media


    Last modified: Sun Dec 4 17:50:02 PST 2005