Tag Archives: UUID

Device error 71, won't mount root filesystem

By patrick013

I have a Debian OpenBox that boots from any usb port. The Debian LXDE will only boot from one specific port. It needs to look at all of them to find and be root, and mount the root filesystem by UUID. Both are full installs to 16GB flash drives.

That is not being done.

It says during boot after initrd loads :
device descriptor/64 Error -71
Can’t enumerate usb device.
UUID xxxxxx does not exist

Then it won’t mount the root filesystem which is the UUID it starts booting from.

grub2 searches, finds the correct UUID, does initrd, but then won’t complete the boot and mount the darn root filesystem. Says that UUID does not exist except from one specific USB
port when booted from, not the others.

Perhaps some parameter needs to be changed so it does a better job of mounting the root filesystem, specified by grub2 with the UUID. Then remake initrd so it does it all the time ?

I don’t know what change to make so the initial ramdisk would work right then.

Probably a simple fix, one adjustment to make. Any ideas ?

THX

Patrick

Source: FULL ARTICLE at The UNIX and Linux Forums

UUIDs and Linux: Everything you ever need to know

KCM-Shell-devinfo

What is so special about UUIDs in Linux? I don’t know! But a single, simple short tip about looking up UUIDs in Linux from 2007 is one of the most successful posts I ever wrote! And is still looked up by hundreds each day! So I decided: Feed the masses.

Here is everything you ever need to know about UUIDs on Linux. The list is feature complete. Of course. *cough*

Background

UUIDs are 16 byte wide identifiers described in RFC 4122 which are used in software development to uniquely identify information with no further context. An example UUID is:

13152fae-d25a-4d78-b318-74397eb08184

UUIDs are probably best known in Linux as identifier for block devices. The Windows world knows UUIDs in the form of Microsoft’s globally unique identifiers, GUID, which are used in Microsoft’s Component Object Model.

The UUIDs are generated in various variants: originally most of them were derived from the Computer’s MAC, later hash sums of names were used. And about the question, how many UUIDs there are and how big the chance is that you will generate a a number you already own, here are some numbers from Wikipedia’s UUID article:

After generating 1 billion UUIDs every second for the next 100 years, the probability of creating just one duplicate would be about 50%. The probability of one duplicate would be about 50% if every person on earth owns 600 million UUIDs.

Usage in fstab

As mentioned UUIDs are most often used in Linux to identify block devices. Imagine, you have a couple of hard disks attached via USBs, than there is no persistent, reliable naming of the devices: sometimes the first USB hard disk is named “sda”, sometimes it is named “sdb”. So to uniquely address the right disk for example in your /etc/fstab, you have to add an entry like:

UUID=9043278a-1817-4ff5-8145-c79d8e24ea79 /boot ext3 defaults 0 2

Linux implementation and generation

In Linux UUIDs are generated in /drivers/char/random.c?id=refs/tags/v3.8, and you can generate new ones via proc:

$ cat /proc/sys/kernel/random/uuid
eaf3a162-d770-4ec9-a819-ec96d429ea9f

There is also the library libuuid which is used by uuidgen and especially by the ext2/3/4 tools E2fsprogs to generate UUIDs:

$ uuidgen 
f81cc383-aa75-4714-aa8a-3ce39e8ad33c

How to get them, bash style

The most interesting part in UUIDs is most likely how to get the current UUIDs of the hard disks. As already mentioned years ago, there are two major ways to retrieve them: a simple ls call in a special directory, and the tool blkid.

So, first the ls call which has to be made in the directory /dev/disk/by-uuid. The directory contains links named after the UUIDs and pointing to the “real” block device files. Pretty handy if you are on a system where hardly anything is installed.

$ ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 11. Okt 18:02 53cdad3b-4b01-4a6c-a099-be1cdf1acf6d -> ../../sda2

The second call uses the tool blkid which is part of the util-linux package. It provides a real interface to actually query for certain devices and also supports searching for labels.

$ blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"

And there …read more
Source: FULL ARTICLE at Planet KDE