Home –  Archive
Monthly Archives: Mar 2012

Setting up your Linux box to serve as a DHCP server or a DHCP client

DHCP is Dynamic Host Configuration Protocol. It is used to control vital networking parameters of hosts (running clients) with the help of a server. DHCP is backward compatible with BOOTP. For more information see RFC 2131 (old RFC 1541) and other. (See Internet Resources section at the end of the tutorial).

This tutorial covers both the DHCP _SERVER_ daemon as well as DHCP _CLIENT_ daemon. Most people need the client daemon which is used by workstations to obtain network information from a remote server. The server daemon is used by system administrators to distribute network information to clients so if you are just a regular user you need the _CLIENT_ daemon.

1. Client Setup

Currently there are three different DHCP client programs for Linux, dhcpcd, pump and dhclient. This tutorial deals primarily with dhcpcd.

1.1. Downloading the client daemon (dhcpcd)

Depending on your distribution you might have to download the DHCP client daemon. If you want to compile it from the source you package you need is called dhcpcd and the current version is 1.3.18. It is maintained by Sergei Viznyukand today it comes as a binary package with most distributions.

dhcpcd source can be downloaded from following location


Then follow the instructions below. They should be the same.

1.2. Slackware

You can download the latest copy of the DHCPcd from any Metalab mirror or following:


ftp://ftp.phystech.com/pub/ (Primary site)

Download the latest version of dhcpcd.tar.gz.

Unpack it

tar -zxvf dhcpcd-1.3.18pl1.tar.gz

cd into the directory and make dhcpcd

cd dhcpcd-1.3.18pl1

Install it (you have to run the following command as root)

make install

This will create the directory /etc/dhcpc where DHCPcd will store the DHCP information and dhcpcd file will be copied into /usr/sbin.

In order to make the system initialize using DHCP during boot type:

cd /etc/rc.d
mv rc.inet1 rc.inet1.OLD

This will move the old network initialization script into rc.inet1.OLD. You now need to create the new rc.inet1 script. Following code is all you need:

# rc.inet1 This shell script boots up the base INET system.
HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I
#will leave it in anyways
# Attach the loopback device.
/sbin/ifconfig lo
/sbin/route add -net netmask lo
# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the
# eth0 interface. If you're only using loopback or SLIP, don't include the
# rest of the lines in this file.

Save it and reboot your computer.

When you are finished go the step 1.8.

1.3. RedHat 6.x and Mandrake 6.x

DHCPcd configuration under RedHat 6.0+ is really easy. All you need to do is start the Control Panel by typing control-panel.

  • Select “Network Configuration”
  • Click on Interfaces
  • Click Add
  • Select Ethernet

In the Edit Ethernet/Bus Interface select “Activate interface at boot time” as well as select “DHCP” as “Interface configuration protocol”

Please note that in RedHat 6.x Redhat as default includes a DHCP client called pump instead of above mentioned dhcpcd. CD-ROM does include dhcpcd RPM so if you have no luck with pump try with dhcpcd. After you install dhcpcd (e.g. rpm -i dhcpcd-1.3.17pl2-1.i386.rpm) you will have to make some changes (refer section 1.7).

Additional notes from Alexander Stevenson:

I had no luck with DHCPcd. What finally worked for me was “pump”, which comes with Linux Mandrake 6.0 (and so I assume it is included with RedHat as well). The command I used was:

pump -i eth0 -h hostname

It didn’t matter what “hostname” was, but without it the server would not respond.

I then changed the line in my /sbin/ifup script to reflect the change; the default version does not have the -h switch, and so didn’t work for me.

Basically, if you’re using linuxconf, and after setting the adapter to “DHCP” it still doesn’t work, try adding a “-h hostname” to the pump line in the /sbin/ifup script. My script now looks like this:

if [ -n "$PUMP" ]; then
echo -n "Determining IP information for $DEVICE..."
if /sbin/pump -i $DEVICE -h hostname; then
echo " done."
echo " failed."
exit 1
else ...

Another more elegant way to add hostname field is provided by Aad van der Klaauw:

