Monthly Archives: June 2017

How to Determine and Fix Boot Issues in Linux |

The Linux system boots so fast that most of the output scrolls by too quickly to read the text (showing services being started) sent to the console. Therefore observing boot issues/errors becomes a little of a challenge for us.

In this article, we will briefly explain the different stages in a Linux system boot process, then learn how to establish and get to the bottom of boot issues: in terms files to look into or commands to view system boot messages.

Summary Of Linux Boot Process

In summary, once we press the Power On button, the BIOS (Basic Input Output System) a program integrated in a motherboard performs a POST (Power on Self Test) – where hardware such as disks, RAM (Random Access Memory), keyboard, etc are scanned. In case of an error (missing/malfunctioning hardware), it is reported on the screen.

Read more at Tecmint

Click Here!

Rockstor: A Solid Cloud Storage Solution for Small or Home Office |

The Linux platform can do quite a lot of things; it can be just about anything need it to be and function in nearly any form. One of the many areas in which Linux excels is that of storage. With the help of a few constituent pieces, you can have a powerful NAS or cloud storage solution up and running.

But, what if you don’t want to take the time to piece these together for yourself? Or, what if you’d rather have a user-friendly, web-based GUI to make this process a bit easier. For that, there are a few distributions available to meet your needs. Once such platform is Rockstor. Rockstor is a Network Attached Storage (NAS) and cloud solution that can serve either your personal or small business needs with ease.

Rockstor got its start in 2014 and has quickly become a solid tool in the storage space. I was able to quickly get Rockstor up and running (after overcoming only one minor hurdle) and had SMB shares and users/groups created with just a few quick clicks. And, with the inclusion of add-ons (called Rockons), you can extend the feature set of your Rockstor to include new apps, servers, and services.

Let me walk you through that process (as well as how I solved one tiny hiccup), so you can decide if Rockstor is the solution for you.

A word on requirements

I managed to easily get Rockstor running as a VirtualBox VM. Whether you’re installing as a VM or on dedicated hardware, the minimal installation requirements are:

  • 64-bit Intel or AMD processor

  • 2GB RAM or more (recommended)

  • 8GB hard disk space for the OS

  • One or more additional hard drives for data (recommended)

  • Ethernet interface (with Internet access – for updates)

  • Media drive or USB port (for installation on dedicated hardware)


Based on the Anaconda Installer, the installation of Rockstor is incredibly simple. In fact, once you start the installation process, the only thing you have to do is configure a root user password; there is no package selection, no set up of systems or servers. Once the installation completes, reboot, and you’re ready to go.

When the reboot completes, you will discover the biggest (and really only) caveat to Rockstor—the handling of the IP address. After logging into the Rockstor terminal window (the only GUI is the web interface), you will find it does not give you any indication what IP address to use. And, since you weren’t able to configure the networking interface during installation, what do you do?  

The first thing would be to issue the command ip address. This will report to you the DHCP-assigned IP address of your server (Figure 1).

