DistroWatch Weekly

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

DistroWatch Weekly

DistroWatch Weekly, Issue 590, 22 December 2014

Welcome to this year's final issue of DistroWatch Weekly! It has been quite an exciting year for the open source community. This past year we experienced some unpleasant events such as the Heartbleed bug and the Shellshock vulnerability. We also saw positive events such as the OpenBSD project creating a new, security-focused fork of the OpenSSL library. Plus this past year saw the launch of such polished products as Red Hat Enterprise Linux 7 and Ubuntu 14.04. We got to see forward strides in file system technology and boot environments from the openSUSE and PC-BSD projects. Init software received a lot of attention this past year, especially in the Debian community where there was much debate over whether SysV, Upstart or systemd should be Debian's default init technology.

One project we did not hear much from over the course of the year was Fedora and we are happy to report the community distribution launched its one release of the year this month. We have a first impressions review of Fedora 21 below. In our News section this week we discuss Ubuntu's community and plans the project has to encourage people to work with Ubuntu. Plus we share news about an upcoming mobile phone powered by Ubuntu. We also link to a video showing off Manjaro's new system installer and we talk about how Mageia is giving back to upstream contributors. This week we share a review of an application which makes extracting and converting data from PDF documents easy. Plus, in our Tips and Tricks column, we explain how to increase the size of a ZFS volume without taking the file system off-line. As usual, we share the releases from the past week and look ahead to fun developments to come.

Here, at DistroWatch, we have a lot of fun exploring new technologies and open source distributions. It has been a great experience, getting to share this year's events in open source software with you and answering your questions. DistroWatch Weekly will be taking the last week of 2014 off for holiday, but we will return on January 5th. Until then, we hope you will keep the questions coming and be sure to recommend some distributions you want to see reviewed in 2015. We wish you all a wonderful week and happy reading!

It has been about a year since we last saw a release from the Red Hat sponsored Fedora project. Fedora is a community distribution which acts as a test bed for new technologies and the project is often among the first to adopt new software. Over the past few months we have been hearing that Fedora planned to split its distribution into three product branches, each one built upon a common base that would maintain compatibility between the branches of Fedora.

The latest version of Fedora ships with a number of interesting features. For people who wish to run Fedora in a cloud environment the project offers a minimal, modular kernel that contains just the technology required for a virtual environment. A more robust, general purpose kernel is available for installations on servers and workstations. Fedora 21 ships with a new graphical package manager called Software, a utility for setting up coding project environments and better integration for web apps. Fedora 21 also offers a technology preview for GNOME running on a Wayland display server (GNOME Shell running on the X display server is the default graphical interface.) Fedora can be downloaded in 32-bit and 64-bit builds for the x86 architecture. For people who want to experiment with other desktop environments the Fedora community provides a number of spins. These spins share the core Fedora technologies while providing different applications and desktop environments.

I decided to download the 64-bit Workstation branch of Fedora which ships with GNOME 3.14 and found the ISO for this product is 1.4GB in size. Booting from the media brings up a window asking if we would like to run Fedora's live desktop environment from the media or launch the project's system installer. If we opt to try the live desktop we are presented with GNOME Shell. A pop-up then appears letting us know where to find the icon that launches the system installer. The desktop is mostly empty and the wallpaper shows us a dark sky. The Activities (application) menu sits in the upper-left corner of the screen. The current time is shown at the top-centre part of the display and the user settings and shutdown options are located in the upper-right corner of the display.

Fedora's installer is a graphical application that starts by asking us to select our preferred language and then, optionally, select our keyboard's layout. From there we are shown a hub screen with configuration modules we can visit in the order of our choosing. One module handles disk partitioning, another lets us set the hostname of our machine, a third module deals with our keyboard's layout and a fourth lets us select our time zone. Most of these steps are quite straight forward. Disk partitioning is a little unusual in the way the steps are divided up. First we select which disk (or devices) we wish to include in partitioning. Then we can either take a guided partitioning option or manually divide up our disk. Partitions to be created are shown on the left side of the screen and, when we click on a partition, its characteristics are shown on the right.

