FamilySearch Linux Installation
 
home / applications / fs / linux installation

About Linux

Hardware

Network

Installation

Partitions

Packages

Display Adapter

Server Settings

Client Settings

Bindings

More Information

My wife and I had been called to be workers in the Hayward (Californa) Stake Family History Center because we "knew so much about computers". Not the first calling I had received for that reason! Well, there were other reasons why we were called, too, I'm sure.

It only took about three minutes to figure out that constantly swapping CDs was definitely not the high point of the patrons' experiences. Especially because a lot of them were scared enough just to be using a computer, much less having to monkey with the CD drive. My first long TempleReady run was excruciating, and I can only imagine what was going through that good sister's mind. Like "How will I ever remember this?".

I called Salt Lake to find out if we were even allowed to network our computers together (after all, the FHC in the Oakland Temple Visitor's Center did it!) and was rewarded a few days later with a draft document describing how to do it. Based on what information I haven't gotten on subsequent calls I was EXCEEDINGLY lucky to talk to the person I did. Those folks seems to have a personal vendetta against us networkers, almost as though we were members of a whole different organization. I guess different people have different ideas of making the kingdom go forward.

I was absolutely determined, regardless of how long it took me, to make my network run under Linux. I had enough spare parts to build a server machine and I wanted to keep Bill Gates out of the Lord's work as much as I could.

Peter Yorke
November 22, 1999


ABOUT LINUX

Before I talk directly about software, let me say one thing in big, bold letters about the Linux solution I picked. It is absolutely free.

I chose the distribution of Linux that I am the most familiar with, Red Hat. From when I started this project to when I went live with it Red Hat had gone through more than one release, and we are at the most recent, 6.1.

There is wisdom in this choice; succeeding releases have been much better at recognizing older equipment such as network cards and display cards, and rather than cobbling up my own drivers I found everything I needed on this release.

One other big advantage to Red Hat 6.1 is that it supports software RAID in a very user-friendly way. I have taken advantage of this and will explain how further on.

Red Hat Linux comes with two packages that are important to me, Samba and Apache. Apache I will talk about later.

Samba is the network server part of Linux, and like the rest of Linux it is totally free. Yet it provides the same functionality (and, depending on your sources, better performance) than Microsoft Windows NT and Novell NetWare. It provides both disk and printer services.

A couple thoughts about Linux will make this document easier to read.

Linux is the IBM PC-compatible version of a popular operating system called Unix. In some ways Linux is (or looks like) PC DOS and it's descendants, Windows and OS/2. In other important ways it is very different.

One important difference is the disk directory. In Linux there is no concept of drive letter (the ubiquitous C:). Rather than addressing a disk partition by a letter the partition is "mounted" as a subdirectory of a giant tree that represents all available disk space.

For example, there is always a "root" directory, which is represented as "/" (notice we use a slash, not a backslash). All of the FamilySearch material looks like it is in the directory "/pool". When it gets trans+lated via Samba into Windows it looks like it's on the H:, I:, J:, K:, L:, M: and N: "drives".


HARDWARE

Linux runs very well on less machine than its Microsoft and Novell counterparts. I already had a Pentium II-MMX 200 MHz box laying around unused, so I pressed it into service. But I could have gotten by with a lot less computer if I had needed to.

It is obvious that there is no need for the server, while it is sitting there in the FHC, to need a mouse, a< keyboard, a floppy drive, a cdrom drive or a display, so in my plan I was not going to provide them. It turns out that Linux does indeed want a keyboard and at least a display adaptor, so that's what it has for now. When I get some more spare (ha!) cash I will put an A-B switch on it so I can share the keyboard, mouse and the actual display with another machine.

As for the cdrom drive, I just plugged one in long enough to install Linux and to copy all the CDs over. I didn't really even need to use it to copy CDs. Once hooked into the network I could have used the cdrom drives of all the other machines, concurrently, to load the CDs. My BIOS is new enough that it supports bootable CDs (the official version of Red Hat is bootable) so I never really needed a floppy drive.

I started out with a Maxtor 10GB drive ($135 at Costco) and soon after added a Maxtor 20GB ($190 at Costco). The operating system, including swap space, takes about 1.5GB. I figured that I should be able to get most of the popular stuff from FamilySearch on the 28.5GB and then add more disk space as my budget allowed.

Well, I was wrong. As many of you have already figured out, the Ancestral File, IGI and TempleReady programs are rigged such that it's pretty much all or nothing. You either get it all on hard drive or you get it all on CDs.

28.5GB is still slim, and I told my FHC co-directors that I soon as I could afford one more 20GB drive we would be set. They looked into their FHC budget situation and figured out that they hadn't spent any of their 1999 budget of $175 and would just lose it if they didn't. So now we have 48.5GB, which I hope is enough for all the FamilySearch stuff and also the newer census stuff that's come available.

To avoid the hassle of getting all the needed CDs on any one disk without crossing over disk boundaries, I have used Linux's software RAID code. With RAID (Redundant Array of Inexpensive Drives) I can make all my data space look like one giant drive of 48.5GB. This was so simple to do I almost hesitate to give instructions. But I will, later.


NETWORK

My machines are networked together with 10Base-T Cat 5 Ethernet. I have a big box of the Cat 5 cable and just terminate whatever length I need. Commercially manufactured patch cables are probably an even better choice because the strands of wire are actually lasered onto the terminators. But they cost more.

I think 10 Mbps is probably more than adequate for any family history center. The 'purist' in me demands 100 Mbps, but the four donated machines had 10 Mbps NICs in them already, so I forwent my purism.

Linux does TCP/IP like a duck treads water, and Samba (the networking software) does IPX (which is what Windows 95 is looking for) without even having to set parameters. Actually, no. I did set one parameter, the name of the workgroup. Windows defaults to "Workgroup", so to "Workgroup" so that it would be consistent with Windows 95.

The draft document that Salt Lake sent to me suggests creating a separate subdirectory for each application (/ad = Addendum, /igi = IGI, etc.) and a different drive letter for each subdirectory (h: = /ad, j: = /igi, etc.).

I created the subdirectories in my pool space (/pool, which is where /dev/md0 is mounted) before copying the CDs into their respective directories.

In the Samba control file (/etc/smb.conf) I added a resource for each logical drive I needed (/pool/af = [af], /pool/igi = [igi], etc.). I will talk more about Samba parameters later.


INSTALLATION

I'm not going to give a blow-by-blow account of the installation process, just the highlights. If people are interested in more detail I will insert that detail into this document.

Red Hat 6.1 provides three modes of installation (Workstation, Server and Custom) and two desktop environments (Gnome and KDE). Just by their names one would expect that Server would be the best choice of installation mode, but from what I gleaned from the installation materials this didn't give me the flexibility I felt I needed in distributing my disk space. So I used the Custom option.

The choise of a desktop environment is purely a religious decision. I personally like the Gnome look-and-feel better, but KDE has a strong following. KDE seems to have tried harder to make itself look like Windows, which I find offensive.


PARTITIONS

Red Hat uses Disk Druid to partition the hard drives. If you have no need of a RAID array, for instance if you are fitting everything onto one physical drive, then you can ignore devices hdb and hdc in the table and all the references to RAID. Here are the settings I used:

Device Amount Mount Point Type Comment
hda 16MB /boot Linux Native Small partition that must be below cylinder 1024
hda 128MB Linux Swap Swap Space
hda 1536MB / Linux Native Root (all the rest of the installation)
hda the rest Linux RAID Pool Space
hdb all Linux RAID Pool Space
hdc all Linux RAID Pool Space

Once the three RAID partitions are created you can push the button marked "Make RAID device". The ensuing dialog will let you choose all of your Linux RAID partitions. Create a RAID 0 device as /dev/md0. I mount this device as /pool.

That, folks, is all it takes. The installation system does everything else that's needed, including creating the RAID configuration file and starting the RAID process.


INSTALLATION
PACKAGES

I made it easy on myself. I took the choice at the very end of the list that says "Install everything". 1.5GB is plenty of disk space for everything.

If I were inclined to not install some of the packages I would probably pick all the ones that have to do development, rebuilding the kernel, etc.

I would not leave out any packages that have to do with the Internet because I have a special plan in mind that I will talk about later.


DISPLAY &
ADAPTER

On the one hand nobody in the Family History Center is going to be logging on to your server, so there's not much point in dedicating a lot of time and effort into the display and the display adaptor.

On the other had, Linux has some GUI tools that make maintenance very easy.

The installation program should be able to pick out what type of display adapter you have and tell you what it is.

I just choose "generic multisync" as my display type and everything seems to run great.

The installation probe into your hardware may come up with the correct display adapter but it may not know how to use all its capabilities. So if you want to use the GUI tools (I particularily like the GUI version of Linuxconf), go through the display adaptor configuration once more after the installation is complete. This is done by logging on to root and running a program. called Xconfigurator.

One of the things I have to set after the installation is the screen resolution. The installation program sets it at 640x480 and I prefer 1024x168.


NETWORK
SETTINGS:
LINUX

Linux network settings (like most Linux settings) are kept in disk files mostly in /etc. A very knowledgeable person can just go right to the right file and make what changes need to be made. For the rest of us there is Linuxconf.

Here are a set of settings that work. Note that I am only giving the information that is needed for this solution:

  • Config
    • Networking
      • Client tasks
        • Basic host information
        • Host name
          • Host name = server
        • Adaptor 1
          • Enabled = true
          • Config mode = Manual
          • Primary name + domain = server
          • Aliases (opt) = server.fhc.net
          • IP address = 192.168.0.101
          • Netmask (opt) = 255.255.255.0
          • Net device = eth0
          • Kernel module = ne2k-pci (Installation figured this out)
      • Name server specification (DNS)
        • DNS usage = DNS is required
        • nameserver 1 = 192.168.0.101
        • search domain 1 (opt) = fhc.net
      • Routing and gateways
      • Host name search path
      • Network Information System (NIS)
      • IPX interface setup
      • PPP/SLIP/PLIP
    • Server tasks
      • Exported file systems (NFS)
      • IP aliases for virtual hosts
      • Apache Web server (We won't go here right now)
      • Domain Name Server (DNS) (We won't go here, either)
      • Mail delivery system (sendmail)
      • Samba file server
        • Defaults
          • Base config
            • Synchronise SMB from Linx passwords = true
            • Synchronise Linux from SMB passwords = false
            • Server description = Samba Server
            • Work group = Workgroup
          • Passwords
            • Encrypted password required = false
            • Authentication mode = Share
            • Map to guest = Never
          • Access
          • Networking
          • Auto-accounts
          • Features
            • Guest account = smbuser
        • Default setup for users's home
        • Default setup for printers
        • Netlogon setup
        • Disk shares
          • Share Comment Directory
            pool RAID drive /pool
            af Ancestral File /pool/af
            igi International Genealogical Index /pool/igi
            ad International Genealogical Index Addendum /pool/ad
            lc Family History Library Catalog /pool/lc
            mi Military Index /pool/mi
            scr Scottish Church Records /pool/scr
            ss Social Security Death Index /pool/ss

            All these shares should be marked "enabled", "Browsable", "Public access" and "Writable".
      • Ftp server (wu-ftp)
    • Misc
      • Information about other hosts
        • IP number name & aliases
          127.0.0.1 localhost localhost.localdomain
          192.168.0.101 server server.fhc.net
      • Information about other networks
      • Linuxconf network access
  • Users accounts
    • Normal
      • User accounts (Add this new user)
        • The account is enbaled = true
        • Login name = smbuser
        • Full name = Samba User
        • group = smb
        • Supplementary groups
        • Home directory(opt) = /home/public
        • Command interpreter(opt) = /bin/bash
        • User ID(opt) = Let Linuxconf pick it
      • Group definitions
      • Change root password
    • Special Accounts
    • Email aliases
    • Policies
  • File systems
  • Miscellaneous services
  • boot mode
  • Control

NETWORK
SETTINGS:
WINDOWS

The Windows (95) network settings can be found at Start-Settings-Control Panel-Network, Or the "Properties" menu item when right mouse clicking Network Neighborhood. Again, this is what works for me:
  • applications
    • Installed network components
      • Client for Microsoft Networks
        • Log on to Windows NT domain = false
        • Windows NT Domain = leave blank
        • Logon and restore network connections = true
      • 3Com EtherLInk 10/100 PCI for Complete PC Management - This depends on your Network Interface Card
      • 3Com TCAATDI Diagnostic TDI - This depends on your Network Interface Card
      • IPX/SPX-compatible Protocol - No changes here
      • NetBEUI - No changes here
      • TCP/IP
        • IP Address
          • Specify an IP Address
            • IP Address = 192.168.0.102
            • Subnet Mask = 255.255.255.0
        • WINS Configuration
          • Disable WINS Resolution
        • Gateway
        • DNS Configuration
        • Bindings
        • Advanced
        • NetBIOS
      • File and printer sharing for Microsoft Networks
    • Primary Network Logon
    • File and Print Sharing (The Big Button)
      • I want to be able to give others access to my files = true
      • I want to be able to allow others to print to my printer(s). = true
  • Identification
    • Computer Name = (just pick a name)
    • Workgroup = Workgroup
    • Computer Description = whatever you want
  • Access Control
    • Share-level access control = true

SECURITY

Okay, I'll admit it. I have built practically no security at all into this system. Everyone logs onto the Windows machines as guest and all the Samba shares are at the share level.

And, to boot, my root password is....password. Oh well.


BINDINGS

Based on the partitioning scheme for the /pool area, I have created the following drive bindings:
  • J: = \\server\ad
  • K: = \\server\af
  • L: = \\server\igi
  • M: = \\server\lc
  • N: = \\server\mi
  • O: = \\server\scr
  • P: = \\server\ss
  • W: = \\server\pool
Furthermore, when you install FamilySearch program on W:, using the 'install network' method, be sure and put these drives in.

FOR THE
FUTURE

Earlier in this document I said I would talk about Apache. Apache is a full-featured web server that comes free with Linux. In other words one of the computers on my network could start their favorite browser and point it to the Linux server and actually get something back.

I have started, and will be working on for a while I'm afraid, an online training course that will be available from all of the computers in the Family History Center.

Not only will there be a tutorial for everything a person needs to know in the Family History Center, but there will also be "How do I ..." sections.


FOR MORE
INFORMATION

Search the FHC Tech email list for Linux information.