Point your browser to the IP address (using secure HTTPS, so https://SERVER_IP) listed. NOTE: You will have to okay the exception for the self-signed certificate, used by your Rockstor instance, in your browser.

On the first page, you will be required to accept the license as well as create a hostname and admin user for your Rockstor instance (Figure 2).

Upon successful creation of the hostname/admin user, you will be greeted by the Rockstor Dashboard (and a popup asking if you want to update to the latest release). Do note that the update popup will take you to a page where you can sign up for either the stable or the testing releases. The Stable updates will cost you $40.00 for a three-year subscription and the Testing updates do not have an associated cost. If you do enable the Testing updates, make sure you read through each offered changelog before okaying the update.

Addressing the IP address caveat

You don’t want to have to work with a DHCP-assigned IP address for your storage server. Once you’ve taken care of the final installation/update bits, you can then configure the network device for a manual (static) address through the Rockstor GUI. One method for setting up a static IP address is through the Rockstor web interface. To do this, log onto Rockstor as your admin user and then click on SYSTEM > Network (Figure 3).

In the resulting window (Figure 4), configure the network interface as a manual connection and fill out the necessary information.

With that taken care of, you’re ready to start setting up your Rockstor storage server.

If the above method fails you (which it did me in one instance), I have found the best solution to be the old-fashioned method…configuring the network manually. For this, you need to log into the Rockstor server as root and then edit the networking file associated with your network adapter. As I was working with VirtualBox, the file was /etc/sysconfig/network-scripts/ifcfg-enp0s3. Open that file for editing and make sure the following options are configured properly:



IPADDR=”IP address”


DNS1=”DNS address”

DNS2=”DNS address

where all options in bold are specific to your network.
There will be other options preconfigured in the file (e.g., NAME and DEVICE), leave them as-is. Once you’ve made these changes, save and close the file, and then issue the command:

systemctl restart network

Now, if you go back to SYSTEM > Network (on your Rockstor Dashboard), you should see the network configuration for your interface is set to Manual, with all of your necessary options.

You are now ready to go back to your Rockstor Dashboard, click STORAGE and set up whatever storage type you need (Figure 5).

Quick Samba Share

Before you create your first share, you’ll want to head over to SYSTEM > Groups and SYSTEM > Users and make sure you have the necessary users/groups created, in order to make creating shares easier.

To set up your first Samba Share, click on STORAGE > Samba. In the resulting window (Figure 6), make sure that Samba Service is set to ON.

With the Samba Service running, go back to the Dashboard and click STORAGE > Shares. In this new window, click the Create Share button and fill out the necessary information (Figure 7).

Click Submit and your share has been created. After the share has been saved, click on the new share from the listings and then click on the Access Control tab, where you can change the associated group for the share as well as the share permissions (Figure 8).

And that’s it to creating a Samba share with Rockstor.

A solid solution for SOHO and SMB

If you’re looking for a solid storage solution for your home office or small business, you’d certainly be remiss for skipping over the open source Rockstor solution. With one of the best storage GUIs I’ve used, Rockstor makes creating a powerful storage solution an experience nearly anyone can handle.

Learn more about Linux through the free “Introduction to Linux” course from The Linux Foundation and edX.

Practical Networking for Linux Admins: Real IPv6 |

When last we met, we reviewed essential TCP/IP basics for Linux admins in Practical Networking for Linux Admins: TCP/IP. Here, we will review network and host addressing and find out whatever happened to IPv6?

IPv4 Ran Out Already

Once upon a time, alarms were sounding everywhere: We are running out of IPv4 addresses! Run in circles, scream and shout! So, what happened? We ran out. IPv4 Address Status at ARIN says “ARIN’s free pool of IPv4 address space was depleted on 24 September 2015. As a result, we no longer can fulfill requests for IPv4 addresses unless you meet certain policy requirements…” Most of us get our IPv4 addresses from our Internet service providers (ISPs), so our ISPs are duking it out for new address blocks.

What do we do about it? Start with bitter laughter, because service providers and device manufacturers are still not well-prepared, and IPv6 support is incomplete despite having more than a decade to implement it. This is not surprising, given how many businesses think computing is like office furniture: buy it once and use it forever (except, of course, for the executive team, who get all the shiny new doodads while us worker bees get stuck with leftovers). Google, who sees all and mines all, has some interesting graphs on IPv6 adoption. Overall adoption is about 18 percent, with the United States at 34 percent and Belgium leading at 48 percent.

What can we Linux nerds do about this? Linux, of course, has had IPv6 support for ages. The first stop is your ISP; visit Test IPv6 to learn their level of IPv6 support. If they are IPv6-ready, they will assign you a block of addresses, and then you can spend many fun hours roaming the Internet in search of sites that can be reached over IPv6.

IPv6 Addressing

IPv6 addresses are 128-bit, which means we have a pool of 2^128 addresses to use. That is 340,282,366,920,938,463,463,374,607,431,768,211,456, or 340 undecillion, 282 decillion, 366 nonillion, 920 octillion, 938 septillion, 463 sextillion, 463 quintillion, 374 quadrillion, 607 trillion, 431 billion, 768 million, 211 thousand and 456 addresses. Which should be just about enough for the Internet of Insecure Intrusive Gratuitously Connected Things.

In contrast, 32-bit IPv4 supplies 2^32 addresses, or just under 4.3 billion. Network address translation (NAT) is the only thing that has kept IPv4 alive this long. NAT is why most home and small businesses get by with one public IPv4 address serving large private LANs. NAT forwards and rewrites your LAN addresses so that lonely public address can serve multitudes of hosts in private address spaces. It’s a clever hack, but it adds complexity to firewall rules and services, and in my not-quite-humble opinion that ingenuity would have been better invested in moving forward instead of clinging to inadequate legacies. Of course, that’s a social problem rather than a technical problem, and social problems are the most challenging.

IPv6 addresses are long at 8 hexadecimal octets. This is the loopback address,, in IPv6:


Fortunately, there are shortcuts. Any quad of zeroes can be condensed into a single zero, like this:


You can shorten this even further, as any unbroken sequence of consecutive zeros can be replaced with a pair of colons, so the loopback address becomes:


Which you can see on your faithful Linux system with ifconfig:

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host

I know, we’re supposed to use the ip command because ifconfig is deprecated. When ip formats its output as readably as ifconfig then I will consider it.

Be Quiet and Drink Your CIDR

Classless Inter-Domain Routing (CIDR) defines how many addresses are in a network block. For the loopback address, ::1/128, that is a single address because it uses all 128 bits. CIDR notation is described as a prefix, which is confusing because it looks like a suffix. But it really is a prefix, because it tells you the bit length of a common prefix of bits, which defines a single block of addresses. Then you have a subnet, and finally the host portion of the address. 2001:0db8::/64 expands to this:

network ID   subnet  interface address

When your ISP gives you a block of addresses, they control the network ID and you control the rest. This example gives you 18,446,744,073,709,551,616 individual addresses and 65,536 subnets. Mediawiki has a great page with charts that explains all of this, and how allocations are managed, at Range blocks/IPv6

2000::/3 is the global unicast range, or public routable addresses. Do not use these for experimentation without blocking them from leaving your LAN. Better yet, don’t use them and move on to the next paragraph.

The 2001:0DB8::/32 block is reserved for documentation and examples, so use these for testing. This example assigns the first available address to interface enp0s25, which is what is what Ubuntu calls my eth0 interface:

# ip -6 addr add 2001:0db8::1/64 dev enp0s25
$ ifconfig enp0s25
enp0s25   Link encap:Ethernet  HWaddr d0:50:99:82:e7:2b  
          inet6 addr: 2001:db8::1/64 Scope:Global

Increment up from :1 in hexadecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, and so on.

You can add as many addresses as you like to a single interface. You can ping them from the host they’re on, but not from other hosts on your LAN because you need a router. Next week, we’ll set up routing.


All of these fine hexadecimal addresses are converted from binary. Where does the binary come from? The breath of angels. Or maybe the tears of unicorns, I forget. At any rate, you’re welcome to work these out the hard way, or install ipcalc on your Linux machine, or use any of the nice web-based IP calculators. Don’t be too proud to use these because they’re lifesavers, especially for routing, as we’ll see next week.

Learn more about Linux through the free “Introduction to Linux” course from The Linux Foundation and edX.

How to Load and Unload Kernel Modules in Linux |

A kernel module is a program which can loaded into or unloaded from the kernel upon demand, without necessarily recompiling it (the kernel) or rebooting the system, and is intended to enhance the functionality of the kernel.

In general software terms, modules are more or less like plugins to a software such as WordPress. Plugins provide means to extend software functionality, without them, developers would have to build a single massive software with all functionalities integrated in a package. If new functionalities are needed, they would have to be added in new versions of a software.

Read more at Tecmint

Click Here!

GoboLinux Redefines the Linux Filesystem Hierarchy |

One complaint some new users have is that the Linux filesystem hierarchy is confusing. After all, why are program executables stored in /usr/bin and what is home? For those who are accustomed to Linux, this all makes some strange form of sense. However, if you take a moment to step back and really look at it, you might think twice about that assessment. That is exactly why the developers of GoboLinux did what they did; they completely rethought the filesystem hierarchy.

Instead of the usual suspects like:











GoboLinux offers only six total directories in the root of the filesystem. Those directories are:

  • Data – contains information about packages and necessary data to enable the compilation of programs

  • Lost+found – a directory dedicated to housing unlinked files that still may be open by a process.

  • Mount – the mounting directory

  • Programs – houses all programs (each of which will have its own folder that contains settings, files, and data)

  • System – system files, binaries, and kernel

  • Users – the home folders for users

And that’s it for the folders found in the root partition.

For long-time Linux users, does this mean you have to learn a completely different filesystem in order to use GoboLinux? Not necessarily. The developers have created symlinks such that if you issue the command cd /etc, you will actually be taken to /Programs/Settings (although issuing pwd will indicate you are in /etc). Not all of the usual suspects have symlinks. For example, if you issue the command cd /home, you’ll be returned an error that no such path exists; so it’s not a one-for-one situation (however, cd ~/ will take you to /Users/USERNAME. Where USERNAME is the name of the logged in user).

Even with this variation on the directory structure theme, once you use GoboLinux for a bit, it all starts to make perfect sense.

With the major difference out of the way, let’s take a look at GoboLinux and see if it’s a distribution you might want to try.


GoboLinux is, in a lot of ways, a throwback to the early days of Linux. You get your first taste of that the second the live media boots up, where you wind up at a terminal window and are required to either type startx to start the GUI or Install GoboLinux to start up the text-based installation (Figure 1). I highly recommend going with the startx command to get GoboLinux installed.

Once the GUI is up and running, you’ll find GoboLinux to be yet another distribution that doesn’t include a partitioning tool in the installer. To that end, you must fire up the included GParted tool and create a root partition (Figure 2).

Once the partition has been created, you can click the GoboLinux start button (upper left corner of the desktop) and then click System Tools > Install GoboLinux. At this point, the installation is as easy selecting your packages (Figure 3), answering a few quick questions, and letting the installation complete.

Once the installation completes, reboot and you’re ready to get to know GoboLinux.

What you’ll find

With GoboLinux installed, you’ll find a fairly minimal installation, with the Awesome Window Manager serving up windows and menus. In fact, the user-facing application list includes:

That’s it. 

You won’t even find a package manager on the system, like apt, dnf, or zypper. Instead, you must take advantage of the Compile command, which will download the necessary recipes for installing a piece of software.  

Say, for example, you want to install the Thunderbird email client. To do this, you would open up a terminal window and issue the Compile thunderbird command. After you answer the resulting questions (answer CA for Compile All), you’ll unfortunately discover the installation fails. In fact, I attempted to install several applications (found on the GoboLinux Recipe Store), only to have many of them fail because of dependency issues. Even installing Audacity failed, due to an inability to connect to to install the SoundTouch dependency (although the Compile command did valiantly try, until it finally gave up the ghost). 

Next up, I attempted to install Claws-Mail. This particular recipe successfully installed and returned me with a perfectly working instance of the powerful email client (Figure 4).

Understand, each of these attempted installations can take considerably more time than installing with a standard package manager, so know what you’re getting into before you dive in.  

Why use GoboLinux?

This is the question I continually asked myself as I was working with this interesting take on the Linux platform. Being one who prefers a far more modern desktop, Awesome Window Manager was a really hard sell. I even made an attempt at installing both the Enlightenment and GNOME desktops on GoboLinux. As you probably assume, these did not succeed. However, the simplicity of the filesystem did make for a very intriguing few days of usage.

What the developers did with the GoboLinux directory structure makes perfect sense. But even with logic on its side, I cannot imagine other Linux distributions following suit. Why? The work that would have to be done to make this happen would be tremendous. Because of that, I can see GoboLinux standing alone with this layout. If I’m being totally honest here, that’s a shame. Why? Because the GoboLinux filesystem structure makes perfect sense (and could possibly make the transition from other operating systems to Linux much easier for new users).

So, in the end, who would benefit from making use of GoboLinux? Anyone looking to kick it back a bit old-school and experiment with a flavor of Linux that is a serious departure from the norm. If that’s you, GoboLinux might well be your desktop distribution of choice.

GoboLinux is not a user-friendly distribution (nor was it created to serve as such), but it is certainly unique take on the platform and well worth a look.

Learn more about Linux through the free “Introduction to Linux” course from The Linux Foundation and edX.