Currently i’m configuring a gateway system at home, needed to set the MAC address and use the ‘-h hostname’ workaround. So I decided to *not* change the script but to use the configure file. In my /etc/sysconfig/network-scripts/ifcfg-eth0 I have added the following


Which will survive upgrades, and is imho a “cleaner” way.

That is it. Reboot your machine or type /sbin/ifup eth0 on the command line.

1.4. RedHat 5.x

DHCPcd configuration under RedHat 5.0+ is really easy. All you need to do is start the Control Panel by typing control-panel.

  • Select “Network Configuration”
  • Click on Interfaces
  • Click Add
  • Select Ethernet
  • In the Edit Ethernet/Bus Interface select “Activate interface at boot time” as well as select “DHCP” as “Interface configuration protocol”

When you are finished go the step 1.8.

1.5. RedHat 4.x and Caldera OpenLinux 1.1/1.2

DHCPcd is included in the standard RedHat distribution as an RPM and you can find it on your distribution’s CD-ROM in RPMS directory or you can download it from:


Install it with rpm -i dhcpcd-0.6-2.i386.rpm.

Alternatively you can compile your own version by following the steps outlined in the Slackware.

The following information was provided to me by nothing.

Removed my static ip and name from /etc/resolv.conf. However, I did leave in the search line and my two nameserver lines (for some reason my dhcpcd never creates a /etc/dhcpc/resolv.conf, so I have to use a static /etc/resolv.conf).

In /etc/sysconfig/network I removed the HOSTNAME and GATEWAY entries. I left the other entries as is (NETWORKING, DOMAINNAME, GATEWAYDEV).

In /etc/sysconfig/network-scripts/ifcfg-eth0 I removed the IPADDR, NETMASK, NETWORK, and BROADCAST entries. I left DEVICE and ONBOOT as is. I changed the BOOTPROTO line to BOOTPROTO=dhcp.

Save the file. Reboot your computer.

When you are finished go the last step.

1.6. Debian

There is a deb package of DHCPcd (make sure it starts with dhcpcd) at:


Or, follow the Slackware installation instructions at section 1.2.

To unpack the deb package type dpkg -i /where/ever/your/debian/packages/are/dhcpcd*deb.

It appears that there isn’t a need for any DHCPcd configuration because:

The dhcpcd package installs it’s startup script as usual for debian packages in /etc/init.d/package_name, here as /etc/init.d/dhcpcd, and links this to the various /etc/rc?.d/ directories.

The contents of the /etc/rc?.d/ dirs is then executed at boot time.

If you don’t reboot after installing you should consider starting the daemon manually: /etc/init.d/dhcpcd start.

When you are finished go the last step 1.8.

1.7. LinuxPPC and MkLinux

As of the “1999” (R5) release, Linuxppc is now almost completely compatible with Redhat 6, with one caveat (see below). In general the instructions are exactly the same as for the current release of RedHat 6.x and Mandrake 6.x (Step 1.3).

The remaining problem is that Redhat 6 uses the ‘pump’ client for dhcp by default, and ‘pump’ doesn’t work reliably in Linuxppc. To get around this, you should install the latest dhcpcd from Sergei Viznyuk, and then edit /sbin/ifup to use dhcpcd instead of pump.


if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
if [ -n "$PUMP" ]; then


if [ "$BOOTPROTO" = bootp ]; then
echo " done."
echo " failed."
exit 1
elif [ "$BOOTPROTO" = dhcp ]; then
echo -n "Determining IP information for $DEVICE..."
if /sbin/dhcpcd -d $DEVICE ; then
if [ -f /etc/dhcpc/dhcpcd-${DEVICE}.exe ]; then

and a coresponding changes for ifdown. Change

if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then


if [ "$BOOTPROTO" = bootp ]; then
if [ "$BOOTPROTO" = dhcp ]; then
if [ -f /var/run/dhcpcd-${DEVICE}.pid ]; then
kill `cat /var/run/dhcpcd-${DEVICE}.pid`
rm -f /var/run/dhcpcd-${DEVICE}.pid