Fedora allows the use of LVM volumes, Btrfs volumes and standard partition file systems such as ext4. At first I tried the guided option with Btrfs as my preferred file system. This gave me a boot partition (formatted as ext4), a Btrfs volume for the root partition and home directories and a large swap partition. I found it is not possible to change the size of partitions, even if they have not yet been written to the disk. I ended up removing the swap space and root partition and creating a new Btrfs volume and swap partition of different sizes. Once our drive is divided the way we desire we proceed to the next hub screen and the installer begins copying its files to our local disk. The second hub has just two modules, one for placing a password on the root account and another module for create a regular user account. We then wait a few minutes until the installer finishes copying files and putting the required configuration in place. We can then close the installer's window and return to using the live environment.

There appear to have been a few changes in Fedora's installer since Fedora 20 was shipped. One change is there is a little more colour in the installer, especially where navigation buttons are concerned. This seems like a small step forward. Fedora's installer has an odd and inconsistent layout and having the navigation buttons highlighted with a splash of colour helped me find my way around. I also think Fedora 21 might have installed faster than Fedora 20 did. I didn't perform timed trials, but the time it took to load configuration modules and the time required for the installer to copy its files to the hard drive struck me as being less than before.

The installer feels a bit more snappy this time around and that is always welcome. One other thing I noticed is Fedora has been moving away from two-step installations. The last few releases have been moving away from doing the install in two steps where we would first install files and then configure the operating system after a reboot. Now the installation and configuration are done all in one step and this brings Fedora's installation process more in line with other Linux distributions.

I wondered, after I finished the install process, if Fedora would be able to boot from a non-standard partition. For example, could Fedora boot from Btrfs directly without requiring an extra partition formatted as ext4? Later in the week I installed Fedora again, setting up a Btrfs partition for the operating system without a separate /boot partition. The installer gave no warning with this configuration and so I proceeded. However, once the installation finished, I was unable to boot from the Btrfs-only installation. The operating system panics at boot, unable to mount the file system formatted with Btrfs.

The locally installed copy of Fedora boots to a graphical login screen. From here we can sign into our account and activate one of three graphical interfaces. We have the option of accessing GNOME Shell, GNOME Classic and GNOME Shell running on Wayland. I tried the Wayland option on my physical desktop computer and in a VirtualBox environment. In both cases the Wayland session failed to load and I was sent back to the login screen. GNOME Classic gives us an interface similar to GNOME 2 (or MATE), with the application menu placed at the top of the screen. I mostly used GNOME Shell (running on the X display server) for my trial.

The first time I signed into GNOME Shell I was asked again for my preferred language and to select my keyboard's layout from a list. I was then asked if I would like to connect my local account to any on-line accounts, such as a Google account, Facebook or ownCloud. I maintain a private ownCloud server and linked my local account to the remote ownCloud instance. Then a Getting Started screen appears and offers to show us videos and written documentation that demonstrate how to perform common tasks using GNOME. GNOME Shell is quite different from traditional Linux desktop environments (and most modern ones too) so I think this series of tutorials will be helpful for many newcomers.

Early on, I noticed a few things about Fedora and its particular implementation of GNOME. For example, Fedora disables GNOME's Location service, in contrast to the Parsix distribution, which I reviewed last week. However, like Parsix and Trisquel, Fedora's implementation of GNOME has an unusually loud "water dripping" sound effect that plays whenever the system wants attention. One of the first things I did with GNOME was go into the settings panel and disable screen locking. Still, anytime I left the computer for five minutes the GNOME lock screen would appear and require I swipe my mouse across the display. This swipe gesture feels quite awkward on a device that does not have a touch screen. Another feature of GNOME Shell that stands out is that whenever the system needs us to perform an action, all windows are pushed to the background and a full-screen notification appears, asking for a password or permission to perform some action. I find this form of focus stealing quite jarring to my work flow.

Next, I want to address how GNOME Shell handles application menus. When we have an application open its menu appears as a minimized button at the top of the screen. To access the window's menu we make a trip to the top of the screen and click the button. This in itself isn't so bad, I usually have windows near the top of the screen anyway. However, I found that GNOME Shell would often not allow me to access menus that were more than one level deep. Sometimes if there were multiple nested menus in an application I could access the first nested menu, but no amount of clicking or hovering my mouse over most nested menus would grant me access to items stored in sub-menus. This effectively crippled more complex applications (and some simple ones) as I was unable to access their features through the GNOME Shell menu system. (I found this same limitation, blocking access to sub-menus, was also present in GNOME Classic.)

