DistroWatch Weekly

A weekly opinion column and a summary of events from the distribution world

DistroWatch Weekly

DistroWatch Weekly, Issue 452, 16 April 2012

Welcome to this year's 16th issue of DistroWatch Weekly! Network-attached storage might not be the most glamorous of topics to cover on these pages, but there is no doubt that a highly specialised operating for sharing files on a local network can be a perfect solution in many scenarios. Today we launch what should become a series of articles on these useful operating systems, starting with a first-look review of FreeBSD-based FreeNAS. In the news section, Stefano Zacchiroli becomes the first Debian Project Leader to assume office for the third consecutive year, Kubuntu finds a new sponsor in a mysterious Germany company called Blue Systems, and Mandriva seeks feedback from users hinting at a new community-oriented beginning. Also in this issue, an overview of DoudouLinux, a Debian-based distribution with a simplified user interface designed for very young children, and a tips and tricks section dealing with timeless classics - cron and crontab. Happy reading!

Listen to the Podcast edition of this week's DistroWatch Weekly in OGG (17MB) and MP3 (18MB) formatsJoin us atirc.freenode.net #distrowatch

Feature Story (by Jesse Smith)

A look at FreeNAS 8.0.4

A few weeks ago I asked if readers would be interested in seeing reviews of network-attached storage (NAS) projects. The feedback was really positive and so I present the first of what I hope to be a series of reviews covering NAS solutions. This week we will be looking at FreeNAS, a FreeBSD-based project sponsored by iXsystems.

Before we get started I think it's only fair that we address the question of why we might want to run a dedicated NAS operating system rather than a generic server system. For instance, this week we're looking at FreeNAS, what motivation do we have for using it instead of FreeBSD or a popular Linux server distribution? The answer is largely one of specialization. People looking at network-attached storage are looking for a place to store files (usually a lot of files) and aren't interested in other features a server operating system might provide. A NAS box will be focused on storing and transferring files, it's probably not going to serve up e-mails or websites or provide DNS services. With that in mind, a NAS should come with all the tools we might need to easily add new disks, take snapshots, perform backups and, being focused on these tasks exclusively, it can cut out any extras, providing a lightweight solution.

The FreeNAS project is based on the FreeBSD 8.2 operating system and comes in 32-bit and 64-bit builds. The project's ISO file is a 94 MB download and booting off the disc will bring up a menu asking if we'd like to run the system installer, drop to a command-line shell or shutdown/reboot the machine. Launching the installer runs us through a series of text-based menus. First we're asked on which disk we want to install FreeNAS. A word of warning here, installing FreeNAS on a hard disk will erase all other partitions, the destination disk should be a small drive used only for storing the FreeNAS operating system. All user data is stored on separate devices. Because of this arrangement it's recommended that users install FreeNAS on a USB thumb drive rather than a normal hard disk as the latter option wastes a lot of space. Once we've provided the installer with a destination disk it immediately goes to work partitioning and copying over files. The process is quite short, taking only a few minutes. Then we reboot the machine.

When we boot into the locally installed copy of FreeNAS we're presented with a text-based menu offering a number of configuration options, the ability to reboot/shutdown the machine and the ability to switch to a command-line shell. Under the menu we're shown the machine's IP address which can be used to access the box's web interface. We'll cover the web control panel later, but for now let's examine some aspects of the FreeNAS console.

When logged in to the NAS box locally we can choose to use the configuration menu to change our DNS settings, reset to the web login credentials, configure the network or reset the entire operating system to its pristine, "factory", state. Really the menu isn't designed to do much except make sure the NAS is on-line and that we can access its web interface. It's assumed we'll use the web interface for everything else. Should we need more flexibility we can launch a shell session which gives us basic command-line tools, a text editor and the ability to peek under the hood. When we're accessing the machine physically we're automatically granted root access without a password. The operating system is pretty lean, using just 50 MB of RAM (before we add disks and enable optional services). There's no compiler, no manual pages and few services. The lighttpd web server is running, providing our web-based interface, the Python language is installed, as are some low-level tools such as awk.

