Listar rótulos de partição na linha de comando

91

Existe um comando que irá listar todas as partições junto com seus rótulos? sudo fdisk -le sudo parted -lnão mostra rótulos por padrão.

EDIT: (como no comentário abaixo) Estou falando de rótulos ext2 - aqueles que você pode definir gpartedapós o particionamento.

EDIT2: A intenção é listar partições desmontadas (para que eu saiba qual montar).

sdaau
fonte
1
Etiquetas? O que é um rótulo? Você está falando sobre rótulos ext2? Eles não têm nada a ver com tabelas de partição em si.
Chris Jester-Young
Olá, Chris Jester-Young, obrigado pelo seu comentário! Eu tentei esclarecer acima - sim, acredito que sejam os rótulos ext2 dos quais estou falando ... Saúde!
4
Partições não possuem rótulos, mas sistemas de arquivos possuem. Você precisa de uma combinação de ferramentas para fazer isso. A blkidferramenta pode indicar o rótulo de uma partição conhecida. Mas, para encontrar a partição, você teria que fazer um loop na saída do fdisk.
Keith
2
@ Keith, como observação lateral, gostaria de acrescentar que as novas partições GPT têm um campo de nome semelhante aos rótulos do sistema de arquivos.
Cristian Ciupitu

Respostas:

84

Com o udev, você pode usar

ls -l /dev/disk/by-label

para mostrar os links simbólicos por rótulo para pelo menos alguns nós do dispositivo de partição.

Não sei qual é a lógica da inclusão, possivelmente a existência de um rótulo.

Ilkka
fonte
2
Pelo menos na minha máquina, são de fato apenas os sistemas de arquivos com rótulos que são vinculados lá, como confirmado (?) Usando a mount -lsugestão de Alan Kuras .
3
Olá @Ilkka - obrigado pela resposta! De fato, ls -la /dev/disk/by-labelparece mostrar rótulos de partições não montadas; para que resolva meu problema, eu acho ... Embora eu realmente preferisse uma opção fdiskou mais parted:) Felicidades!
2
Para mim, minha partição swap e as partições montadas não são mostradas, mas isso pode ser apenas coincidência. De qualquer forma, sudo lsblk -o name,mountpoint,label,size,uuidfuncionou para mim.
Chiel ten Brinke
128

com lsblk

Por exemplo, o comando

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

saídas:

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

Você pode especificar várias colunas na ordem que desejar:

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
Mikhail Morfikov
fonte
4
Obrigado por me mostrar esta ferramenta! Observe que este aplicativo funciona para usuários regulares, mas mostrará algumas informações (incluindo rótulos) apenas como raiz.
user689893
1
Também mostrará partições desmontadas? Se sim, então resolve a pergunta.
Ravi
1
Sim. Como você pode ver, o sdb1 e o sdb3 não estão montados.
Mikhail Morfikov 30/07/2014
14
ou mais fácil de lembrar lsblk -fo que equivale alsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
Leor
@ user689893 - não, isso só acontece no debian / ubuntu e derivados. O objetivo lsblké ser usado por usuários regulares, portanto, não há necessidade de su / sudo. Agora, se isso não funcionar para você, é porque sua distribuição perdeu alguma coisa.
don_crissti
26

Existe um comando blkid que pode ser o que você está procurando. Os resultados são semelhantes aos seguintes:

$ 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"

Uma outra opção é usar o comando udevadm , o que provavelmente lhe dará muito mais do que você precisa:

$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var
slashdot
fonte
1
Esta foi a única sugestão tão longe que trabalhou em ddwrt
Karthik T
12

Tente usar este comando:

e2label /dev/sda2
Dmitriy Kosolobov
fonte
9

Tente usar mount -l, funciona bem para mim.

slm
fonte
2
Olá, Alan Kuras - obrigado e +1 pela resposta! No entanto, quero listar partições desmontadas - mount -lparece mostrar apenas as montadas.
7

/ dev / disk

Nas versões mais recentes do kernel Linux, essas informações agora podem ser encontradas aqui em /dev/disk.