A working ppc rpm for dhcpcd is included on the Linuxppc 1999 cd; a slightly later rpm is available in the contrib directory on ftp://ftp.linuxppc.org/. Sources, which compile out of the box in Linuxppc 1999, are available from ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz.

1.8. Tying it all together

After your machine reboots your network interface should be configured. Type: ifconfig.

You should get something like this:

lo Link encap:Local Loopback
inet addr: Bcast: Mask:
RX packets:302 errors:0 dropped:0 overruns:0 frame:0
TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0
eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45
inet addr: Bcast: Mask:
RX packets:24783 errors:1 dropped:1 overruns:0 frame:1
TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96
Interrupt:10 Base address:0x300

If you have some normal number under inet addr you are set. If you see don’t despair, it is a temporary setting before dhcpcd acquires the IP address. If even after few minutes you are seeing please check out Troubleshooting. DHCPcd is a daemon and will stay running as long as you have your machine on. Every three hours it will contact the DHCP server and try to renew the IP address lease. It will log all the messages in the syslog (on Slackware /var/adm/syslog, RedHat/OpenLinux /var/log/syslog).

One final thing. You need to specify your nameservers. There are two ways to do it, you can either ask your provider to provide you with the addresses of your name server and then put those in the /etc/resolv.conf or DHCPcd will obtain the list from the DHCP server and will build a resolv.conf in /etc/dhcpc.

I decided to use DHCPcd’s resolv.conf by doing the following:

Back up your old /etc/resolv.conf: mv /etc/resolv.conf /etc/resolv.conf.OLD

If directory /etc/dhcpc doesn’t exist create it: mkdir /etc/dhcpc

Make a link from /etc/dhcpc/resolv.conf to /etc/resolv.conf: ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf

If that doesn’t work try this:

This last step I had to perform only because my dhcpcd doesn’t create an /etc/dhcpc/resolv.conf. In /etc/sysconfig/network-scripts/ifup I made the following changes (which are a very poor hack, but they work for me):

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for ${DEVICE}... "
/sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
echo "failed."
exit 1

I changed to:

elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then
echo -n "Using DHCP for ${DEVICE}... "
echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh
if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then
echo "failed."
exit 1

Note: Notice the ! (bang) in if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];

Now sit back and enjoy :-).

1.9. Various notes

Following step(s) are not necessary but might be useful to some people:

If you need network connectivity only occasionally you can start dhcpcd from the command line (you have to be root to do this) with: /usr/sbin/dhcpcd.

When you need to down (turn off) the network type /usr/sbin/dhcpcd -k.

1.10. Troubleshooting

If you have followed the steps outlined above and you are unable to access the network there are several possible explanations:

1.10.1. Your network card is not configured properly

During the boot up process your Linux will probe your network card and should say something along these lines:

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

If a message like this doesn’t appear your ethernet card might not be recognized by your Linux system. If you have a generic ethernet card (a NE2000 clone) you should have received a disk with DOS utilities that you can use to set up the card. Try playing with IRQs until Linux recognizes your card (IRQ 9,10,12 are usually good).

1.10.2. Your DHCP server supports RFC 1541/My DHCP server is Windows NT

Try running dhcpcd by typing dhcpcd -r.

Use ifconfig to check if your network interface is configured (wait few seconds for the configuration process, initally it will say Inet.addr=

If this solves your problem add the “-r” flag to the boot up scripts, ie: instead of /sbin/dhcpcd you will have /sbin/dhcpcd -r.

For example under RedHat edit script /etc/sysconfig/network-scripts/ifup and change the following:

"/sbin/dhcpcd -r -c /etc/"- etc etc.
1.10.3. During bootup I get error message "Using DHCP for eth0 ... failed" but my system works fine.

You are most likely using RedHat and you haven’t followed instructions carefully :-). You are missing the ! (bang) in one of the if statements. Jump to 1.8 and check how to fix it.

1.10.4. My network works for few minutes and then stops responding

There are some reports of gated (gateway daemon) screwing up routing on Linux boxes which results in problem described above. Check if gated is running with: ps -auxww | grep gate.