The FreeBSD package management utilities (pkg_add, pkg_delete, etc) are included, but I couldn't get them to work. All attempts to install software from the FreeBSD repositories failed and the update tool, freebsd-update, isn't on the system. In short, we're stuck with the software we're given and there doesn't appear to be any way to install security updates until the FreeNAS project issues a service pack. Another interesting characteristic, which we'll touch on later, is that the system assumes that new user accounts and their home directories will be placed on separate drives under the /mnt directory; there isn't any local /home directory. I bring these points up to illustrate that while FreeNAS bears a resemblance to FreeBSD and its Linux cousins, the operating system has been stripped down and altered to focused specifically on file storage and most interaction with the system is intended to be done through the web portal.

The web interface has a nice, clean design with all the controls and menus on one page. Down the left side of the page we see an expandable tree of options. Top-level categories include user account management, adding and managing storage, creating network shares, configuring services and monitoring the system. Clicking on these categories expands the tree, showing us more specific categories. Over on the right side of the screen we see all of the individual options in the selected category. In the top-right corner of the window there's a log off button, a button for bringing up the account manager, a button for connecting us to the FreeNAS project website and a status "light". The status indicator flashes red when something needs our attention and glows a steady green when everything is working properly. When we first log in the light is red and clicking on it brings up a window suggesting that we set an administrative password. Something I found curious is that the web interface works using the insecure HTTP protocol rather than the secure HTTPS protocol, which isn't available under the default installation -- something to keep in mind if you're using FreeNAS on a shared network.

The first task we probably want to accomplish after signing into the web interface is setting up disks to use as storage. Going to the Storage menu on the left and selecting Volumes we're able to bring up the file system handling screen. Here we can add new disks, opt to format them as either UFS or ZFS volumes and select a mount point for them. All new volumes are mounted under the system's /mnt directory and owned by the root user. Once a new volume is added to the control panel we're able to change its permissions, enable periodic snapshots and manage any existing ZFS pools. The interface is really slick, and the options clearly labeled. I suspect people who haven't used ZFS at all before will be able to create and manage ZFS partitions and snapshots without any problems.

Another area we can work with is creating new users. Though non-admin accounts can't access the web interface we can give users access to services like rsync and secure file transfers. New user accounts are placed on data volumes and don't share the same partition as the operating system, keeping data and FreeNAS itself separate. One problem I ran into setting up accounts is that FreeNAS offers to let us set public key authentication, but when I installed a key on the FreeNAS box I wasn't able to use it to login.

FreeNAS comes with a number of different services we can enable and configure. Some of them include tying in with a local Active Directory or LDAP server. Secure shell is available, as are rsync, CIFS (Windows) shares, NFS shares and Apple network shares. The SMART disk monitor is there to make sure our hardware is working properly. There's also a UPS monitoring service which will let us check our electrical situation and cleanly shut down the NAS if it appears that the system is on battery power. There is a module for connecting to dynamic DNS providers including dyndns.org, easydns.com, no-ip.com and others, making it possible to connect to our NAS box even when it doesn't have a static IP address. We can also alter our network settings through the web interface, selecting whether we want a static IP address or to use DHCP, and we can set DNS information and gateways. By default FreeNAS uses DHCP and sets these items for us automatically and we can fine tune things as we see fit.

One last feature I really liked was the monitoring option. FreeNAS provides us with the ability to monitor processes and see dynamic graphs detailing CPU usage, memory consumption, swap usage and network traffic. It's nice to be able to bring up a single web page and get an immediate idea of what kind of load the NAS is under.

The FreeNAS project, being based on FreeBSD 8.2, should support all of the same hardware as its parent. One reader asked if I could point out NAS hardware which is known to work or would be supported. On the FreeNAS website they provide links to two NAS solutions, both made available by the project's sponsor, iXsystems. For home and small business users they suggest the FreeNAS Mini and for enterprises they provide an array of higher end NAS hardware. If you're interested in FreeNAS and want a supported solution, that's a good place to start. People experimenting at home will probably find that most common hardware is supported by the underlying FreeBSD kernel and, in a pinch, it's possible to install FreeNAS in a virtual machine.

Let's look at some pros and cons. What I like about running FreeNAS is that it is really straightforward to set up. The install is all of about five minutes, the documentation is helpful and the system doesn't have any clutter. The web interface is top notch, being both very easy to navigate and powerful. When we stick a new disk in our NAS box it's a matter of just a few mouse clicks to format it with either the UFS or ZFS file systems, add it to a pool and enable snapshots. We can enable rsync modules, secure shell and network shares in seconds. The system is stable, uses very few resources and I like the status "light" and accompanying alert messages in the upper-right corner of the web interface. FreeNAS probably provides the easiest way to handle ZFS pools and snapshots I've seen to date.

