List partition labels from the command line

245,551

Solution 1

With udev, You can use

ls -l /dev/disk/by-label

to show the symlinks by label to at least some partition device nodes.

Not sure what the logic of inclusion is, possibly the existence of a label.

Solution 2

with lsblk

For instance, the command

sudo lsblk -o name,mountpoint,label,size,uuid

outputs:

NAME                           MOUNTPOINT     LABEL         SIZE UUID
sda                                                         1.4T
├─sda1                         /boot          boot          953M f557b9f0-edb5-42bb-94d8-27bc03c3c2c7
├─sda2                                                     46.6G 727fa348-8804-4773-ae3d-f3e176d12dac
│ └─sda2_crypt (dm-0)                                      46.6G P1kvJI-5iqv-s9gJ-8V2H-2EEO-q4aK-sx4aDi
│   ├─debian_crypt-swap (dm-1) [SWAP]                         2G 3f9f24d7-86d1-4e21-93e9-f3c181d05cf0
│   ├─debian_crypt-tmp (dm-2)  /tmp           tmp             5G 93fc8219-f985-45fb-bd5c-2c7940a7512d
│   ├─debian_crypt-home (dm-3) /home          home            6G 12e8566c-8f0f-45ec-8524-6d9d9ee91eae
│   └─debian_crypt-root (dm-4) /              root         33.6G 9685570b-4c9e-43ea-815e-49d10dc7a1bf
├─sda3                                                    651.9G d3e0436c-85f6-45c6-9d8f-28b79ee06102
│ └─crypt_gusto (dm-8)         /media/Gusto   Gusto       651.9G 0c084508-cb8b-4b61-832d-6b85273f33c4
├─sda4                                                        1K
├─sda5                                                      298G 5063da5f-9b68-43de-914c-32b89622bcc8
│ └─crypt_kabi (dm-7)          /media/Kabi    Kabi          298G e6a0b66c-8fe9-4e7b-9d54-7b2b430e109d
├─sda6                                                    213.6G 5129d860-bb41-4393-b4b1-f8af53d9155d
│ └─crypt_zami (dm-6)          /media/Zami    Zami        213.6G 19101155-6070-4f37-b39d-19f28867c66b
├─sda7                         /media/Server  Server       85.6G a9f4dae5-901c-4f49-bb30-592de3000713
└─sda8                                                    100.6G dc7f4586-a33d-4707-98e9-8b55c559b0d2
  └─crypt_grafi (dm-5)         /media/Grafi   Grafi       100.6G 5e3242e1-ec7a-4806-92f7-88a126feea94
sdb                                                        14.5G
├─sdb1                                        DEBIAN_LIVE     3G 6bf4d915-2b62-444e-a2c8-16307769b5c2
├─sdb2                                                        2G 90ec6f73-8fdb-4c8d-aebd-cadd0f51b412
│ └─crypt_sdb2 (dm-10)         /mnt           data            2G 91e779dd-0a3f-40b2-8ad0-257d860541a6
└─sdb3                                        linux         9.5G 14a783a4-96dd-4a85-8de7-6e8eea230594
loop0                                                      1000M a3be80bf-0f2c-44ed-8de5-d60e3b19c01a
└─crypt_dropbox (dm-9)         /media/Dropbox Dropbox       998M 8461e2cf-ae17-449b-8ee5-29cc88688b8b
zram0                          [SWAP]                       250M f8254ae5-5ae6-4fda-b8ef-83f25c405894
zram1                          [SWAP]                       250M 7e7ed90d-731c-422a-bf9b-828f09b80502

You can specify plenty of columns in whatever order you like:

Available columns:
       NAME  device name
      KNAME  internal kernel device name
    MAJ:MIN  major:minor device number
     FSTYPE  filesystem type
 MOUNTPOINT  where the device is mounted
      LABEL  filesystem LABEL
       UUID  filesystem UUID
         RO  read-only device
         RM  removable device
      MODEL  device identifier
       SIZE  size of the device
      STATE  state of the device
      OWNER  user name
      GROUP  group name
       MODE  device node permissions
  ALIGNMENT  alignment offset
     MIN-IO  minimum I/O size
     OPT-IO  optimal I/O size
    PHY-SEC  physical sector size
    LOG-SEC  logical sector size
       ROTA  rotational device
      SCHED  I/O scheduler name
    RQ-SIZE  request queue size
       TYPE  device type
   DISC-ALN  discard alignment offset
  DISC-GRAN  discard granularity
   DISC-MAX  discard max bytes
  DISC-ZERO  discard zeroes data

Solution 3

There is a blkid command which may be what you are looking for. Results are similar to the following:

$ sudo blkid /dev/mapper/vg_rootdisk-lv_var
/dev/mapper/vg_rootdisk-lv_var: LABEL="LV_VAR" UUID="08520908-03cd-4e42-a4e4-0f5a771be16c" TYPE="ext4"

One other option is to use the udevadm command, which likely will give you far more than you need:

$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var

Solution 4

Try to use this command:

e2label /dev/sda2

Solution 5

/dev/disk

In newer versions of the Linux kernel this info can now be found here under /dev/disk.

Example

$ ls -l /dev/disk
total 0
drwxr-xr-x 2 root root 300 Mar  4 18:43 by-id
drwxr-xr-x 2 root root 140 Mar  4 18:21 by-label
drwxr-xr-x 2 root root  80 Mar  4 18:18 by-path
drwxr-xr-x 2 root root 200 Mar  4  2015 by-uuid

