A place for all your Linux needs
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.
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
ftp://ftp.phystech.com/pub/
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://metalab.unc.edu/pub/Linux/system/network/daemons
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 |
make |
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:
#!/bin/sh # # 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 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 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. /usr/sbin/dhcpcd |
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.
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." else echo " failed." exit 1 fi 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
DEVICE="eth0" MACADDR="00:11:22:33:44:55" DHCP_HOSTNAME="trigger_for_terayon" |
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.
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:
ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm
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:
http://ftp.debian.org/debian/dists/slink/main/binary-i386/net/
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.
Change
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then PUMP=true fi if [ -n "$PUMP" ]; then |
with
if [ "$BOOTPROTO" = bootp ]; then echo " done." else echo " failed." exit 1 fi 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 /etc/dhcpc/dhcpcd-${DEVICE}.exe fi |
and a coresponding changes for ifdown. Change
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then .... fi |
with
if [ "$BOOTPROTO" = bootp ]; then fi 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 fi fi |
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:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 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:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0 ^^^^^^^^^^^^^^^^^^^^^^^ UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 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 0.0.0.0 don’t despair, it is a temporary setting before dhcpcd acquires the IP address. If even after few minutes you are seeing 0.0.0.0 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}... " /sbin/dhcpcd 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=0.0.0.0)
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:
IFNAME=$[ {DEVICE} \ "/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.
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:
/
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”.
/bin
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.
/sbin
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.
/etc
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
/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
/proc
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/
/var
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).
/tmp
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
/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.
/home
All user’s personal files are kept in their respective home directories.
/boot
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.
/lib
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
/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
/mnt is our mount directory. It is the temporary mount location where where system administrators can mount temporary filesystems.
/media
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
srv denotes service. All the service related data used for servers is saved in this directory.
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.
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.
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.
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
su -
OR
sudo -i
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!
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:
http://www.debian.org/mirror/list
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.
Yesterday on March 9th Linux Mint development team announced the release of 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
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.
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.
Fstab file is found at:
/etc/fstab
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.
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 .
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 .
• auto/noauto
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.
• exec/noexec
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/rw
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.
• user/nouser
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.
• sync/async
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.
• defaults
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.
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.
On the system settings window click on the backup icon.
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.
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.
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.
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.
Note: You can turn on automatic backups from the Overview area.
To start backing up, go to the overview area and click on back up now button.
Now you need to choose an encryption password for a backup. Just type that in and click on Continue.
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.
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.
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).
Click on the Forward button and you’ll see two options:
1) Restore files to original locations
2) Restore to specific folder
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.
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!
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.
Features
Syntax
$ 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@192.168.200.10:/home/chankey/temp/ |
Case 5: Synchronize files Remote->Local
$ rsync -avz chankey@192.168.200.10:/var/lib/rpm /root/temp |
Case 6: Select remote shell
$ rsync -avz -e ssh chankey@192.168.200.10:/var/lib/rpm /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@192.168.200.10:/var/lib/rpm /root/temp |
Case 8: Synchronize only the directory Tree structure (not files)
use rsync -d option for this purpose.
$ rsync -v -d chankey@192.168.200.10:/var/lib/ . |
Case 9: Do not create new file at destination, just update existing files
use --existing option
$ rsync -avz --existing root@192.168.1.2:/var/lib/rpm/ . |
Case 10: Transfer the entire file
use rsync -W option
# rsync -avzW chankey@192.168.200.10:/var/lib/rpm/ /root/temp |
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 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.
PySDM for Fedora
Download PySDM to automount partition in RHEL/CentOS/Fedora by executing following command:
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:
A prompt for password will appear, past that you will see following window with partitions listed on the left:
Click on Assistant button and following window will appear.
Now you can check and uncheck according to your preferences and you are done, PySDM will now automount partition for you just after booting.