In all my years of using computers quite heavily, I’ve been a Windows user 99% of the time.  But I have used other OSes, particularly Linux in certain work environments.  I’ve configured PXE-boot network-driven automated installs of Suse and Red Hat, tweaked NFS and Samba on Linux servers in a network of mixed client OSes (Linux and Windows), and have played around with Debian a bit on a personal computer.  Yesterday I wanted to set up a file server at work without having to deal with getting a Windows server license, so I decided to go with the Linux distribution that everyone seems gaga for, Ubuntu.

Now, to be fair, I was installing on an old machine that I hadn’t used much beforehand, so it’s possible it may have some hw issues independent of the OS it’s running, so some of my issues could be related to that.  Its CD-ROM drive had apparently died, for one thing, and it had issues booting an OS off of a USB key.  But before I installed Ubuntu, it seemed to boot into Windows consistently, so the vital components appeared to be working.  Anyway, I just wanted to say that some of my issues below could be due to hw, although again, Windows didn’t seem to have problems.

Anyway, I went for the latest 32-bit Desktop distribution of Ubuntu since it’s nice and small (fits on a CD) and has a good reputation for working well out of the box.  I’m somewhat familiar with Linux, but by no means a guru and so I wanted to go with something that would do as much as possible for me.

I popped in the CD (after swapping in a working CD-ROM drive), selected my language and chose “Install.”  After going through the same sort of config options as Windows installs usually involve, the installation was off and running.  Notably absent were typical Linux setup steps such as selecting a root password, choosing packages to install, configuring Ethernet settings, etc.  This is definitely Linux for the masses, but that’s ok.  So far, it was pretty hard to screw anything up.  One thing I did configure was a fat32 partition in addition to the ext4 boot partition and 500MB of swap space.  I chose fat32 so that in case the OS got messed up, I could hopefully retrieve the shared data by plugging into a Windows machine.

After the installation finished, it prompted me to reboot.  I selected ok, and removed the CD.  But the nice orange installer background remained up.  The machine wasn’t rebooting and was either hung or silently finishing some installation step despite telling me it was finished.  I waited a bit then gave up and forced a reboot.  A bit disconcerting, but maybe I removed the CD too soon?  Unlikely, but if so, poor error handling.

The first time booting up the system just went to a black screen.  Great, am I going to have to try this again?  But I forced a reboot again and was presented with the grub menu to select a boot option.  Ubuntu finally started up with a slickly animated loading screen.  Pretty.  Another nicely animated menu came up for me to enter my username.  Moments later, my desktop was up.

The Gnome environment hasn’t changed too much since I last used it, but that’s not to say it’s unattractive.  It’s definitely more comparable to XP’s look and feel than the more recent Vista/7 Aero, but that’s not necessarily a bad thing since Ubuntu is a popular choice for lower-power machines like netbooks.  I did notice that quick-launch buttons for commonly-used tasks like launching the Terminal were missing by default.  But again, the point of Ubuntu is to keep things simple for new users.

The first time it booted up it impressively auto-selected the appropriate screen resolution for my monitor, and the Ethernet configuration “just worked” as Firefox quickly went to Ubuntu’s Google homepage without me having to do a thing.  Nice.

Ok, to business.  My main goal with this OS right now is to set up a samba file share so that the many Windows users on our network can access some large files I want to make available.  Non-server Windows sharing works well on a small scale, but has a rather low connection limit and inefficient transfers which makes it impractical when lots of people need to access large files at the same time.  Ubuntu, like most Linux distributions, ships with samba so all I had to do was install it.  Of course, since I wasn’t logged in as root, I had to type “sudo” first to run the installer as a superuser.  Samba installed, and I went to the smb.conf file to configure it.  It’s been a while, so I had to go look up some guides on how to set this up properly, which is when I discovered that Ubuntu has a nice GUI for setting up file sharing, even on Windows networks.  Sweet!  So I found my share partition, right-clicked and enabled sharing, very similar to how it’d be done in Windows (actually simpler!).  But uh oh, it fails because it can’t set the file permissions?  Hmm, maybe this is a user thing.  So I noticed that the shared folder was owned by root since it was set up during installation.  Ok, let me log in as root.  “Log out.”  Nothing…system froze.  Crap, reboot.