There were some concerns too. The big one for me was security. There doesn't appear to be any way to patch software such as OpenSSH or the web server between service packs. The web interface is served up over plain HTTP and there's no secure connection option in the default install. It's easy to enable secure shell to check on items remotely, but it's not as convenient. Though not strictly necessary, it would have been nice if adding new packages would have worked in order to add a specific FTP client, for example. Sadly all of the FreeBSD packages I tried to add failed to install.

In short, I think FreeNAS has a great interface, is quick to get up and running and, using the FreeBSD kernel and ZFS technology, will handle huge amounts of data reliably. I've heard rumours that later versions will support adding software using PBI modules, which will be a welcome addition. I'd like to see more focus on security. Secure HTTP connections out of the box would be great, as would allowing some users limited edit access or read-only access to parts of the web interface. FreeNAS offers a good, simple way to back up our data, it has lots of useful built in services and I didn't run into any show-stopping problems.

The annual Debian Project Leader (DPL) elections held last week confirmed Stefano Zacchiroli as the leader of the world's largest Linux distribution project for another year: "In accordance with its constitution, the Debian project has just re-elected Stefano Zacchiroli for a third year as Debian Project Leader. More than 80% of voters put him as their first choice (or equal first) on their ballot papers. This is the first time in the history of the project that a candidate wins in three consecutive years. Stefano's large majority over his opponents shows how satisfied the Debian project is with his work so far, and its wish for him to represent the project during one last term -- Stefano has already announced he won't be seeking re-election again next year. Wouter Verhelst and Gergely Nagy also gained a lot of support from Debian project members, both coming hundreds of votes ahead of the "None of the above" ballot choice. Stefano has been a Debian developer since March 2001 and was a long-term contributor to several core services such as Debian's package tracking system and its quality assurance team. He became Debian Project Leader in 2010, then in 2011 was re-elected unopposed."

* * * * *

Following Canonical's recent announcement about the termination of funding for Kubuntu's lead developer Jonathan Riddell, some fans and users of the distribution began to wonder about the future of their favourite project. Luckily, last week's news about Blue Systems stepping in to take over the distro's sponsorship should alleviate any remaining worries: "Kubuntu will have a new sponsor in Blue Systems from the 12.10 cycle starting in May. Kubuntu is a community-led project to create a KDE flavour as part of Ubuntu. Our sponsor since it started has been Canonical who are now moving to focus on their Unity flavour. Blue Systems sponsors a number of KDE projects and will encourage Kubuntu to follow the same successful formula as it has always had - community-led, KDE-focused, Ubuntu flavour. Kubuntu roll-outs include the world's largest Linux desktop in Brazil. Kubuntu is one of the most successful communities within the Ubuntu project, home to a number of flavours. With the new Kubuntu Active flavour forthcoming as the first Ubuntu flavour designed for tablets there are many exciting possibilities for the project."

* * * * *

Mandriva Linux has been slowly falling off the radar of its user and developer community, following (yet another) round of financial troubles that emerged last year. But the company is not dead yet. In a somewhat unexpected announcement published last week on the official blog, Mandriva COO Jean-Manuel Croset called on the distro's community to take a more active role in the distribution: "The purpose of this post is to get the opinion and ideas of the community, as well as to feel how strong you are. The desktop distribution is our historical product, it has evolved from the early times and have experienced all the ups and downs of Mandriva. I would not like to judge whether the orientations taken in the past were right or not, as I am myself relatively new in the company. However, I'm sure that a community is necessary and that our company can't be without one. I'm also convinced that, considering this fact, we need to take care of you. On April 30th, Mandriva will hold its long-awaited general assembly of the shareholders. Shortly after that, we'll define the strategy and set our priorities for the next twelve months." Susan Linton expands on the story in "Mandriva's Alive!", while Mandrake Linux founder Gaël Duval has written an informative post entitled "An OS in the Public Interest - a Mandriva Linux Foundation?"

* * * * *