I'd further like to address a GNOME Shell feature borrowed from mobile devices. GNOME's Activities menu features application containers. This means that when we bring up the list of available applications, some of the icons we see are not for specific applications, but groups of utilities. On a phone with limited screen real estate it makes sense to create containers. One tap opens the container, another launches the application. But on a desktop machine this is a strange approach that just adds an extra click to the process. To access the distribution's virtual terminal, for example, the user needs to click on the Activities button, click the Applications button, scroll down a page, click the Utilities container and then click the Terminal icon. That is a lot of clicking and mouse movement (compared to the steps required on other desktop environments) just to get at one program.

After using Fedora for some time I realized I had not received any notification of new software updates. I went looking through the Activities menu and found Fedora ships with one graphical package manager, called Software, for dealing with adding, removing and updating packages. The application is divided into three tabs which show us all available desktop software, installed desktop applications and available updates. The first day I was using Fedora I performed a check for new packages and the Software application appeared to lock-up for a few minutes before reporting files could not be downloaded from the project's mirrors. The timeout, I assumed, could be from heavy network load on launch day. I tried again some time later and Software reported it had successfully checked and found no new packages to install. I switched to the command line package manager, YUM, and checked again for updates. YUM found 76 updates waiting to be installed, totalling 243 MB in size. Fedora's YUM package manager has the ability to download delta updates, smaller updates that only upgrade new parts of a package rather than the entire package. This makes for smaller downloads and can be helpful when the user has a slower network connection.

I went back to experimenting with the Software application and found the package manager allows us to browse through categories of desktop software (libraries and command line tools are not displayed). While browsing software was a straight forward experience and Software's web-like interface was responsive while navigating the available packages, searching for items by name took a long time. I also found bringing up details on specific packages took a long time. Eventually, clicking on a package's name brings up a description of the software, a screen shot and a button to install the package. I tried using Software to install a handful of packages. Half of the packages I tried to acquire via the Software application failed to install (for reasons unknown), the other half of the installations completed successfully. By contrast, all the packages I attempted to acquire using the YUM command line manager installed successfully.

I have two more observations to share with regards to package management. One is that there is a second command line package manager included in Fedora called DNF. The DNF command looks and acts almost exactly like YUM, though there are minor differences in output. (According to the DNF manual page, it is the next major version of YUM and maintains command line compatibility.) I think DNF works a little faster than legacy YUM, though for all practical purposes the two package managers act the same. The second item I wanted to mention is that when working from the command line, if I made a typo or typed in the name of a command that was not installed, one of two things happened during my trial. Some days, when I was lucky, a message would appear saying the command was not found and I would be given the chance to download the missing component. The missing software would then be downloaded and installed. On other days the terminal would report the command was not found and then simply hang indefinitely until I pressed Control-C. During the time the terminal was stuck, I noticed PackageKit would be working in the background, gobbling up any spare CPU cycles.

I tried running Fedora on a physical desktop computer and in a VirtualBox virtual machine. On the desktop machine the distribution ran smoothly and I found GNOME Shell was fairly responsive. The GNOME on Wayland option didn't work for me, but GNOME on X performed well. When running on physical hardware Fedora detected my devices, correctly set my display's resolution, sound worked and networking functioned out of the box. When running in VirtualBox I ran into a few issues. One is that both GNOME Shell and GNOME Classic ran slowly and I often noticed lag when trying to access menus. Fedora does not automatically integrate with VirtualBox and a search of the project's repositories did not turn up any VirtualBox guest add-ons. I attempted to manually install VirtualBox's guest support and found VirtualBox's X11 support would not install as the software could not identify the version of X Fedora ships with. This meant my screen resolution was limited when I experimented with Fedora in the virtual environment. In either environment Fedora used approximately 560MB of memory when running GNOME Shell and 430MB when running GNOME's Classic interface.

Fedora ships with a small collection of software. Looking through the Activities menu we find the Firefox web browser, the Evolution e-mail client and the LibreOffice productivity suite. The Shotwell photo manager is included along with the Cheese webcam utility. Fedora ships with the Empathy messaging client, a weather monitoring application and the DevAssistant project manager. The distribution provides us with the Transmission bittorrent software, the Rhythmbox audio player and the Totem video player. To help us get on-line, Network Manager is provided. Digging further into the list of applications we find an archive manager, a calculator, a text editor and a document viewer. The Orca screen reader is available along with Java. In the background we find the Linux kernel, version 3.17.