So you can find it by by-id, by-label, by-path or by by-uuid.

  • by-id

    $ ls -l /dev/disk/by-id
    total 0
    lrwxrwxrwx. 1 root root  9 Jan 11 17:01 ata-Optiarc_DVD_RW_AD-7930H -> ../../sr0
    lrwxrwxrwx. 1 root root  9 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5 -> ../../sda
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5-part1 -> ../../sda1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 ata-ST95005620AS_5YX1K0Q5-part2 -> ../../sda2
    ...
    ...
    
  • by-uuid

    $ ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../sda1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-1
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-0
    lrwxrwxrwx. 1 root root 10 Jan 11 17:01 xxxxxx -> ../../dm-2
    

    Where the xxxxxx would be an actual UUID such as 5ece678c-1234-5678-12e3-88c06ec11111.

  • by-label

    $ ls -l /dev/disk/by-label/
    total 0
    lrwxrwxrwx 1 root root 10 Mar  4 18:21 LABEL1 -> ../../sda4
    lrwxrwxrwx 1 root root 10 Mar  4 18:17 LABEL2 -> ../../sda3
    lrwxrwxrwx 1 root root 10 Mar  4 18:21 LABEL3 -> ../../sda6
    lrwxrwxrwx 1 root root 10 Mar  4 18:42 LABEL4 -> ../../sda7
    lrwxrwxrwx 1 root root 10 Mar  4 18:20 LABEL5 -> ../../sda5
    

    Where LABEL1,LABEL2,... etc are label which shows symbolic links to actual partition (e.g /dev/sda3).

Share:
245,551

Related videos on Youtube

sdaau
Author by

sdaau

Updated on September 18, 2022

Comments

  • sdaau
    sdaau over 1 year

    Is there a command that will list all partitions along with their labels? sudo fdisk -l and sudo parted -l don't show labels by default.

    EDIT: (as per comment below) I'm talking about ext2 labels - those that you can set in gparted upon partitioning.

    EDIT2: The intent is to list unmounted partitions (so I know which one to mount).

    • Admin
      Admin about 13 years
      Labels? What's a label? Are you talking about ext2 labels? Those have nothing to do with partition tables per se.
    • Admin
      Admin about 13 years
      Hi @Chris Jester-Young, thanks for your comment! I have tried to clarify above - yes, I believe it is ext2 labels I'm talking about... Cheers!
    • Admin
      Admin almost 13 years
      Partitions don't have labels, but file systems do. You need a combination of tools to do that. The blkid tool can tell you label of a known partition. But to find the partition you would have to loop over the output of fdisk.
  • Admin
    Admin about 13 years
    Hi @Alan Kuras - thanks and +1 for the answer! However, I want to list unmounted partitions - mount -l seems to show only mounted ones.. Cheers!
  • Admin
    Admin about 13 years
    At least on my machine, it is indeed only the filesystems with labels that get linked in there, as confirmed(?) by using Alan Kuras' mount -l suggestion.
  • Admin
    Admin about 13 years
    Hi @Ilkka - thanks for your answer! Indeed, ls -la /dev/disk/by-label seems to show labels of unmounted partitions; so that solves my problem, I guess... Although, I really would have preferred an option for fdisk or parted instead :) Cheers!
  • user689893
    user689893 almost 10 years
    Thanks for showing me this tool! Note, this application works for regular users, but will show some info (including labels) only as root.
  • Godson
    Godson over 9 years
    Will it show unmounted partitions also? If yes then it solves the question asked.
  • VinoPravin
    VinoPravin over 9 years
    Yes. As you can see sdb1 and sdb3 aren't mounted.
  • LeoR
    LeoR over 9 years
    or easier to remember lsblk -f which is equivalent to lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
  • don_crissti
    don_crissti over 8 years
    @user689893 - no, that only happens on debian/ubuntu and derivatives. The point of lsblk is to be used by regular users so no need to su/sudo. Now, if that doesn't work for you, it's because your distro devs prolly missed something.
  • chtenb
    chtenb over 8 years
    For me, my swap partition and mounted partitions are not shown, but that may just be coincidence. Anyhow, sudo lsblk -o name,mountpoint,label,size,uuid worked for me.
  • DrBeco
    DrBeco over 7 years
    Easier to remember: lsblk -fo +size. It will list (or is equivalent to): lsblk -o name,fstype,label,uuid,mountpoint,size
  • tonybka
    tonybka over 7 years
    This was the only suggestion so far that worked on ddwrt
  • Digger
    Digger almost 6 years
    To sort by partition name: ls -l /dev/disk/by-label/ | sort -k10
  • Dirk
    Dirk over 5 years
    sudo is not necessary.
  • loved.by.Jesus
    loved.by.Jesus about 3 years
    Another variant: lsblk -o +label,uuid which lists more information. By the way, @user689893 , I completely agree with @Dirk. I see no difference at all, with or without using sudo with this command (in Ubuntu 16.04.). Consequently, do not use sudo.
  • Scrooge McDuck
    Scrooge McDuck over 2 years
    On my system /dev/disk/by-label is unpopulated when the initramfs mounts root fs.
  • Scrooge McDuck
    Scrooge McDuck over 2 years
    this answer is potentially the more complete
  • J Trana
    J Trana over 2 years
    I needed root to see the LABEL.
  • SuperSandro2000
    SuperSandro2000 over 2 years
    This is perfect for WSL because e2label requires always sudo and there is no /dev/disk.
  • arielf
    arielf about 2 years
    Answer is > 10 years old. Things have changed since? On my system (Ubuntu 20.04) there's no /dev/disk/by-label OTOH: there's /dev/disk/by-partlabel
  • Admin
    Admin almost 2 years
    Gave me EXACTLY what I needed to make my external HDD mounts persist across a restart. Depending on the phase of the moon and it's position vis-a-vis Venus, it would show up as sdb, sdg, or anything in between... Since I have 2 migratory external disks, things were always weird and using ls-d /dev/sd* to figure out which was which was annoying.