From BCCD 3.0

(Redirected from Saving Files to USB Drive)
Jump to: navigation, search

BCCDv3 -- Basic Information


Start X

  1. Log in as bccd with the password "letmein". Note that ssh is not started by default, but you should change the password with "passwd" if you do want to start it.
  2. startx
  3. If you run into problems, send email to with the error output.

USB mounting

(thanks to Dave Toth for these instructions)

  1. Type sudo su - root and enter the BCCD user's password (This makes you the root user - aka the superuser, which allows you to do things like manage flash drives).
  2. Plug in the flash drive.
  3. Type dmesg and hit enter. This will show a lot of text including some about a device like /dev/sdb. If it refers to sda instead of sdb, use sda in place of sdb for the remainder of the instructions.
  4. Type mkdir /tmp/flashdrive and hit enter. This creates a temporary directory for the flashdrive to mount on.
  5. Type mount -t vfat -o uid=bccd,gid=bccd /dev/sdb1 /tmp/flashdrive and hit enter. This says the directory /tmp/flashdrive is the top level directory on the flash drive. By copying files to (or from) /tmp/flashdrive you are copying them to (or from) the flash drive.
  6. At this point, you do not need to be the root user anymore until you need to remove the flash drive. You can return to being a normal user by typing exit and hitting enter in the terminal that you typed in for step 1.
  7. When you are done using the flash drive, repeat step 1 above to become the root user (aka superuser). Then type umount -l /tmp/flashdrive and hit enter. Wait a couple seconds and then you can remove the flash drive.
  8. At this point, you do not need to be the root user anymore. You can return to being a normal user by typing exit.

USB automounting (deprecated)

!!! Warning: this information is deprecated !!!

The BCCD is setup to automatically mount removable USB drives when the drive is inserted. If you're in X, it will pop up a message saying where it mounted the drive (e.g. /mnt/sdg1). If you're not in X, you can figure out what the last device to be mounted was by doing tail -1 /var/log/mount.log. The BCCD won't automatically unmount the drive, so be sure to unmount the drive first, e.g. umount /mnt/sdg1.

Boot options

BCCDv3 -- Configuring and Customizing

You can supply these options when you start the system up (in the form "linux foo"):

  1. automode - Don't prompt for anything in boot-up.
  2. quickboot - Same as above (for now).
  3. masterserver=server - Merge a client's /cluster/software directory with another server's. Leave blank w/o = to broadcast for server.
  4. dhcp_masterserver=server - Option for DHCP server to set a pointer to a master software server.
  5. 5 - Starts X for the bccd user
  6. recoverdhcp - Run this on a live CD master node to trigger a recovery of the DHCP lease file from another cluster node.
  7. -x - Start the linuxrc script in debug mode, useful to track down tricky boot problems in the live CD.
  8. bccdid=abcd - Supply bccdid to change the default bccd-identifier string. This can be used to setup multiple BCCD clusters on a single network. Make sure to select a different IP address later for the BCCD network.

A summary of these options is also available in the F4 menu at boot-up.

Shared NFS

For now, both schools are supported:

Old school

In the live CD, you can merge /cluster/software from another node (known as the master node) with your own node. This is done through the magic pixie dust of AUFS and DHCP. You should set one live CD system to run DHCP like so:

 linux startdhcp dhcp_routernic=eth0

Linux dhclient requires an IP address for a router to be passed in, so if you're uncertain of what to provide just provide eth0. Note that the DHCP server need not be the master server; the address of the master server is merely handed out via DHCP. Boot the master server like so:

 linux startnfs

If your master server is the DHCP server, include `startnfs` on the line with `startdhcp`. On the client systems, boot like so:

 linux masterserver

and the client system will find the master server using DHCPINFORM packets.

New school

By default, your BCCD client will talk to a server hosted at Earlham to get additional software. This software magically appears at /mnt/ssh/software if you access anything in that directory. Note that shell searches often don't trigger this automatic mounting; the best way to do it is ls /mnt/ssh/software.

There is also a special Modules repository for these remote software packages. By default Modules just points at local software, but you can also load remote software. Type in modules avail and look at the software packages in the /usr/local/etc/modules-remote section. Load one of them with modules load /usr/local/etc/modules-remote/sw-name/sw-version. Note that you'll have to unload the corresponding local software package if it's already loaded.

  1. To setup your own software repository, first make it available somehow on the network (NFS, sshfs, SMB, etc).
  2. Add a corresponding autofs entry in /etc/auto.master and /etc/auto.<mapname>.
  3. Stop autofs with invoke-rc.d autofs start, make sure the mount directories are present (Debian autofs zorches them on shutdown), and start autofs back up with invoke-rc.d autofs start. We'll provide documentation later for how to do this.
  4. Setup a separate modules file in /usr/local/Modules/3.2.6/modulefiles/modules. Make a copy of the remote-bccd file, and change the name of BCCD_SW_REMOTE to some other name (say, BCCD_SW_MYREMOTE).
  5. Set the value of the new variable to a different path (say, /mnt/ssh/my-software).
  6. Change the MODULEPATH variable to point to a new module repository (say, /usr/local/etc/modules-myremote).
  7. Copy all of /usr/local/etc/modules-remote to /usr/local/etc/modules-myremote.
  8. Change all the instances of BCCD_SW_REMOTE in modules-myremote to BCCD_SW_MYREMOTE: find . -type f -print0|xargs -0 perl -wpli -e 's/BCCD_SW_REMOTE/BCCD_SW_MYREMOTE/g'.