Perhaps what is remarkable is not what is present, but what is not included in Fedora's Workstation edition. It is entirely in character for Fedora to not include multimedia support or a Flash player. Multimedia support is not available in the project's repositories and, at time of writing, third-party repositories which usually fill this gap in functionality have not yet come on-line. Gnash, a free software implementation of Adobe's Flash player is not included, but can be installed from the Fedora repositories. When I attempted to play multimedia files, the system would offer to locate the missing media codecs. The search process fails to install the required codecs, (incorrectly) claiming the codecs are already available on the system. I feel it is also worth noting Fedora 21 departs from previous versions of the distribution by not including certain administration tools. There is no firewall configuration application and no services manager, for example. These configuration tools, and several others, are available in the project's repositories.

Unfortunately, some of the programs which are included in the distribution did not work well for me. For example, the on-line service which links ownCloud instances to the local file manager didn't work early in the week, with the file manager reporting an HTTP error had occurred whenever I attempted to access my remote files. Later in the week I tried again and found I could access my remote files. Perhaps a software update fixed the connection issue, I'm not certain. Another problem I ran into was with DevAssistant, the utility for setting up programming environments. DevAssistant asks us what sort of project we are going to work on (a C/C++ program, Ruby, Python, etc) and offers to install the required tools to work with these languages.

DevAssistant also offers to tie our project to a Github account and install RPM building tools. This strikes me as a good idea, it can be troublesome as a developer to hunt down all the tools needed to work on a project. DevAssistant did, in fact, install required compilers and RPM related software for me. I did run into two minor glitches though. One was the project directory I asked DevAssistant to make was not always created, a minor annoyance. The other quirk I noticed was that when I told DevAssistant not to link my project to a git repository, the software would prompt me for my git login credentials anyway. Again, not a big problem, but it does make me wonder if DevAssistant could have benefited from more testing.

Conclusions

According to Fedora's new website, the Workstation branch of the distribution can be described as follows: "Fedora Workstation is a reliable, user-friendly, and powerful operating system for your laptop or desktop computer. It supports a wide range of developers, from hobbyists and students to professionals in corporate environments." Based on my experiences this past week I feel the points about being reliable and user-friendly are open for debate. That aside, I think the key point being made here is that Fedora Workstation is designed exclusively, it seems, for software developers. That would explain why the distribution is so minimal in its default applications.

The distribution does not support multimedia, it does not ship with many graphical configuration tools, it doesn't even have much in the way of default desktop applications, outside of common utilities such as a web browser, an e-mail client and LibreOffice. It is a surprisingly bare bones operating system out of the box when we consider its 1.4GB ISO. Aside from these basics, the one tool of note is the DevAssistant utility. As a developer, I do think the DevAssistant application is a good idea, it needs a few minor fixes, but the concept is certainly welcome. I hope DevAssistant is adopted more widely through the open source community as it will make setting up project environments easier.

Something which has bothered me about recent releases of Fedora is the distribution does not appear to have a specific goal or overall design. It comes across, to me at any rate, as a collection of cutting edge utilities without a sense of collaboration. Less a well oiled machine and more a collection of parts. As someone who likes to tinker, develop software and patch code, there is an appeal to having an unorganized box of new toys to play with. However, I feel increasingly that Fedora might be suffering from a lack of purpose. Fedora 21 feels, to me, to be an alpha release of Red Hat's next Enterprise Linux and that is all it feels like. I know some people might find that evaluation unfair, might point out that Fedora is an experimental distribution that anyone in the community can use as their testing sandbox. And that is true, but there are other experimental distributions out there (Kubuntu 14.10 with Plasma 5 and openSUSE come readily to mind) that walk the cutting edge while also providing lots of useful utilities and a cohesive design.

