Listar las etiquetas de partición desde la línea de comando


91

¿Hay un comando que enumerará todas las particiones junto con sus etiquetas? sudo fdisk -ly sudo parted -lno muestra etiquetas por defecto.

EDITAR: (según el comentario a continuación) Estoy hablando de las etiquetas ext2, aquellas que puede establecer en gpartedla partición.

EDIT2: La intención es enumerar particiones desmontadas (así que sé cuál montar).


1
¿Etiquetas? ¿Qué es una etiqueta? ¿Estás hablando de etiquetas ext2? Esos no tienen nada que ver con las tablas de particiones per se.
Chris Jester-Young

Hola @Chris Jester-Young, ¡gracias por tu comentario! He tratado de aclarar lo anterior, sí, creo que estoy hablando de las etiquetas ext2 ... ¡Salud!

44
Las particiones no tienen etiquetas, pero los sistemas de archivos sí. Necesitas una combinación de herramientas para hacer eso. La blkidherramienta puede indicarle la etiqueta de una partición conocida. Pero para encontrar la partición, tendría que recorrer la salida de fdisk.
Keith

2
@Keith, como nota al margen, me gustaría agregar que las nuevas particiones GPT tienen un campo de nombre que es similar a las etiquetas del sistema de archivos.
Cristian Ciupitu

Respuestas:


84

Con udev, puedes usar

ls -l /dev/disk/by-label

para mostrar los enlaces simbólicos por etiqueta a al menos algunos nodos de dispositivos de partición.

No estoy seguro de cuál es la lógica de inclusión, posiblemente la existencia de una etiqueta.


2
Al menos en mi máquina, de hecho, solo los sistemas de archivos con etiquetas se vinculan allí, como se confirma (?) Mediante la mount -lsugerencia de Alan Kuras .

3
Hola @Ilkka: ¡gracias por tu respuesta! De hecho, ls -la /dev/disk/by-labelparece mostrar etiquetas de particiones desmontadas; así que eso resuelve mi problema, supongo ... Aunque, realmente hubiera preferido una opción para fdisko en su partedlugar :) ¡Salud!

2
Para mí, mi partición de intercambio y las particiones montadas no se muestran, pero eso puede ser una coincidencia. De todos modos, sudo lsblk -o name,mountpoint,label,size,uuidfuncionó para mí.
Chiel ten Brinke

128

con lsblk

Por ejemplo, el comando

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

salidas:

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

Puede especificar muchas columnas en el orden que desee:

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

44
¡Gracias por mostrarme esta herramienta! Tenga en cuenta que esta aplicación funciona para usuarios normales, pero mostrará cierta información (incluidas las etiquetas) solo como raíz.
user689893

1
¿Mostrará también particiones desmontadas? En caso afirmativo, resuelve la pregunta formulada.
Ravi

1
Si. Como puede ver, sdb1 y sdb3 no están montados.
Mikhail Morfikov

14
o más fácil de recordar lsblk -fcuál es equivalente alsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - no, eso solo ocurre en debian / ubuntu y derivados. El punto de lsblkdebe ser utilizado por usuarios habituales, por lo que no es necesario su / sudo. Ahora, si eso no funciona para ti, es porque tus desarrolladores de la distribución se perdieron algo.
don_crissti

26

Hay un comando blkid que puede ser lo que estás buscando. Los resultados son similares a los siguientes:

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

Otra opción es usar el comando udevadm , que probablemente te dará mucho más de lo que necesitas:

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

1
Esta fue la única sugerencia hasta ahora que funcionó en ddwrt
Karthik T


9

Intenta usarlo mount -l, funciona bien para mí.


2
Hola @Alan Kuras: ¡gracias y +1 por la respuesta! Sin embargo, quiero enumerar las particiones desmontadas, mount -lparece mostrar solo las particiones montadas ... ¡Salud!

7

/ dev / disk

En las versiones más nuevas del kernel de Linux, esta información ahora se puede encontrar aquí en /dev/disk.

Ejemplo

$ 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

Por lo que se puede encontrar este by-id, by-label, by-patho by-uuid.

  • por 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
    ...
    ...
    
  • por-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
    

    Donde xxxxxxsería un 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
    

    Donde LABEL1, LABEL2... etc. son etiquetas que muestran enlaces simbólicos a la partición real (por ejemplo /dev/sda3).


Para ordenar por nombre de partición:ls -l /dev/disk/by-label/ | sort -k10
Digger

4

Esto no enumerará todas las particiones, pero puede ver y modificar lo que quiera con tune2fs.

$ sudo tune2fs -l /dev/sda1

Puede usar un comando como este para obtener todos los /dev/sda*dispositivos.

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

2

También puedes usar este comando:

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

Puede usar lo anterior para imprimir toda la información de los dispositivos de bloque.

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

1

e2label no funcionó para mí con las etiquetas del sistema de archivos UDF. blkid lo hizo;

blkid -s LABEL -o value /dev/sdg1

1

Si lo desea, puede usar mi script bash para ese propósito. En realidad, hace un poco más de lo que necesita, es decir, también mostrará cuánto espacio se utiliza. Espero que les guste :) Y también espero que la salida sea tan ordenada como en mi caja de Linux ... (Nota: solo mostrará hardware real como sus HDD y DVD-ROM, pero eso es suficiente para mis propósitos).

Nota importante: es posible que este script deba ejecutarse bajosudo UNA VEZ debido a blkid. Al menos en mi distribución, blkid -o exportgenerará nil cuando se ejecute como usuario normal después del arranque . Esto se debe a que, en la "representación de usuario normal" de blkid, los datos se recuperarán de un archivo de caché (normalmente /run/blkid/blkid.tab), que solo se puede escribir rooty, por lo tanto, requerirá una ejecución sudopara completar los datos actuales.

#!/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
           }'

1

En un terminal de Linux (consola) escriba:

blkid

Seguido por Enter

El resultado es la lista de dispositivos de bloque, cada uno con LABEL y TYPE


0

También uso lo lsblkmencionado anteriormente, pero creo que las siguientes opciones son más adecuadas:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.