If it is try removing it with RedHat’s RPM manager or removing the entry in /etc/rc.d/.

1.10.5. My ethernet card is recognized during boot up but I still get "NO DHCPOFFER" message in my logs. I also happen to have a PCMCIA ethernet card.

You need to make sure that you have the 10BaseT port (“phone” plug) on your network card activated. Best way to verify it is to check what kind of connector your card is configured for during bootup e.g.

eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

I have received reports of laptop users having this kind of problems due to the PCMCIA utilities (specifically ifport) that would set the connector type to 10Base2 (thinnet). You have to make sure you use 10BaseT for your connection. If you are not reconfigure the card and restart the computer.

1.10.6. My DHCP client broadcasts requests but no one answers

On some systems, you need to include some hostname for your machine as part of the request. With dhcpcd, do this with dhcpcd -h foohost Probably the hostname wanted will be your account username on the network.

1.10.7. I have followed all the steps but still my machine is not able to connect

The cable modem will usually memorize the ethernet address of your network card so if you connect a new computer or switch network cards you will somehow have to “teach” your cable modem to recognize the new computer/card. Usually you can turn of the modem and bring it back up while computer is on or you will have to call tech support and tell them that you have changed a network card in the computer.

You have firewall rules (ipfwadm rules) that disallow port 67/68 traffic used by DHCP to distribute configuration info. Check your firewall rules carefully.

1.10.8. I have MediaOne Express service and I still can't connect.

It appears that MediaOne has been using adding some things to DHCP that shouldn’t be there. Supposedly this is not a problem anymore but if you experience outages check for these things. If you are (un)lucky to have Windows NT on your machine if you go into Event Viewer you will see a warning like this:

DHCP received an unknown option 067 of length 005. The raw option data is
given below.
0000: 62 61 73 69 63 basic

If this is the problem go to ftp://vanbuer.ddns.org/pub/ and either download a binary or get the source for the change.

1.11. Alternative DHCP client (ISC dhclient)

If you have not had success getting your Linux connection running with the dhcpcd you might want to try ISC dhclient. dhclient comes with the DHCP distribution from ISC which includes both a DHCP client and a DHCP server. Instructions on how to get and compile the DHCP distribution can be found here. When you are done with it please return to this section to configure the client.

With the current version of the DHCP client, you don’t actually need a dhclient.conf. All you have to do is invoke dhclient e.g.: /sbin/dhclient.

This will configure all broadcast interfaces. If this doesn’t work or you want to specify only one interface create a /etc/dhclient.conf file with this example configuration.

