My router decided to change the device name for some USB storage devices. So /dev/sdc was swapped for /dev/sdd and vice versa. The result was some file system corruption on /dev/sdc, because it was used on a remote system through iSCSI, using a different file system from /dev/sdd.
With regular internal disks, attached with PATA, SATA or SAS, the chances are very small that such an event will occur, but it is possible, especially if you start adding/subtracting disks. With USB devices the risk is substantially bigger.
To prevent your system from mixing up drives because there device names change, use file system labels. All information that follows have been stolen from this location. Since this blog is also my personal notepad, the relevant bits are reproduced here.
There are three steps involved, the third being optional:
- add a label to the file system
- add the label to /etc/fstab
- update grub boot manager (optional)
Add a label to the file system
Setting a label when the file system is created:
mkfs.ext3 -L ROOT /dev/sda1
mkfs.xfs -L BIGRAID /dev/sde
Set label for existing file system
EXT3:
e2label /dev/sda1 PRIMARY_ROOT
e2label /dev/sda1
XFS:
xfs_admin -L DATA1 /dev/sdf
xfs_admin /dev/sdf
Set label for swap partition
mkswap -L SWAP0 /dev/sdb5
add the label to fstab
Example of contents of fstab:
LABEL=ROOT / ext3 defaults 1 1
LABEL=BOOT /boot ext3 defaults 1 2
LABEL=SWAP swap swap defaults 0 0
LABEL=HOME /home ext3 nosuid,auto 1 2
Update the grub boot manager
title server
root (hd0,0)
kernel (hd0,0)/vmlinuz ro root=LABEL=SERVER_ROOT0 rhgb quiet
initrd (hd0,0)/initrd.img