Login screen.  Ok, let’s login as root…  Fail!  I never was asked to set a root password, and blank didn’t work.  A quick search for “ubuntu default root password” quickly informed me that Ubuntu doesn’t want you to login as root.  Huh?  I’ve always done this when configuring Linux machines…  Ok, well fine, I know I can do things as a superuser in the terminal using the “sudo” command, so I’ll just change the owner of the folder to my current user.  “sudo chown …” failed.  Ok, what’s the deal…?  More Googling revealed that you can’t chown a fat32 partition, or change permissions, etc.  I realize this is probably an incompatibility with the fat32 file system and not Linux’s fault, but come on.  No warning when I set up the partition?  If this is Linux for dummies, it might be good to give some guidance when choosing a file system.  Alright, well, I guess I can use a Linux FS and it’ll just take more work to get the data back if I ever need to.  So I loaded up the file system configuration utility, deleted the fat32 partition and created a new one using ext4.  No issues, worked perfectly.  Nice UI just like in Windows and I never had to touch the command line.  Sweet.

Ok, so now the partition should be compatible.  I went back to set up sharing using the GUI.  It seemed to work, then prompted me to relaunch my session or something.  Ok, I said.  And I waited.  Soon enough, my mouse continued to work but I couldn’t click anything.  I kept waiting, but the entire UI was completely unresponsive except for the mouse.  Great, I’ve barely done anything and it’s already locked up twice.  Force reboot.

Black screen after boot.  Come on!  Is this my BIOS being lame and trying to skip some boot step and I have to keep force rebooting to get it to do the right thing, or what?  Anyway, I force rebooted again and this time hit ESC to show the boot progress instead of the Ubuntu progress bar.  This time it worked, and I was back in.  Ok, so I’m not going to try the UI method this time.  Let’s just configure the smb.conf file directly.  I decided to use the GUI file manager to find the .conf file, double-clicked it and up popped gedit.  The default file seemed strangely configured, but I created a new share and applied the settings.  Sav…oh, it’s greyed out.  Ok, this whole non-root thing is getting old.  I reopened the file using the command line and sudo, made the changes, and saved.  So I thought I could restart samba by navigating to the /etc/init.d/ folder and typing “sudo samba restart” but I got all kinds of smb.conf errors.  Ok, fine, I’ll just reboot.  Black screen.  Ok, come on.  I’m going to try reinstalling.  If I were a Linux guru I’m sure I’d just try to figure out the problem, but since it had that weird hang at the end of installation I was willing to think that my boot issues and these hangs might be symptoms of an improper installation.  Start over.

This time, the installation went off without a hitch and did reboot itself.  So far so good.  Get in, configure the share using the GUI, and Windows can see the folder!  Yes!  But wait, I can’t access the folder itself.  Hmm, let’s poke around in the smb.conf file again…  Crap, forgot I have to use sudo.  This is getting old.  Googled workarounds for the stupid lack of a root login and created a root password and logged in as root.  Ah, now I can do anything!  Mwahahaha.  Ok, reopened smb.conf, and huh?  Nothing looks different after using the GUI utility…  did it do anything?  Alright, I’m just going to find a properly-written smb.conf file online and do this manually.  Found a good walkthrough online, configured everything, restarted samba (using the full “sudo /etc/init.d samba restart” command, which does work), and yes!  I can access the folder from Windows!  Booyah, now we’re getting somewhere.  Now I’d like to have a guest config for anyone to find/read the files in the share, and an admin config so that I can write to the share from another computer after logging in using the local user credentials.  Set up smb.conf, restart samba (using the full “sudo /etc/init.d samba restart” command, which does work).  A little playing around and I was able to get one shared alias discoverable and readable by anyone, and another which has modify permission and is not discoverable.  But despite not having guest access, I wasn’t prompted for a login (and I had set up a user for samba).  Hmm, not sure what the deal is, but at this point I was done messing around and decided this was good enough.

