Elencare le etichette delle partizioni dalla riga di comando


91

Esiste un comando che elencherà tutte le partizioni insieme alle loro etichette? sudo fdisk -le sudo parted -lnon mostrare le etichette per impostazione predefinita.

EDIT: (come da commento sotto) Sto parlando di etichette ext2 - quelle che puoi impostare al gpartedmomento del partizionamento.

EDIT2: L'intento è quello di elencare le partizioni non montate (quindi so quale montare).


1
Etichette? Cos'è un'etichetta? Stai parlando di etichette ext2? Quelli non hanno nulla a che fare con le tabelle delle partizioni in sé.
Chris Jester-Young,

Ciao @ Chris Jester-Young, grazie per il tuo commento! Ho cercato di chiarire sopra - sì, credo che siano le etichette ext2 di cui sto parlando ... Saluti!

4
Le partizioni non hanno etichette, ma i file system sì. Hai bisogno di una combinazione di strumenti per farlo. Lo blkidstrumento può dirti l'etichetta di una partizione nota. Ma per trovare la partizione dovresti passare in rassegna l'output di fdisk.
Keith,

2
@Keith, come nota a margine, vorrei aggiungere che le nuove partizioni GPT hanno un campo nome che è simile alle etichette del filesystem.
Cristian Ciupitu,

Risposte:


84

Con udev, puoi usare

ls -l /dev/disk/by-label

per mostrare i collegamenti simbolici per etichetta ad almeno alcuni nodi del dispositivo di partizione.

Non sono sicuro di quale sia la logica dell'inclusione, forse l'esistenza di un'etichetta.


2
Almeno sulla mia macchina, in effetti sono solo i filesystem con le etichette ad essere collegati lì, come confermato (?) Usando il mount -lsuggerimento di Alan Kuras .

3
Ciao @Ilkka - grazie per la tua risposta! In effetti, ls -la /dev/disk/by-labelsembra mostrare le etichette delle partizioni non montate; quindi questo risolve il mio problema, immagino ... Anche se, avrei davvero preferito un'opzione per fdisko partedinvece :) Saluti!

2
Per me, la mia partizione di swap e le partizioni montate non vengono visualizzate, ma potrebbe essere solo una coincidenza. Comunque, ha sudo lsblk -o name,mountpoint,label,size,uuidfunzionato per me.
Chiel ten Brinke,

128

con lsblk

Ad esempio, il comando

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

uscite:

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

Puoi specificare molte colonne nell'ordine che preferisci:

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

4
Grazie per avermi mostrato questo strumento! Nota, questa applicazione funziona per utenti normali, ma mostrerà alcune informazioni (comprese le etichette) solo come root.
user689893

1
Mostrerà anche le partizioni non montate? Se sì, risolve la domanda posta.
Ravi,

1
Sì. Come vedi sdb1 e sdb3 non sono montati.
Mikhail Morfikov,

14
o più facile da ricordare lsblk -fche è equivalente alsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - no, ciò accade solo su debian / ubuntu e derivati. Il punto di lsblkdeve essere utilizzato dagli utenti regolari, quindi non è necessario su / sudo. Ora, se ciò non funziona per te, è perché i tuoi sviluppatori di distribuzione hanno perso qualcosa.
don_crissti,

26

C'è un comando blkid che potrebbe essere quello che stai cercando. I risultati sono simili ai seguenti:

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

Un'altra opzione è quella di utilizzare il comando udevadm , che probabilmente ti darà molto di più di quello che ti serve:

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

1
Questo è stato l'unico suggerimento finora che ha funzionato su ddwrt
Karthik T


9

Prova a usare mount -l, funziona bene per me.


2
Ciao @Alan Kuras - grazie e +1 per la risposta! Tuttavia, voglio elencare le partizioni non mount -lmontate - sembra mostrare solo quelle montate .. Saluti!

7

/ Dev / disk

Nelle versioni più recenti del kernel Linux queste informazioni sono ora disponibili qui /dev/disk.

Esempio

$ 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

Così si può trovare da by-id, by-label, by-patho 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
    

    Dove xxxxxxsarebbe un UUID reale come 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
    

    Dove LABEL1, LABEL2, ... ecc sono etichetta che mostra i link simbolici a partizione attuale (per esempio /dev/sda3).


Per ordinare in base al nome della partizione:ls -l /dev/disk/by-label/ | sort -k10
Digger

4

Questo non elencherà tutte le partizioni ma puoi visualizzare e modificare ciò che ti piace tune2fs.

$ sudo tune2fs -l /dev/sda1

È possibile utilizzare un comando come questo per ottenere tutti i /dev/sda*dispositivi.

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

2

Puoi anche usare questo comando:

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

È possibile utilizzare quanto sopra per stampare tutte le informazioni sui dispositivi a blocchi.

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

1

e2label non ha funzionato per me con le etichette del filesystem UDF. Blkid l'ha fatto;

blkid -s LABEL -o value /dev/sdg1

1

Se vuoi, puoi usare il mio script bash per quello scopo. In realtà fa un po 'più del necessario, cioè mostrerà anche quanto spazio viene utilizzato. Spero vi piaccia :) E spero anche che l'output sia pulito come sulla mia scatola di Linux ... (Nota: mostrerà solo hardware reale come i vostri HDD e DVD-ROM, ma è sufficiente per i miei scopi.)

Nota importante: questo script potrebbe dover essere eseguito susudo ONCE a causa di blkid. Almeno sulla mia distribuzione, blkid -o exportprodurrà zero se eseguito come utente normale dopo l'avvio . Questo perché nella "normale interpretazione dell'utente" di blkid, i dati verranno effettivamente recuperati da un file di cache (normalmente /run/blkid/blkid.tab), che è solo scrivibile roote richiederà quindi una corsa sotto sudoper essere popolato con i dati correnti.

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

In un terminale Linux (console) digitare:

blkid

Seguito da Enter

Il risultato è l'elenco dei dispositivi a blocchi, ciascuno con LABEL e TYPE


0

Uso anche lsblkmenzionato sopra, ma trovo che le seguenti opzioni siano più adatte:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.