
You might have wondered how comes that your mp3 player is automatically mounted under a nice name like JUKEBOX for instance, while you usb stick simply get a name like USB_BAR and USB_BAR-1... for its partitions.
This is actually due to hal automatically mounting the device.
This tutorial will show you how to give a label to your partitions in order to have your removable devices mounted under an explicit location such as: /media/red-usb-disk or /media/my-big-fat-partition.
When automatically mounting a device, it happens that hal already know about this device, in which case, the device is going to be mounted under, let say for an Ipod, /media/Ipod. But if you have an external hard-drive that you connect through usb, chances are that your external hard-drive partitions are mounted under /media/usbdisk, /media/usbdisk-1 and so on.
And actually, partition one might be mounted under usbdisk-1 on day and usbdisk the day after :s.
Imagine you stock all you music on your external hardrive. Today, you hardrive get mounted under /media/usbdisk and you create a playlist. Tomorrow, when you plug you hardrive, your music partition might get mounted under /media/usbdisk-1, you start your music player, this one kept your last playlist in memory, but you simply can't replay it because the files have moved from /media/usbdisk to /media/usbdisk-1 :(.
This is where labeling a partition will become handy.
Here is a menu that will let you jump directly to a specific filesystem type:
Because linux comes with a whole range of file systems, we are going to need different tools depending on which filesystem you are using.
From now on, I will suppose you know which file system your device is formated to. If you don't know yet, simply plug you device in order to get it mounted, the run:
$ df -T
This will output something like:
.....
.....
/dev/scd0 iso9660 3011040 3011040 0 100% /media/cdrom0
/dev/sdb1 vfat 244480 20756 223724 9% /media/USBDRIVE
You can find the file system type on the second column: here iso9660 for the cdrom and vfat for the usb disk. The device name is found in the first column: here /dev/scd0 and /dev/sdb1
From now on, we are going to work on device /dev/sdaX, you will have to adjust this in accordance with the device you want to rename. Let's get into it now :).
In order to change the label of an ext2 or ext3 partition, you will need to use: e2fsprogs program utilities. If it is not yet install on your computer, run the following command to install it:
$ sudo apt-get install e2fsprogs
In order to retrieve the existing label of your partition, simply run:
$ sudo e2label /dev/sdaX
my label
To set up a new label, you simply have to append the label name at the end of the command line, so it will look like:
$ sudo e2label /dev/sdaX "my new label"
ext2/3 label has to be at most 16 characters long, if longer, label will be truncated
In order to confirm that your changes where properly applied, you can retrieve the partition's label with:
$ sudo e2label /dev/sdaX
my new label
The new label should be output on the next line.
Label can be deleted by supplying an empty label to e2label with this command line:
$ sudo e2label /dev/sdaX ""
First of all, you need to have reiserfsprogs package installed. If it not yet present on your machine, please run:
$ sudo apt-get install reiserfsprogs
While working on a reiserfs partition, the partition needs to be unmounted.
Now that you made sure that your partition is unmounted, let see how it works.
To retrieve the existing label, run:
$ sudo reiserfstune /dev/sdaX | grep LABEL
...
LABEL:
The label is going to be apended to "LABEL: ", if there is no label yet, only "LABEL: " will appear.
To set up a new label, you will need to use the -l switch like:
$ sudo reiserfstune /dev/sdaX -l "my new label"
Check for the "LABEL: " entry in the output, this one should now print:
LABEL: my new label
Reiserfs label has to be at most 16 characters long, if longer, label will be truncated
To do so, simply supply an empty label with this command line:
$ sudo reiserfstune /dev/sdaX -l ""
This one is a bit more tricky as you can't simply use the command line, but you will need to edit a file in order to let the tool know the name of the device.
The package we are going to use here is mtools. If the package is not installed on your machine, please run:
$ sudo apt-get install mtools
mtools needs to be told an "windows like" device name (something like G:) to match a linux device name. To do so, create and edit file ~/.mtoolsrc and add:
drive i: file="/dev/sdaX"
Where i: is the "windows name" and /dev/sdaX is the linux file system associated to it.
Now, you can use mlabel, provided by mtools package to retrieve the existing label. To do so, trigger the folowin command:
$ mlabel -s i:
Depending if the device already had a label or not, mlabel will output either:
Volume has no label
or
Volume label is MY LABEL
Setting a new label is done via the following command line:
$ mlabel i:"my new label"
Deleting an existing label can be done with:
$ mlabel -c i:
Doing so, you won't be prompt and the label will be removed.
The tool used here is xfs_admin provided by xfsprogs package, so in the first place you need to have it installed:
$ sudo apt-get install xfsprogs
To retrieve an existing label, run:
$ sudo xfs_admin -l /dev/sdaX
A new label can be set with this command line:
$ sudo xfs_admin -L "my new label" /dev/sdaX
XFS file system can only hold a label of at most 12 characters, if the label supplied is longer, the label will be truncated and a warning will be printed.
To delete a label, simply supplied an empty label with this command:
$ sudo xfs_admin -L "" /dev/sdaX
Here, we are going to use jfs_tune provided by the jfsutils package. Install it with:
$ sudo apt-get install jfsutils
An existing label can be retrieve with:
$ sudo jfs_tune -l /dev/sdaX | grep label
Volume label: 'mylabel'
A new label can be set with the following command line:
$ sudo jfs_tune -L "my new label" /dev/sdaX
JFS file system can only hold a label of at most 16 characters, if the label supplied is longer, the label will be truncated and a warning will be printed.
A label should be deletable using the following command:
$ sudo jfs_tune -L "" /dev/sdaX
By using labels, you will be able to have your removable device mounted under persistent names as well as more user friendly names.
For instance, having to usb stick plugged in, it will be easier for you to manipulate datas on the right device, if one is mounted under /media/blue-usbstick and the other one under /media/red-usbstick instead or /dev/disk1 and /dev/disk2 (mainly when those names can be swapped depending which device you plugged in first).








Hell, yeah...
This comes in really handy - thanks, man!
this is a really helpful
this is a really helpful tutorial -- i came across it because i have an ext2 formatted usb drive that i want to mount as read/write...
i still haven't found a tutorial on doing that...
rw by default
I believed it should be automatically mounted read/write.
To confirm this type:
$ mount
You should get something like:
/dev/sdb1 on /media/disk type ext3 (rw,noexec,nosuid,nodev)
This confirm that you disk is mounted rw, than check who own it with ls -l /media/disk
Debuntu
Nice site!
Nice site!
Good Work!
Good Work!