Exemplo

$ 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

Então você pode encontrá-lo by-id, by-label, by-pathou 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
    

    Onde o xxxxxxseria um UUID real, como 5ece678c-1234-5678-12e3-88c06ec11111.

  • por etiqueta

    $ 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
    

    Onde LABEL1, LABEL2... etc são rótulo que mostra links simbólicos para partição real (por exemplo /dev/sda3).

slm
fonte
Para classificar por nome da partição:ls -l /dev/disk/by-label/ | sort -k10
Digger
4

Isso não listará todas as partições, mas você pode visualizar e alterar o que quiser tune2fs.

$ sudo tune2fs -l /dev/sda1

Você pode usar um comando como este para obter todos os /dev/sda*dispositivos.

$ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l'
slm
fonte
2

Você também pode usar este comando:

$ sudo udevadm info --query all --path /sys/block/sdb/sdb1 \
     | grep ID_PART_ENTRY_NAME

Você pode usar o acima para imprimir todas as informações dos dispositivos de bloco.

$ echo /sys/block/* | xargs -n 1 udevadm info --query all --path
user56517
fonte
1

O e2label não funcionou para mim com rótulos de sistema de arquivos UDF. blkid fez;

blkid -s LABEL -o value /dev/sdg1
Thermionix
fonte
1

Se quiser, você pode usar meu script bash para esse fim. Na verdade, faz um pouco mais do que você precisa, ou seja, também mostra quanto espaço é usado. Espero que você goste :) E também espero que a saída seja tão boa quanto na minha caixa Linux ... (Nota: ela mostrará apenas hardware real como seus HDDs e DVD-ROMs, mas isso é suficiente para meus propósitos).

Nota importante: Esse script pode precisar ser executado emsudo ONCE por causa de blkid. Pelo menos na minha distribuição, blkid -o exporta saída será nula quando executada como usuário comum após a inicialização . Isso ocorre porque na "versão regular do usuário" de blkid, os dados serão realmente recuperados de um arquivo de cache (normalmente /run/blkid/blkid.tab), que só pode ser gravado roote, portanto, exigirá uma execução sudopara ser preenchido com os dados atuais.

#!/bin/bash
# LICENSE: GPL

if [[ $(id -u) -ne 0 ]]; then
  if [[ ! -s /run/blkid/blkid.tab ]]; then
   # no cache file found when run as regular user
   # this will require one run under sudo to populate cache file
   echo -e "Cache file does not exist or is empty.\nPlease give your root password to continue:\n\n"   
   sudo blkid >/dev/null
  fi
fi

df -P |
sort  |
awk 'BEGIN {
             fmthdr = "%-12s%-22s%-10s\t%-5s\n"

         # since we want to use single quotes for showing label names, we had better
         # replace the problematic single quote character by its hex representation, "\x27"
             fmtlin_w_qu = "%-12s\x27%-17s\x27\t   %-10s\t%4s used\n"
             fmtlin_wo_qu = "%-12s%-17s\t   %-10s\t%4s used\n"

             printf fmthdr, " Device ",  "Volume Label", "File System", "Storage usage"
             printf fmthdr, "---------", "------------", "-----------", "-------------"
           }    
           /^\/dev\/[sh]/{
              lab = ""      # CLEAR lab w/every run (very important!)
              ("blkid -o export "$1" | grep LABEL | cut -f2 -d=") | getline lab
              ("blkid -o export "$1" | grep TYPE | cut -f2 -d=") | getline fs
              if (lab == "") {
                lab = "<none>"
                fmtlin = fmtlin_wo_qu
              }
              else
                fmtlin = fmtlin_w_qu

              printf fmtlin, $1, lab, fs, $5
           }'
erro de sintaxe
fonte
1

Em um terminal Linux (console), digite:

blkid

Seguido por Enter

O resultado é a lista de dispositivos de bloco, cada um com LABEL e TYPE

JLJ
fonte
0

Eu também uso lsblkmencionado acima, mas acho as seguintes opções mais adequadas:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Eduard Florinescu
fonte