Home Server - Part I - Linux Server Box

  My goal in this was to start a personal fileserver over SSH using Unison (for static binary files - pictures, music, etc), and subversion (for revisioned text files; i.e. code, docx documents, etc). I was thinking about using git, and still might for personal use, but we have subversion installed in the work computers, and part of this was syncing my home files with the work files, so I stuck with subversion.


Part I - Installing Linux
Part II - Setting up SSH

  The easiest step I figured was getting Ubuntu on the laptop that I was going to have act as the server. HA! As if this project was going to be easy. Okay, so I started with Fedora 16 live, after that dropped me to the debug shell, I looked up some of the error messages I was getting, and there seemed to be no unified solution. Some suggested it was the bios (which I only wanted to update as a last resort), missing drivers, etc. I figured the easiest thing would be to switch distros and see if that help. One Ubuntu burn later... one linux mint burn later... one ubuntu server burn later... Okay, but now we're getting somewhere, since Ubuntu server doesn't have to launch into the live environment before giving me options (my Linux help buddy mentioned holding / tapping left shift to get the live CD's to display menus, but these processes lost out to my patience). So how did these options help us figure out what was wrong?
  Well at this point we figured it's likely to be the CD. Earlier we thought it might be graphics; Fedora was a bleeding edge distro, Ubuntu more conservative, Mint was a graphically more conservative yet, and Ubuntu Server is the most graphically paired down of them all. But since none of the CD's installed, including the server CD, which failed it's self error check (see step 3 below).
  Step 1 was to check the MD5 hash of the ISO (which you always should do before burning - and I did), I was burning in linux, so the command; "md5sum imagename.iso > file.txt" does the md5 checksum and sends the output to a text file, where you can paste in the offical hash on another line and quickly see if they compare. In Windows you can get the hash with an fciv tool provided by Microsoft.
   Step 2 is to compare the ISO against the burned CD. You can't really directly compare but the command;
"dd if=/dev/cdrom1 | head -c `stat --format=%s ubuntu-11.10-server-i386.iso` | md5sum" checks the size of the ISO and sees how many blocks this should take on the CD and if it fact does take up this space. You'll have to change the location of the CD drive and the file you're burning in the command. I don't know the equivalent command on Windows for this.
  Step 3 was the smoking gun. From within the server boot, there was an option to "Check integrity of install media" which failed every time we ran it, and not reliably in one spot either, sometimes right at the start, sometimes on other files. This was when I got really lucky - I was trying to install at work, and we had an external USB CD-RW drive lying around. Not only that, but the laptop's BIOS recognized it as a CD drive and put it in the boot order. So we got that to boot! Finally 8+ hours in, and a working install of Ubuntu.

  With Ubuntu working (is it just me, or is Unity trying to be OS X?), the first thing to do is to update. At this point it's also good to have a couple of other users who don't have administrator privliges. You can go into the "system settings -> users -> unlock -> +" to add more users from unity. Be sure to give reasonably strong passwords. We'll use these users as our primary remote log-in users. A few other words of advice; make sure that the root user has a strong password! And I only recommend this for home use - write it down somewhere safe - you won't be using it all that often after the initial setup and you don't want to loose this password. We'll be sure to deny remote user log-ins as root when we set up ssh, which is the next step.

No comments:

Post a Comment