Q. Can you explain UUID concept related to Linux ext3 partitions and storage devices? How do I update /etc/fstab using UUID under Ubuntu Linux or any other Linux distro?
A. A Universally Unique Identifier (UUID) is an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of the Distributed Computing Environment (DCE). The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. Thus, anyone can create a UUID and use it to identify something with reasonable confidence that the identifier will never be unintentionally used by anyone for anything else. Information labeled with UUIDs can therefore be later combined into a single database without needing to resolve name conflicts.
UUID and Partitions
Linux's ext2/ext3 filesystem uses UUID to identify partitions.
UUID benefits
As a sesonded UNIX admin I have to deal with various data storage technologies such as SAN, iSCSI, DAS, scsi disks volumes. Sometime you may need to move storage from one device to another and updating /etc/fstab can be pain in a$$. With UUID Linux kernel should automatically find and map (read as mount to exact location) volumes to storage device. This saves lots of time and avoid /etc/fstab breaks.
However, UUID may be not very useful for single desktop computer at home as you do not have enterprise grade storage and requirements.
How do I find out UUID for /dev/sdb2?
To probe filesystem type and read label and uuid for /dev/sdb2 (or any other device) use vol_id command:
# vol_id --uuid {/dev/device}
# vol_id --uuid /dev/sdb2
$ sudo vol_id --uuid /dev/sdb2
Sample output:
41c22818-fbad-4da6-8196-c816df0b7aa8
List all UUIDs
Use blkid command-line utility to locate/print block device attributes:
$ sudo blkid
Sample output:
/dev/sda1: TYPE="ntfs" UUID="A0F0582EF0580CC2" /dev/sda2: UUID="8c2da865-13f4-47a2-9c92-2f31738469e8" SEC_TYPE="ext2" TYPE="ext3" /dev/sda3: TYPE="swap" UUID="5641913f-9bcc-4d8a-8bcb-ddfc3159e70f" /dev/sda5: UUID="FAB008D6B0089AF1" TYPE="ntfs" /dev/sdb1: UUID="32c61b65-f2f8-4041-a5d5-3d5ef4182723" SEC_TYPE="ext2" TYPE="ext3" /dev/sdb2: UUID="41c22818-fbad-4da6-8196-c816df0b7aa8" SEC_TYPE="ext2" TYPE="ext3"
How do I use UUID to update /etc/fstab file?
Simply use following syntax:
UUID={YOUR-UID} {/path/to/mount/point} {file-system-type} defaults,errors=remount-ro 0 1Open /etc/fstab:
$ sudo vi /etc/fstab
Append line as follows:
UUID=41c22818-fbad-4da6-8196-c816df0b7aa8 /disk2p2 ext3 defaults,errors=remount-ro 0 1
Save and close the file. To mount new partition immediately using /etc/fstab type:
$ sudo mount -a
Further readings:
- man pages mount, fstab, vol_id
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- My 10 UNIX Command Line Mistakes
- Linux: 20 Iptables Examples For New SysAdmins

- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- 10 Greatest Open Source Software Of 2009
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Linux Video Editor Software
Facebook it - Tweet it - Print it -



{ 8 comments… read them below or add one }
man tune2fs
I have been trying to figure out what happen to my UUID’s on my server, thanks a lot for the help. Now I can change everything to ext4 on my laptop.
Thats a good description.
Thankyou
I have a UBUNTU server, recently i cloned the disk using dd and kept the second disk in box itself. yesterday i realized that because of UUID features it generated same UUID to my /dev/sdb partitions and it looks like it is using the mix of first disk and second disk.
as of ubuntu 10.04 i found out that vol_id does not exist anymore
( https://bugs.launchpad.net/ubuntu/+source/unetbootin/+bug/376339 ) .
now “blkid” should be used instead.
ls -l /dev/disk/by-uuid/
Forgive my ignorance with the whole UUID thing. I understand it is superior in many ways, hence the switch.
However does this mean that anything to do with hard-drives / flash drives / CD & DVD bays involving the terminal is going to be a complete pain in the arse?
For instance, to write an image to disk, I can currently use something like:
# dd if= of=sdb1
But now I must type:
# dd if= of=8c2da865-13f4-47a2-9c92-2**FNA**&%#$**34 ???
Or is there something to this whole “upgrade” process that I’m not understanding?
Thanks
Paul,
The main importance of UUID is for mounting a specific device to a specific mount-point reliably. In a terminal to use your example you would still type: # dd if= of= where you mount sdb1.
During the boot process, you have much more accurate mounting if you use:
UUID=8c2da865-13f4-47a2-9c92-2**FNA**&%#$**34 ext4 /office-docs rw,defaults 0 2 .
This will ALWAYS mount that device at /office-docs. If you use a line in etc/fstab like:
/dev/sdd1 /office-docs ext4 /office-docs defaults,rw 0 2 there is a possibility that another hdd may be recognized as /dev/sdd1 and therefore be mounted at /office-docs.
Once boot-up is complete, you will still use the same commands as always (always referencing mounted devices just like you have been doing).
HTH,
Decaffienated46