I rebooted the machine to make sure the setting stayed and enabled remote desktop using another GUI.  Installed TinyVNC on my Windows machine and was able to remotely control my machine without an issue.  Sweet.  Shares came up accessible, everything looked good.  Ok, time to move the machine over to it’s permanent location.  Boot up.  Black screen.  Had to reboot a few times, but finally the OS booted up.  Tried connecting via VNC.  No dice.  Turns out you have to be logged in to use remote desktop?  That sucks…not only is that crappy for security, but now I have to actually go over to the machine to log in after every reboot.  I’m sure there are workarounds for this, such as setting an auto-login and a lock or something, but I don’t really care that much.  Ok, just to double-check, let’s make sure I can still remotely access the folder.  Connection failed.  Huh??  Is it because it’s on a different switch from my Windows machine now?  It’s still on the same subnet…  Look around online, no answers.  Ok, fine, let’s reboot.  Rebooted the machine, walked over to login, and voila.  Sharing works again.  Grr, so much for reliability.  Oh well, it’s working and I’ve got other things to do.  Job done.

In conclusion, I was able to successfully achieve my primary goal, which was to set up a file share server using Linux.  But it did not “just work” as Ubuntu is supposed to, and I found the default behavior of making you type in your password before doing anything administrative very annoying.  In fact, it’s exactly the same thing as Vista’s UAC, but at least in that case you aren’t sometimes forced to use the command line just to do some things, like save a system config file.  And UAC is easy to turn off if you know where to go.  You don’t have to create a “super administrator” user, you just turn off UAC.  All in all, I was not too impressed with Ubuntu.  Yes, some things worked right out of the box, and there are now some nice GUIs for doing things like reformatting partitions which work really well.  But there are also some things that still don’t work well until you dive into the config files, which basically defeats the whole purpose of having the GUI option in the first place.  The lack of a true superuser login and the constant sudo/password prompts for normal users to do anything administrative produces the same crappy user experience that everyone rightly gave Vista a hard time for.  But Ubuntu basically recreates the UAC experience and makes it even harder to override and nobody cries fowl?  Sounds like a double standard.

I’m glad to see a Linux distribution that’s trying to eliminate the learning curve of Linux and let average users install it and get up and running without a hitch.  And for basic things, Ubuntu succeeds at this.  It’s a usable OS out of the box and I didn’t have to dive into the command line until I wanted to share a folder on a Windows network.  But it’s not like I was setting up a dhcp server or configuring apache, for crying out loud. Sharing a folder on a network is something any average user should be able to do easily if this is an “OS for humans.” Fact is, I ended up having to spend a good hour getting samba working the way I wanted, which hasn’t been the case in recent releases of Windows.  Not to say Windows networking has a great track record…frankly it’s still a pain to communicate back and forth between different versions of the OS.  But at least Windows 7 seems to work well at this, and I never have had to touch a config file.

When I use Windows, I expect ease of use for day-to-day tasks.  And especially in Windows 7, it delivers.  When I use Linux, I expect it to ship with all sorts of powerful tools and let me configure them without getting in my way.  Other Linux distros deliver on this count, but Ubuntu Desktop falls short.  Ubuntu is trying to be Windows for Linux users, or Linux for Windows users, and that’s a commendable goal.  But it’s not there yet, and I was disappointed with it both as a Windows replacement, and as a Linux environment.

Then there’s Mac OS, but I don’t really consider it in the same league because of its narrow hardware requirements.  I’m quite sure that if Mac supported the breadth of hardware configurations that both Windows and Linux do, it’d be a much different experience.  That’s not to say they should…there’s obviously plenty of people willing to pay a premium for a preconfigured computer that works very well, and I have no problem with that.  But for those who do want the freedom to choose their components, Windows and Linux are really the only players in the game.  And for most people, I’d still have to recommend Windows.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]