Common commands

Keyboard mapping

The keyboard mapping in the BCCD defaults to US English. You can change it by logging in as the bccd user, and running sudo dpkg-reconfigure console-data, hit OK, and then go to "Select keymap from full list". In X, you can set the keymap using setxkbmap country-code, which doesn't require root privileges. A full list of country codes is in /usr/share/X11/xkb/symbols/.

No video on bootup

Confucius say: "The video isn't always the problem when the video doesn't work"

NVidia 8600 GTS and NVidia 8800 GTS


The BCCD is built in North American Eastern time, so the default time zone is EST5EDT. Hardware time is kept in UTC, so just set your TZ variable for the bccd user to something else (e.g. PST8PDT for Pacific time). Look in /usr/share/zoneinfo/ for more options.

You might also find your hardware clock is off. The BCCD is set to use the Debian project's NTP pool by default. If your network's DHCP server provides its own ntp-servers option, a /etc/ntp.conf.dhcp file will be created automatically and NTP will use that instead of the stock file. If your hardware clock is more than a few minutes off, NTP will be unable to slew the time fast enough in most cases. If you don't care about large time corrections, perform these steps to correct your time quickly:

  1. date # Get the current time
  2. invoke-rc.d ntp stop # Stop the NTP daemon
  3. ntpd -gqx # Run a one-off time correction without slew limits
  4. date # To make sure that the time is now correct
  5. invoke-rc.d ntp start # Start the NTP server with slew limits

Node check-in

When running in liberated mode, cluster nodes do not need to use pkbcast to broadcast public keys, nor does bccd-allowall need to be run to allow all public keys that pkbcast detected. Nodes check in to the master node's /cluster/home/meta/nodes directory with their hostname as a file, and files that haven't been touched in less than a few minutes are considered stale. For this to work properly, the master node must be at the first IP in a network block (i.e. To change what hostname a master node reports, edit the `/etc/cron.d/node-checkin` file on the master node and remove the old /cluster/home/meta/node000 file.

Environment management

The BCCD uses a framework called Modules to provide user environment management. This system allows users to swap in and out different software packages without having to manage complex shell profiles. It also provides some dependency and conflict management; for instance, you cannot load both MPICH and OpenMPI modules at the same time since their binary names overlap. The BCCD loads most modules out of the box, so in many instances you won't even need to touch modules. If you do, here's some basic commands for working with modules:

Adding third-party packages

A software package provides a safe, consistent way for a software distributor to install and uninstall their software. The BCCD, being based on Debian, understands its .deb package format. You can interact with the BCCD's packaging system with dpkg:

  dpkg -i somepkg.deb # Install the package
  dpkg -r somepkg.deb # Uninstall the package

If you don't have a .deb package, you might be able to use alien. alien is a Debian utility that will convert non-Debian packages into .deb files. Optionally, it can automatically install the packages it creates. Currently, alien understands .slp (Stampede), .rpm (Red Hat), and .pkg (Solaris) package formats. To install an RPM, you would run

  alien -i somepkg.rpm

Configuring WiFi

If you are using a LittleFe, first follow the steps on the LittleFe wiki before returning here.

Otherwise, proceed to the wireless section on the Network Environment wiki page.

Temperature monitoring

If you are running on real hardware, you might want to make sure that your BCCD systems are not overheating. BCCD ships with lm-sensors pre-configured. Simply run the sensors command to see the current system's temperature:

bccd@node000:~$ sensors
Adapter: Virtual device
temp1:        +26.8 C  (crit = +90.0 C)

Adapter: ISA adapter
Core 0:       +43.0 C  (high = +105.0 C, crit = +105.0 C)
Core 1:       +43.0 C  (high = +105.0 C, crit = +105.0 C)
Core 2:       +45.0 C  (high = +105.0 C, crit = +105.0 C)
Core 3:       +45.0 C  (high = +105.0 C, crit = +105.0 C)


Job scheduler

BCCD ships with PBS/Torque enabled and configured automatically.


See VirtualBox on BCCD for details.

Booting on a Mac

So far, using the Universal USB Installer on Windows is the only reliable way we have found to boot on a Mac. Macs unfortunately have jumped the gun and started using EFI boot loading, which (for all its theoretical advantages) has much less support than the tried-and-true BIOS.

See Booting on a Mac for details as we work on a real solution.

Supplying information to developers

As of the next minor release (likely v3.1.2), BCCD will have the ability to gather all information needed by the developers all in one file. To use it:


You may copy this file to a USB stick or scp it to a system on the local network that does have Internet connectivity, and email it to the developers via

The developer documentation is at on the development page.

Personal tools