interface "eth0" {
send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
send dhcp-lease-time 86400;

Here we assume that the ethernet interface is eth0. If not change accordingly. Also replace xx:xx:xx:xx:xx with your ethernet address. This dhclient.conf makes the client look more like a Win95 client.

Continue reading…

Beginners guide to Linux directory structure

Have you ever looked in your / directory, you’ll see a lot of directories. Here we are presenting beginners guide to linux directory structure explaining what they mean and what are the contents of these directories.

Screenshot of contents of root directory:

linux directory structure



This is called root partition. All files and directories start with root partition. Write privileges under this directory are avaible with root user only. Not to confuse it with root user’s home directory, know the difference, “/” is root partition while root user’s home directory is “/root”.


This directory has binary executable files. Linux commands used in single user mode are found in this directory. It also holds commands that are used by all users. Examples: ls, ping, cp.


Like /bin, /sbin also contains binary executable files but the commands held by this directory are used by system administrators with the prime purpose of system maintenance. Examples: iptables, reboot, fdisk.


It holds all the configuration files which are required by all programs. Shell scripts needed by programs to start or stop them are held by this very directory. Examples are /etc/resolv.conf, /etc/logrotate.conf


/dev contains device files. In Linux, everything is a file. Included are terminal device or usb or any other device connected to the computer. For example: /dev/usbmon0


All the system process information is held in /proc. It is a pseudo filesystem as it contains information about running processes. For an instance, /proc/ is the directory which holds information of the process with . It contains information about the system resources. /proc/uptime is one such directory.


var denotes variable files. Those files are kept in this directory that are supposed to grow. Some of the files that reside in here are- /var/log (system log files), /var/lib (package files), /var/mail (emails), /var/spool (print queues), /var/tmp (temporary files that are needed across reboots).


System generated and user generated temporary files are kept in this category. Important files should not be saved in here because contents of /tmp are flushed every time system boots.


/usr is the one that holds user programs. It contains documentations, libraries and source-code for all the second level applications. /usr/bin holds binaries for user programs. While looking for a binary after /bin also look in /usr/bin. Examples of binaries you mighht find in /usr/bin are awk, less, cc. Similarly binary files for system administrators are kept in /usr/sbin. Examples are cron, sshd, useradd. Libraries for /usr/bin and /usr/sbin are kept in /usr/lib. /usr/local holds user programs that a user installs from source.


All user’s personal files are kept in their respective home directories.


This directory has boot loader files. While booting, files needed are found in /boot. Kernel initrd, grub and few more files reside in this directory.


Binaries located in /bin and /sbin are supported by library files kept in /lib. Library nomenclature goes like ld* or lib*.so.* . For example: ld-2.11.1.so


/opt is for add-on optional applications from individual vendors. All applications that are optional should be installed in /opt or any of its subdirectory.


/mnt is our mount directory. It is the temporary mount location where where system administrators can mount temporary filesystems.


It serves as the temporary mount point for removable devices. All removable devices are mounted in this directory. Example: /media/cdrom or /media/floppy.


srv denotes service. All the service related data used for servers is saved in this directory.

Push Button Reset in Linux

So everybody is talking about a cool new Windows 8 feature called ‘Push Button Reset’. It will reset settings in Windows 8 to day #1. You can do the same with Linux / Unix, just run the command given below:

Warning: Do not run the following command on prods as upon executing this will halt your system and reset all basic settings.

chankey@linuxstall:$ sys-unconfig

At boot you need to change the root password, set new network configuration, time config, keyboard config, auth config (like use ldap or pam etc), and services config. Like Windows 8 IE/MSoffice, it will not modify Linux apps settings. Personally, I prefer editing individual files.

This is not a new feature as Windows 8 fan boys are claiming to be and it’s been around for ages. My best guess is that MS-Windows 8 users are going to use this feature frequently :P

Note: I’ve tested sys-unconfig on Solaris and RHEL. I’m not sure about Ubuntu but debconf provides similar features.

How to install LibreOffice (3.4.5 and 3.5.0) on Linux (Fedora, RHEL, CentOS)


LibreOffice, no doubt a great office suite, doesn’t come pre-installed with major Linux distributions so here we are explaining how to install Libreoffice 3.4.5 or 3.5 on Fedora, CentOS and RHEL. Well you have a privilege of installing LibreOffice on Fedora 16 through command line. Following code can do the trick :

yum install libreoffice

Above code will install latest version of Libreoffice. We have more than that in the box, tutorial to install different versions of Libreoffice on Fedora, CentOS and RHEL.

Downloading Packages

Libreoffice 3.4.5 32-bit stable version

wget http://download.documentfoundation.org/libreoffice/stable/3.4.5/rpm/x86/LibO_3.4.5_Linux_x86_install-rpm_en-US.tar.gz

LibreOffice 3.4.5 64-bit stable version

wget http://download.documentfoundation.org/libreoffice/stable/3.4.5/rpm/x86_64/LibO_3.4.5_Linux_x86-64_install-rpm_en-US.tar.gz

LibreOffice 3.5.0 RC3 32-bit stable version

wget http://download.documentfoundation.org/libreoffice/testing/3.5.0-rc3/rpm/x86/LibO_3.5.0rc3_Linux_x86_install-rpm_en-US.tar.gz

LibreOffice 3.5.0 RC3 64-bit stable version

wget http://download.documentfoundation.org/libreoffice/testing/3.5.0-rc3/rpm/x86_64/LibO_3.5.0rc3_Linux_x86-64_install-rpm_en-US.tar.gz

Switch to root

su -


sudo -i

Extract Libreoffice downloaded packages

Libreoffice 3.4.5

tar -xvf LibO_3.4.5_*

Libreoffice 3.5.0

tar -xvf LibO_3.5.0*


LibreOffice 3.4.5

cd LibO_3.4.5*
rpm -Uvh RPMS/*.rpm
rpm -Uvh RPMS/desktop-integration/libreoffice3.4-redhat-menus-3.4*.noarch.rpm

Libreoffice 3.5.0

cd LibO_3.5.0*
rpm -Uvh RPMS/*.rpm
rpm -Uvh RPMS/desktop-integration/libreoffice3.5-freedesktop-menus-3.5*.noarch.rpm

..and you are done!

Debian 5.0.10 released

A few hours ago Debian team announced the 10th and final update of Debian 5.0 (Lenny). This update has removed all the security problems which were there in the oldstable release. Debian 5.0 was released on Feb 14th, 2009, and this is going to be last update for it.

Due to some technical reasons “alpha” and “ia64” packages (from DSA 1769) are not included in this point release.

Note: Security support for oldstable distro ended in Feb 2012 and no updates have been released since then.

This updates includes many packages and updates of “security.debian.org“.


To upgrade your Debian to this new update point your aptitude (or apt) package tool to one of the FTP/HTTP mirrors of Debian. You can find the list of mirrors at:


On 24th March this oldstable distro will be moved to archive.debian.org (archive of old distributions of Debian) and will no longer be available from the main mirror network.

Linux Mint 12 LXDE edition is out!

Linux Mint 12 LXDE RC

Linux Mint 12 LXDE RC

Yesterday on March 9th Linux Mint development team announced the release of Linux Mint 12 LXDE.

Linux Mint 12 LXDE RC

Linux Mint 12 LXDE

On Feb 27th Linux Mint 12 LXDE RC was launched, the features are exactly the same no changes have been done on it. You may refer this post to check new features and system requirements.


To upgrade from an older version of Linux Mint follow these directions.


Linux Mint 12 LXDE torrent file
Linux Mint 12 LXDE direct download

A complete fstab guide

Wherever you stand on your linux learning curve, you will have to deal with fstab one day or the other. Fstab file is edited to configure filesystems. The process is really easier if you are well versed with fstab file. Continue reading to know more about fstab and how things work.

Introduction to fstab

Every operating system has a file system table, in Linux fstab happens to be that file. Earlier in linux era, one had to manually mount any drives/files at specified locations with the help of “mount” command. Right after plugging in your device, they just didn’t show up on your desktop. They were meant to be mounted manually and then further processing was done. There existed (exists) a way through which it can be done automatically, fstab was the magic wand. Fstab is used to store configurations for different file systems and it contains what to do with them, i.e., what and where to mount.
This automatic mounting can be carried out in graphical style too with the help of a tool PySDM, it is explained here.

How does fstab file look like?

Fstab file is found at:


You can see your fstab file by executing following command:

# gedit /etc/fstab

Columns in fstab file are separated from each other by a “tab”. We will go through and explain each column in the order they appear.

File System

This is the screenshot of my fstab file:

All the fstab entries are starting with UUIDs. These UUIDs are assigned to file systems while formatting, these are considered ideal for selecting file systems while mounting as they do not and cannot be changed. This setup is best for home users but for an advanced user who wishes to use RAID in future or uses a network based device, you should pass. To get the UUID of a partition so that you can make an entry in fstab, use blkid .

Mount Point

The next section in fstab denotes mount point of that particular partition. All the sections are separated by a ‘tab’. While making an entry in fstab, a mount point is to be created before rebooting (as changes take effect after restarting).



The next section is type of file system for that partition. Linux supports a variety of file systems, few might need some packages to be able to perform read/write on them. We are looking only over a few of them:

ext3 : Most of the systems these days have ext3 linux partitions. Older systems had ext2 type filesystems but now ext3 has replaced it for its advantages. Ext3 is journaled, that is, if the power goes off and system is not properly shut down, no data will be lost, therefore, no time wasted in disc checks.
Note: Some distros are shipping with ext4 as default.

swap : Name stands for itself. “Swap” partition is of type “swap”.

ntfs and vfat : You will find your pendrives in vfat format (also known as FAT32) and windows drives in ntfs format.

auto : When you find written “auto” in this column, it doesn’t signify type but automatic detection of filesystem type.


This section of fstab contains mount options for partitions. This section can seem really confusing at first but knowing few them can get you through it. Popular ones are discussed here while rest can be checked on man page of mount .


With auto , the partition will automatically be mounted on a system boot. You can prevent a partition from automounting on bootup by editing option to noauto in fstab file.


It lets you choose whether the partition can execute binaries or not. For example, you can give a partition noexec which contains binaries and you don’t want them to execute.


ro is for read-only partition while rw denotes read-write partition. To be able to write on a partition, it should have rw option in fstab file.


With nouser as an option, only root has privilege of mounting a partition while user allows any non-root user to mount a partition. Many users find it annoying that they can’t mount a partition as a normal user, well, now you know that solution is to update your fstab file.


It is responsible for files being written synchronously and asynchronously. In layman words, when you issue a “copy” command on a pendrive, writing process starts as soon as command is issued but this is not the case with internal hard drives. Write operations on hard disks are not synchronised, that is, writing might start long after command was issued. This is the reason for error “wait while changes are being wriiten”. This can also cause accidental data loss. If async is set, it might appear that files are successfully written but they might not be physically written.


It sets all the default options: rw, suid, dev, exec, auto, nouser, async.


This is the fifth column in fstab file. It has zeros and ones as entries, zero is for false and one is for true . It is an old school method of backing up. Backup will be performed if option is “1”. In case of “0” option dump will ignore the partition.


fsck is short form for file system check. This makes the 6th column for fstab file. You will see 0,1 or 2 written in this section. “0” denotes that the partition will be skipped from checking. “1” is for partition which will be checked at booting time. These numbers are actually the sequence in which they will be checked. Root (/root) partition is always set at 1, partitions other than root which are supposed to be checked should be set at 2.

Backup Ubuntu 11.10 using Deja Dup Backup Tool

Do you want to backup your Ubuntu machine? Well, Ubuntu 11.10 comes with a pre-installed backup software which is Déjà Dup Backup Tool. Today I will show how can you take a backup of your system and restore it using this tool.

Follow the procedure given below:

Click on the power icon and then select system settings.

Ubunt 11.10 power button

On the system settings window click on the backup icon.

Ubuntu System Settings

That bring us to the backup window which has four different areas:

1. Overview – shows us general overview and options as well as the Back Up Now and Restore buttons.

Deja Dup

2. Storage – lets us choose our backup location and folder. I’m going to choose a local folder and for Folder I’m going to choose desktop. So this is where the backup will be saved to.

Deja dup Storage

3. Folders – Here we can choose which folders are backed up. So we’ll be backing up the Home folder in this situation. You can use the plus and minus at the bottom to add and remove folders. On the other side we can add some folders to ignore during backup.

Deja dup Folders

4. Schedule – Here we can choose how often we wanna do a backup and how long do you want to keep the backup that you saved.

Deja dup Schedule

Note: You can turn on automatic backups from the Overview area.

Taking a backup

To start backing up, go to the overview area and click on back up now button.

Back Up Now

Now you need to choose an encryption password for a backup. Just type that in and click on Continue.

Encryption password

And after waiting for a while you can see a message that Backup has been completed and you can also see the backup files on the desktop.

Backup completed notification

Restoring from backup file

To restore your Ubuntu go to the Overview area and click on Restore button, this allows us to restore any backup that we have created. After clicking a Restore window will appear which asks for 2 things, first is the Backup location and the second one is the Folder where the backup file is located.

Deja dup Restore

After selecting the locations click on Forward button, you will find a dialog box which will give you an option of selecting the date (in case you have created more than 1 backup).

Deja dup restore date

Click on the Forward button and you’ll see two options:

1) Restore files to original locations
2) Restore to specific folder

Deja dup restore location

Click Forward and it will ask for the encryption password, this is the password that you’ve set while creating the backup. Enter the password and you have successfully restored our backup.


deja dup restore password

Thanks for reading this quick tutorial on backup Ubuntu using Deja Dup, I would love to see in the comment section down below what everyone else is using for backup and restoration program. Let me know down below, thanks for reading the article, have a great day!

Backup your Linux remotely using rsync command

rsync is a command in Linux which stands for remote sync. It is used for backing up the data. It synchronizes the directories and files from one location to another in a good way. The backup destination could be either on local or on remote server.


  • Speed: rsync replicates all the data from source to destination and then it transfers only the changed blocks/bytes to the destination. This makes the transfer fast.
  • Security: It uses encryption using ssh technique.
  • Bandwidth: It compresses the block at source and then at the receiving end it decompresses the block. It transfers the data block by block using compression and decompression at source and destination side respectively. Hence uses less bandwidth.
  • Privileges: No extra privileges are required to use rsync.


$ rsync options source destination

Case 1: Synchronize two directories in local server

use rsync -zvr command (z to enable compression, v for verbose, r for recursive)

$ rsync -zvr /var/opt/installation/inventory/ /root/temp

The above command does not preserves the timestamp.

Case 2: Preserve timestamps using rsync -a

The -a options preserves symbolic links, permissions, timestamp, owner and group.

$ rsync -azv /var/opt/installation/inventory/ /root/temp/

Case 3: Synchronize only a single file

Specify the file name to the rsync command

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/

Case 4: Synchronize files Local->Remote

$ rsync -avz /root/temp/ chankey@

Case 5: Synchronize files Remote->Local

$ rsync -avz chankey@ /root/temp

Case 6: Select remote shell

$ rsync -avz -e ssh chankey@ /root/temp

rsync -e ssh => uses the ssh shell for remote sync

Case 7: Do not overwrite modified file at destination

If the file at the destination is modified and if we don’t want to change it back to the old one again then using rsync -u option.

$ rsync -avzu chankey@ /root/temp

Case 8: Synchronize only the directory Tree structure (not files)

use rsync -d option for this purpose.

$ rsync -v -d chankey@ .

Case 9: Do not create new file at destination, just update existing files

use --existing option

$ rsync -avz --existing root@ .

Case 10: Transfer the entire file

use rsync -W option

#  rsync -avzW  chankey@ /root/temp

How to automount partition in Linux: GUI style

Automount partition in linux like never before. Introducing a tool that can automount partition for you as soon as you boot up your linux box.

One of the Linux Guru’s characteristics is to use command line for everything. One can accomplish anything when well versed with command line tips. After booting up a linux box, one needs to manually mount the partitions. Its not a big deal but it gets really annoying when you keep getting error just because you forgot to mount a partition. This hassle can be avoided by making partitions to automount themselves. It can be accomplished by editing few system files but we are not going there. This post is for those ‘lazy’ ones who don’t want to trouble themselves with system files and all, here we are going to automount partition in graphical manner. We have a tool available that can automount partition right after booting.

PySDM: PyGTK Storage Device Manager

PySDM is a Storage Device Manager that is widely used by users to automount partition without touching fstab. Read more about it here.

PySDM for Ubuntu

Download PySDM to automount partition in Ubuntu and other Debian based distros by executing following command.

user@computer:$ sudo apt-get install pysdm


PySDM for Fedora

Download PySDM to automount partition in RHEL/CentOS/Fedora by executing following command:

user@computer:$ sudo yum install pysdm


PySDM for Arch Linux

Download PySDM to automount partition in Arch linux, link: https://aur.archlinux.org/packages.php?ID=16992

When you are done with downloading, start the tool by shooting following command in terminal as a root:

user@computer:$ sudo pysdm

A prompt for password will appear, past that you will see following window with partitions listed on the left:

 automount partition pysdm

Click on Assistant button and following window will appear.

automount partition pysdm

Now you can check and uncheck according to your preferences and you are done, PySDM will now automount partition for you just after booting.