Some people might feel my reaction to Fedora 21 is more negative than the various bugs (and my subjective design complaints) warrant and that is probably true. To be honest, I am a bit frustrated with Fedora 21. In part because both Matthew Miller (Fedora's Project Leader) and I looked at recent Fedora releases and noticed the same problems. Mr Miller wrote last year: "We're not seen as relevant...let alone exciting. Whenever I go to a tech meet-up or talk to someone from a new start-up company, their developers are inevitably using a different (usually proprietary) desktop OS, plus a non-Fedora distribution on their code. We're being left behind and left out. It doesn't matter how theoretically great we are if we end up with no users." At that point he and I were on the same page. But while I had hoped Fedora would spend its year between major releases forging a new and exciting path, creating something bold, Mr Miller had a different vision. He proposed the project "refocus Core to provide a better platform for building on" and "Empower SIGs [Special Interest Groups] to create solutions that fit."

I think it is arguable the Fedora project has done just that, created a small "core" base that products (such as Workstation, Server and Cloud) can be built on. And I applaud Mr Miller for working successfully toward his vision. Still, I am disappointed the result appears to be a smaller, less interesting Fedora. It is a more, to borrow Mr Miller's term, "boring" foundation distribution, rather than a powerful desktop or server distribution. It is not a solution that brings more functionality to the table, something that would approach Mint's level of "just works", Ubuntu's task oriented work flow or openSUSE's level of integration. As a core platform we can use as a base to install Docker containers and run services, Fedora 21 can be considered a success. As a workstation operating system I would use to develop code or a desktop distribution I would install for friends & family, I do not think Fedora is a good match for those roles.

* * * * *

Hardware used in this review

My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications:

Processor: Dual-core 2.8 GHz AMD A4-3420 APU

Storage: 500 GB Hitachi hard drive

Memory: 6 GB of RAM

Networking: Realtek RTL8111 wired network card

Display: AMD Radeon HD 6410D video card

Miscellaneous News (by Jesse Smith)

Questions raised at Ubuntu Community meeting, Ubuntu phone coming in February, Manjaro shows off new system installer, Mageia gives back to upstream developers

The Ubuntu distribution, and its many derivatives, are quite popular and have amassed a large community of users. However, as Daniel Holbach points out in a blog post, there is a concern that people who use Ubuntu are not engaged with the distribution. At a recent meeting a number of questions were raised about Ubuntu community participation and what the barriers to using and innovating with Ubuntu are. Some suggestions for making Ubuntu more accessible to developers include more community events and a mentorship program. Are you interested in working on open source distributions? Let us know what barriers to participation you have faced in the comments section below.

In other Ubuntu related news, Canonical has been saying for a few years now that mobile phones powered by Ubuntu will be coming soon. Mobile devices running Ubuntu should be available on the market (at least for European consumers) starting in February 2015. The OMG Ubuntu website reports: "The first Ubuntu Phone will go on sale in Europe in the second week of February. Made by Spanish device company Bq, the handset will mark the first time that an Ubuntu Phone is sold directly to consumers." The post includes pictures of the upcoming device along with specifications which suggest the Ubuntu powered device will have mid-range hardware and a 4.5-inch touch display.

* * * * *

One of the most critical pieces of software in any operating system is the installer. After all, if the user cannot get the operating system to work it doesn't matter how great the distribution's features are. With this in mind, Manjaro Linux is showing off a new graphical system installer called Calamares. The Manjaro blog states, "By design [Calamares] is very customizable, in order to satisfy a wide variety of needs and use cases. Calamares aims to be easy, usable, beautiful, pragmatic, inclusive and distribution-agnostic. Got a Linux distribution but no system installer? Grab Calamares, mix and match any number of Calamares modules (or write your own in Python or C++), throw together some branding, package it up and you are ready to ship!"

* * * * *

Linux distributions are largely a collection of software components taken from upstream sources. The team behind Mageia, a user-friendly desktop distribution, is aware of the importance of healthy upstream projects and wishes to give back to the developers who help make Mageia possible. To this end, the Mageia team has donated money to the GCompris project. "Almost all of the applications that we use in a Mageia system are developed by other open source projects. Some of these are large and reasonably well funded, such as KDE, GNOME and Mozilla, but there are many others that depend on the support of very small groups of dedicated individuals. One such project is GCompris, which is presently engaged in a fund raising drive to enable it to modernize the appearance of its software. So we have decided that this year we will be donating 250€ to GCompris." GCompris is an educational suite of applications for young children.

Tips and Tricks (by Jesse Smith)

Expanding on-line ZFS storage

Recently I ran into an interesting problem and I felt it, and the solution, worth sharing. I was playing with a virtual private server (VPS) provided by a company that not only supports multiple operating systems, but also provides ready-made FreeBSD images for installation. It was these FreeBSD images that attracted my attention as most of the VPS providers I have worked with in the past supported Linux only. At any rate, my trial was going well when I started wondering about upgrading my plan to include more resources, specifically RAM and storage space. When dealing with Linux in a VPS environment the company providing the service can usually just issue a command that grows the storage space available to the guest Linux distribution. The Linux guest has its file system (typically ext3 or ext4) automatically resized to match the new size of the storage volume. This automation is very convenient for Linux administrators and I started wondering if the process would be so seamless on FreeBSD.

I got in contact with one of the support people at the VPS hosting company and asked how they handled upgrading VPS accounts running FreeBSD and if the file system would automatically resize to match the available space. I was told the company could upgrade accounts running FreeBSD, but the file system (UFS) would not automatically resize to match. They would provide a short shell script I could run after the upgrade that would grow UFS so my file system was using the newly upgraded storage space. Then I asked if they could do the same for FreeBSD installations running ZFS. The answer was, in short, "no", they apparently did not have experience with resizing ZFS storage pools.

Since ZFS is a modern, advanced file system I assumed the process of resizing it to take up available disk space would be easy, perhaps even automatic. I was wrong. I began searching forums and mailing lists for advice on resizing ZFS volumes in a virtual environment. What I generally found on forums dedicated to ZFS, FreeBSD, FreeNAS and VPS environments was that ZFS was designed to work with physical hard drives. ZFS, I read over and over again, expected a new, larger device to be attached to the machine. Then data could be transferred to the new drive and the old drive could be removed. Alternatively, we could add more and more drives (physical or virtual) and ZFS would expand to use those drives. I also read it might be possible to resize one hard drive if the operating system was running on a second, separate volume. Essentially, the administrator would have to detach the drive used for data, resize it and then reattach it.

What an afternoon of research turned up was: it was not considered possible to resize a ZFS volume on a drive (physical or virtual) while the operating system was running on that drive. Some people claimed it might be possible, but only under specific circumstances which did not apply to VPS environments.

I began experimenting with ZFS and virtual storage space. Eventually I found a series of commands that allowed me to resize a storage volume that was in use without requiring a reboot. The procedure which worked for me is as follows. All commands shown below are run as the root or administrative user. Please make sure that if you try this tutorial yourself that you backup your data first.

The first thing that needs to happen is our virtual hard drive needs to be resized. This may be handled by the VPS provider or, if we are controlling the drive, we can use our virtual machine controls to resize the virtual device from our host operating system. The next thing we should do is get an idea of the size and layout of the hard drive. In this example, I am going to assume our hard drive is device ada0, the first hard drive in a FreeBSD installation. To discover the size and layout of ada0 we use the gpart command:

gpart show

We should see one line indicating the size of the drive and its status. The status we should see at the end of the first line, following the drive being resized, is "corrupted". After this status line we should probably see three lines telling us what partitions are on the drive, which file systems are in use and how big each partition is. The first partition will likely be a "BIOS-boot" partition, the second may be our ZFS volume and the third is often swap space. This is the layout I am going to assume we have for the purposes of this example. Each partition is assigned an index number and in this case they are "1" for the BIOS-boot partition, "2" for the ZFS volume and "3" for swap, your layout and index numbers may differ.

The next thing we need to do is recover the drive's layout so that it is no longer showing as "corrupted". To do this we run the command:

gpart recover ada0

We should immediately see a message saying "ada0 recovered". We can double-check the drive's status by running "gpart show" again. The next thing we will probably want to do is get the swap partition out of the way. If our swap partition comes after our ZFS pool on the drive it may get in the way of the growing ZFS volume. We take swap off-line and remove the swap partition by running:

swapoff -agpart delete -i 3 ada0

This turns off swap space and then deletes partition "3", which in our example is the swap partition. Be sure to run "gpart show" before running the "gpart delete" command to make sure you are removing the correct partition.

Our next step is to resize the ZFS partition. We can take one of two approaches here. If we decide we do not need swap space at all, we can take over all free space on the drive and assign it to our ZFS partition by running:

gpart resize -i 2 ada0

The command above resizes the second partition on the drive, taking over all available free space. However, if we want to continue using swap space we can modify the resize command a little. Let us assume the ZFS partition is currently 10 GB and we want to resize it to be 20 GB, we would run:

gpart resize -i 2 -s 20g ada0

The "-s 20g" parameter tells gpart to resize the second partition to be 20GB in size. We can confirm this action completed successfully by running "gpart show". The "gpart show" command will also show us how much space is available at the end of the drive for a new swap partition.

At this point if we check the size of our ZFS storage pool we will see it is still the old size:

zpool list

To tell the file system to expand and take over the entire second partition of our drive we run:

zpool online -e tank ada0p2

The above command resizes the ZFS storage pool named "tank" and takes over the entire second partition of the hard drive. The "p2" at the end of the line indicates we are working with the second partition and, if your drive's layout is different, the number after the "p" will need to match the ZFS partition index displayed when we run "gpart show".

At this point we are nearly done. In fact, if we do not need swap space we can end things here and just run "zpool list" to confirm our ZFS storage pool is the proper, larger size. However, assuming we left space at the end of the drive for a swap partition we can re-add swap space by running a few commands. First, we create a new swap space:

gpart add -t freebsd-swap -s 1g -i 3 ada0

This command creates a swap partition 1GB in size. The new partition is added to our hard drive and given the index number "3". Our next move is to enable the swap space so that our operating system may make use of the new partition:

swapon /dev/ada0p3

Once again, the "p3" at the end of the line indicates our swap partition was assigned to index "3". If we used a different index then the number should be changed to reflect swap's index number in the output generated by "gpart show". We can confirm swap space is enabled and working by running the command:

swapctl -l -h

This should show 1 GB of swap space is in use.

Finally, a word of caution. When I removed and re-added swap space it changed the label of my swap partition. This meant the swap entry in my /etc/fstab file was no longer valid. The next time the operating system booted swap space was not enabled. To avoid this problem, open the /etc/fstab file and find the line which mounts swap space. Make sure the beginning of the line lists the partition we just created, /dev/ada0p3, as the swap device.

I have tried this process twice to resize ZFS running on virtual drives on FreeBSD 10.0. So far the process has worked without any problems and I have ended up with more storage space for my ZFS volume. During my research I ran across forum posts from several people who wanted to resize ZFS in virtual environments (typically on FreeBSD or FreeNAS installations) and nobody seemed to be having any luck. I hope this tutorial will be helpful as this is the only method for resizing ZFS volumes I could find that works in virtual environments with just one hard drive available.

Product Reviews (by Jesse Smith)

Able2Extract PDF Converter 9.0

InvestInTech.com Inc is a Canadian company that develops a number of interesting products, with most of their utilities designed to work with PDF documents in one way or another. The people at InvestInTech were nice enough to send me a free copy of the latest version of Able2Extract for Christmas this year and I want to share a few things about this product as I have found it to be useful.

Able2Extract (a2e) is an application for creating and converting PDF documents or, at our discretion, converting specific parts of PDF documents. The latest release of a2e, version 9.0, is available for Linux, OS X and Windows. The Linux version can be downloaded as a RPM file or a Deb package and the download is about 50 MB in size. There are two editions of a2e. The regular edition (US$99) is designed to convert PDF documents into word processing formats, spread sheet formats, presentation slides, images, AutoCAD documents and HTML files. The Professional edition (US$129) of a2e carries the same functionality along with the ability to read text embedded in images and save that text as a Microsoft Word document. A free, one-week trial is offered for people who want to try before they buy.

I installed a2e on a desktop running Ubuntu 14.04 (64-bit). Upon installing the a2e package the software manager reported an error saying a 32-bit package dependency was missing. The 64-bit version of this software was already installed and I found a2e ran fine with the 64-bit build of the required compression software.

Upon launching the a2e software we are presented with a blank work space with a menu bar and a series of action buttons placed along the top of the program's window. A tool tip appears and lets us know we can click a button to open an existing PDF document to get started. Once we open a PDF document another tool tip appears suggesting we can press one button to select the entire document, or activate the selection tool to highlight parts of the document we want to convert. Once we select parts of the PDF document we can press one of several buttons corresponding to different file formats. Clicking any of these buttons starts the conversion process and results in a new file with information extracted from the PDF document. As I mentioned above, a2e can extract data from PDF documents and convert it into a wide range of formats. Apart from Microsoft Word and Excel formats, a2e can also save information to LibreOffice/OpenOffice.org files, including Writer, Calc and Impress formats.

I have used versions of a2e in the past and I was curious to see how the new version would hold up when converting some oddly formatted PDF documents to spread sheets. I have a file in particular that has no fixed formatting, irregular column widths and it uses periods instead of spaces to separate fields. It's a troublesome document because it lists prices of items, but does not offer any total and doing a simple copy/paste of the file into a spread sheet results in a mess. The a2e application not only correctly identified fields, separating item descriptions from costs, but it also reformatted the irregular lines so that all numbers were arranged in the same spread sheet column. Further, all text was moved to another column during the conversion to the spread sheet format so it was easy to perform math on the numbers from the original document. I was pleasantly surprised a2e was able to do this and produce a clean looking result.

Finally, I mentioned before the Professional version of a2e can recognize words embedded in images and extract the text data to a Microsoft Word document. I also found that the a2e website has this feature and they apparently offer the service for free. Users can upload PDF documents containing images with text, supply an e-mail address and the a2e website will e-mail back a Word document with the extracted text. I created an image containing text to test this service and, half an hour later, received my Word document with the exact text I had placed in the image, free of charge. I think that is a nice touch and it's hard to think of a better advertisement for the company's Pro version of a2e.

I find the functionality presented by a2e quite useful. On a semi-regular basis people contact me to ask how they can extract and edit forms and images that have arrived in PDF documents other people sent them. I often need to explain to non-technical users over the phone why a PDF document is difficult to edit, especially on an open source platform. Trying to explain why they cannot copy and paste text from a image embedded in a PDF document is even more troublesome. It makes me happy to have the ability to manipulate data in PDF documents using an application with a very straight forward and clean user interface. Another feature of a2e I appreciate is the ability to convert documents in batches. Let's say I have a collection of a few dozen documents, perhaps PDF books, and I want to convert them to LibreOffice's open document format. I can do this by opening a2e's batch utility, selecting all the PDF files in my collection and selecting the desired format. Then I can walk away and let a2e convert all my PDF documents to LibreOffice Writer documents.

I know some people are not fans of non-free software, I can understand that concern. I usually try to stick with free and open source solutions myself. However, Able2Extract is one piece of commercial software I feel good about. It's very easy to use, it offers useful functionality I don't think I've seen offered elsewhere by open source utilities (at least not in such a user friendly manner) and I appreciate the free trial offered by InvestInTech. If you or someone you know wrestles with PDF documents and could use an easy way to extract and edit the contents of those files, Able2Extract is an excellent tool to have.

Alexander Tratsevskiy has announced the release of Calculate Linux 14.12, the latest update of the project's Gentoo-based distribution with editions for desktops (KDE or Xfce), servers and media centres: "We are happy to announce the release of Calculate Linux 14.12. Main changes: updates are checked even faster in the background; Calculate utilities, Perl and Python libraries, and the rest of your packages will not be updated separately any more; if only the file header has been modified, the new configuration will be accepted automatically; all obsolete package archives are cleared; added support for installing CL as a host system on Virtio devices; icons somewhat edited and services rearranged for Calculate Console; CLD and CLDX got back several wallpapers from previous versions...." Continue to the release announcement for a full changelog.

Version 4.10 of Wifislax, a Slackware-based distribution with a collection of utilities for performing wireless connection analyses and related security tests, has been released. This the first time the ISO image file exceeds 700 MB which means that it will no longer fit on a CD. The release comes with some user-friendly enhancements, e.g. users no longer need to run "update-grub" after installing the distribution to a hard disk and there is also a new notification system for updated packages. Much of the development has focused on creating update/install scripts, with can be used to update parts of the system, including the Linux kernel. Wifislax 4.10 is built on top of Linux kernel 3.12.35 and it includes a choice of KDE 4.10.5 and Xfce 4.10 desktops. Both Spanish and English languages are supported, although the release announcement is available in Spanish only.

John Martinson has announced the availability of a brand-new edition of Robolinux with the lightweight LXDE as the default desktop. Extremely fast and containing a pre-configured VirtualBox for running other operating systems from within Robolinux, it is, according to the developers, the project's best release to-date. From the distribution's SourceForge page: "Robolinux is very proud and excited to announce its new Robolinux LXDE 'Need for Speed' 32-bit and 64-bit variants which boot up using an unprecedented 66 MB of RAM in its 32-bit operating system. An incredible amount of effort was put into making the LXDE user interface look extremely polished and easy to use. An enormous amount of time and effort went into optimizing and streamlining the new LXDE desktop so that Linux beginners and advanced users would be very pleased. Both variants are based on the rock-solid Debian 7 source code and have one-click 'Auto Upgrade Robolinux' option in the main menu."