One of the many strengths of open-source operating systems is the availability of source code that can be cast into any form and shape - from general-purpose distribution to highly specialised operating systems. One area where Linux has been shining in recent years is education, with DoudouLinux being one of the projects that cater specifically for very young children. Linux.com's Carla Schroder finds DoudouLinux "a beautiful example of functional simplicity": "DoudouLinux has several features that set it apart from the others: a safe computing environment for children; make computers accessible to all children on earth; copy and share freely; carry it anywhere and use safely on any computer; the operating system children prefer. Safety means two things. It means system safety, because even though DoudouLinux can be installed to a hard drive, it's really intended to run from a CD or USB stick without making any changes to the host system, and without access to the host system. It can't be used as a rescue distro or interfere with the host system in any way. There is no console and no command line. It is very simple, with a limited tightly-focused set of applications, and no modifications without rebuilding the system image."

Quite often we, as computer users, need to schedule applications or jobs to take place at a given time. Backups typically happen at night, virus scans might happen after dinner, system updates might take place first thing in the morning. It's often useful to have routine tasks performed automatically and at a time when we're not sitting in front of the machine. This week we're going to cover the cron daemon and demonstrate how it can be used to quickly set up periodic tasks.

What does cron do? Well, once a minute the cron daemon checks the file /etc/crontab to see if any tasks are scheduled and, if it finds an applicable task, it runs a given program. The /etc/crontab file is a text file which we can open and examine in any text editor. Let's break down the information fields we will find in that file.

Typically a crontab file will contain two or more lines setting variables. Usually we will see a line setting the path to a shell and another listing the paths where cron can find executable files. These may look like the following:

SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin

Following these variables we will find lines specifying times and tasks to be run at those times. Let's look at an example of one of these scheduled tasks:

15 * * * * root logrotate

The first five fields of the line are made up of numbers or stars. These fields represent a given point (or points) in time to let us know when the task will be run. From left to right the fields indicate the minute, hour, day of the month, month and day of the week when a task is to be run. Stars effectively mean "any" or "every". The sixth column indicates which user account will be used to run the task and the final field is the command to be run. In the above example we will run the logrotate command as the root user. This will happen 15 minutes into every hour of every day of every month, on every day of the week. In the following example we will run a backup script as the root user at noon on every Sunday:

0 12 * * * 0 root my-backup-script

As you can see, we've set the minute field to zero, the hour to twelve (noon) and the day of the week to zero (Sunday). Cron associates Sunday with zero, Monday with one... through to Saturday which is six. Here is another example where we perform a clean-up of the /tmp directory at 6:30pm every evening from Monday through Friday. The dash character allows us to specify a range:

30 18 * * 1-5 root rm -rf /tmp/*

On most Linux systems it's not just the root user who can schedule tasks, regular user accounts can create their own cron jobs. These user-scheduled tasks are kept separate from the /etc/crontab jobs and can be accessed by running the command:

crontab -e

The crontab command will open a text editor and allow us to create tasks specific to our account. The main difference between the user-specific schedules and the /etc/crontab file is that the user-specific schedules do not include a username. For example, the following entry in my crontab file will perform a backup of my Documents directory at 5:00am on the first day of each month:

0 5 1 * * tar czf ~/mybackup.tar.gz ~/Documents

Should we wish to see all of the jobs we have scheduled in our cron file we can run

crontab -l

to get a complete list. Lastly, we can remove all of our user's scheduled tasks by running:

crontab -r

The cron program is a very flexible and powerful tool which can be used to automate processes and is particularly good for scheduling backups and system clean-ups. It's a very handy utility to know.

An updated version of Superb Mini Server (SMS), a Slackware-based distribution for servers, was made available earlier today: "Superb Mini Server version 1.6.5 released (Linux kernel 3.2.14). This minor release brings along Linux kernel 3.2.14, glibc 2.15 and GCC 4.7.0, with many updated server packages, such as Postfix 2.9.1, BIND 9.9.0, Dovecot 2.1.4, ClamAV 0.97.4, OpenLDAP 2.4.30, MySQL 5.1.62 and OpenSSL 0.9.8u. To retain stability, compatibility and a fully working web server, the new Apache HTTPD server 2.4.1 and PHP 5.4.0 were left out from the stable tree since 2.4 API along with PHP 5.4.0 will bring nothing but problems to most web applications. New packages in this release are gccgo, Wireshark network monitor tool and FreeRADIUS radius protocol server, available in the extra repository. Asterisk add-on package are removed, since they are now included in the new Asterisk 1.8.x package." Read the rest of the release announcement for more details.

Christophe Lincoln has announced the release of SliTaz GNU/Linux 4.0, a major new version of the project's fast, minimalist but extensible Linux distribution with its own package management system: "The SliTaz contributors are pleased to announce the release of the new stable distribution SliTaz GNU/Linux 4.0. Two years of community work have created a reliable system capable of even shorter boot times with more than 1,000 new installable packages. SliTaz provides a complete graphical desktop in 35 MB based on LXDE and Openbox that works entirely in 192 MB of RAM. Its new 4-in-1 CD image can be installed on a hard drive with only 48 MB by automatically selecting a configuration most fully suited to your hardware. The home-made tools have grown. Tazpkg brings a new notification system and is much faster despite the increase in the number of packages and Tazpanel enables a new centralized management system." See the brief release announcement and the detailed release notes for further information.

Elmar Hanlhofer has announced the release of Plop Linux 4.2.1, an updated version of the project's distribution built from scratch and designed to rescue data from a damaged system, backup and restore operating systems, and automate tasks: "Plop Linux 4.2.1 released. The i486 version is now the default version to avoid some PAE troubles. The PAE version is still available as an additional version. ClamAV is back in Plop Linux, it's included in the opt.sqfs and it's available as an optional tar.gz package. New ClamAV 0.97.4; updated glib 2.32.1, Linux kernel 3.3.1, Midnight Commander 4.8.2; ISO boot - find ISO image on hard disk bug fix; NFS boot - optional mount parameter bug fix; optional X new and updates to GNOME 3.4, GParted 0.12, MPlayer 2012-03-31, Firefox 11.0, WINE 1.5.1; desktop website icon removed." Here is the full changelog.

Heiko Zuecker has announced the release of Devil-Linux 1.6.0, a specialist live distribution for firewalls, routers and servers which boots and runs completely from a CD-ROM or a USB Flash drive: "Hello Devil-Linux community. It has finally happened: Devil-Linux 1.6 has been released. This new release brings many new features, lots of improvements, many software updates, Linux kernel 3.2, and a 64-bit edition." Some of the major package updates include LVM 2.02.95, DHCP 4.2.3-P2, OpenLDAP 2.4.30, Squid 3.1.19, Webmin 1.580, Dovecot 2.1.3, MySQL 5.5.21, Samba 3.6.3, Apache HTTPD server 2.2.22, PHP 5.3.10.... See the brief release announcement and consult the comprehensive changelog for more information.

Slackel is a Linux distribution based on Slackware's "current" branch, with the goal of integrating the latest KDE desktop, the Calligra office suite and some custom artwork into separate live (installable to hard disk) and installation DVD images. The project's latest version, KDE-4.8.2, was announced yesterday: "A new set of Slackel KDE-4.8.2 version. A collection of four KDE ISO images are immediately available to our users, including 32-bit and 64-bit installation images as well as 32-bit and 64-bit live images that can be burned to a DVD or used with a USB drive. Slackel KDE-4.8.2 includes the latest 'current' tree of Slackware Linux and the latest KDE 4.8.2 accompanied by a very rich collection of KDE-centric software. The Firefox 11.0 web browser, KMail and KTorrent are the main networking applications included in this release, followed by Akregator and Kopete." Read the rest of the release announcement for further information.

Slackel. Slackel is a Linux distribution and live CD based on Slackware Linux and Salix OS. It is fully compatible with both. It uses the current version of Slackware and the latest version of the KDE desktop. The Slackel disc images are offered in two different forms - installation and live.

Star Labs - Laptops built for Linux.
View our range including the Star Lite, Star LabTop and more. Available with a choice of Ubuntu, Linux Mint or Zorin OS pre-installed with many more distributions supported. Visit Star Labs for information, to buy and get support.

Rescatux is a Debian-based GNU/Linux live distribution that includes a graphical wizard for rescuing broken GNU/Linux installations. The available rescue options include restoring the GRUB bootloader after a Windows installation, Linux and Windows password resets, and Linux file system checks.