Lister les étiquettes de partition à partir de la ligne de commande


91

Existe-t-il une commande qui listera toutes les partitions avec leurs étiquettes? sudo fdisk -let sudo parted -lne montre pas les étiquettes par défaut.

EDIT: (selon le commentaire ci-dessous) Je parle des étiquettes ext2, celles que vous pouvez définir gpartedlors du partitionnement.

EDIT2: Le but est de lister les partitions non montées (je sais donc laquelle monter).


1
Étiquettes? C'est quoi une étiquette? Parlez-vous des étiquettes ext2? Ceux-ci n'ont rien à voir avec les tables de partition en soi.
Chris Jester-Young

Bonjour @ Chris Jester-Young, merci pour votre commentaire! J'ai essayé de clarifier ci-dessus - oui, je crois que ce sont les étiquettes ext2 dont je parle ... À la vôtre!

4
Les partitions n'ont pas d'étiquettes, contrairement aux systèmes de fichiers. Vous avez besoin d'une combinaison d'outils pour le faire. L' blkidoutil peut vous indiquer l'étiquette d'une partition connue. Mais pour trouver la partition, vous devez boucler sur la sortie de fdisk.
Keith

2
@ Keith, en guise de remarque, j'aimerais ajouter que les nouvelles partitions GPT ont un champ de nom similaire aux étiquettes de système de fichiers.
Cristian Ciupitu

Réponses:


84

Avec udev, vous pouvez utiliser

ls -l /dev/disk/by-label

afficher les liens symboliques par étiquette vers au moins certains nœuds de périphériques de partition.

Pas sûr de la logique de l'inclusion, peut-être de l'existence d'une étiquette.


2
Au moins sur ma machine, ce ne sont en effet que les systèmes de fichiers avec les étiquettes qui y sont liés, comme le confirme (?) En utilisant la mount -lsuggestion d' Alan Kuras .

3
Bonjour @Ilkka - merci pour votre réponse! En effet, ls -la /dev/disk/by-labelsemble montrer des étiquettes de partitions non montées; donc ça résout mon problème, je suppose… Bien que j'aurais vraiment préféré une option pour fdiskou partedplutôt :) À la vôtre!

2
Pour moi, ma partition d'échange et mes partitions montées ne sont pas montrées, mais ce n'est peut-être qu'une coïncidence. Quoi qu'il en soit, a sudo lsblk -o name,mountpoint,label,size,uuidtravaillé pour moi.
Chiel ten Brinke

128

avec lsblk

Par exemple, la commande

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

les sorties:

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

Vous pouvez spécifier de nombreuses colonnes dans l'ordre de votre choix:

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
Merci de me montrer cet outil! Notez que cette application fonctionne pour les utilisateurs réguliers, mais affichera certaines informations (y compris les étiquettes) uniquement en tant que root.
user689893

1
Affichera-t-il également les partitions non montées? Si oui, cela résout la question posée.
Ravi

1
Oui. Comme vous pouvez le voir, sdb1 et sdb3 ne sont pas montés.
Mikhail Morfikov

14
ou plus facile à retenir lsblk -fce qui équivaut àlsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR

@ user689893 - non, cela ne se produit que sur debian / ubuntu et ses dérivés. Le point de lsblkdoit être utilisé par les utilisateurs réguliers donc pas besoin de su / sudo. Maintenant, si cela ne fonctionne pas pour vous, c’est que votre distro devs manque quelque chose.
don_crissti

26

Il existe une commande blkid qui peut correspondre à ce que vous recherchez. Les résultats sont similaires à ce qui suit:

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

Une autre option consiste à utiliser la commande udevadm , qui vous donnera probablement beaucoup plus que ce dont vous avez besoin:

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

1
C’est la seule suggestion qui ait fonctionné jusqu’à présent pour ddwrt
Karthik T


9

Essayez de l'utiliser mount -l, ça marche pour moi.


2
Bonjour @Alan Kuras - Merci et +1 pour la réponse! Cependant, je veux lister les partitions non mount -lmontées - semble ne montrer que les partitions montées. A la vôtre!

7

/ dev / disk

Dans les versions plus récentes du noyau Linux, ces informations sont désormais disponibles ci-dessous /dev/disk.

Exemple

$ 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

Ainsi , vous pouvez le trouver en by-id, by-label, by-pathou by-uuid.

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

    Où le xxxxxxserait un UUID réel tel que 5ece678c-1234-5678-12e3-88c06ec11111.

  • par étiquette

    $ 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
    

    LABEL1, LABEL2... etc sont l' étiquette qui montre les liens symboliques à la partition réelle (par exemple /dev/sda3).


Pour trier par nom de partition:ls -l /dev/disk/by-label/ | sort -k10
Digger

4

Cela ne listera pas toutes les partitions mais vous pourrez voir et modifier ce que vous voulez avec tune2fs.

$ sudo tune2fs -l /dev/sda1

Vous pouvez utiliser une commande telle que celle-ci pour obtenir tous les /dev/sda*périphériques.

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

2

Vous pouvez également utiliser cette commande:

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

Vous pouvez utiliser ce qui précède pour imprimer toutes les informations sur les périphériques en mode bloc.

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

1

e2label ne fonctionnait pas pour moi avec les étiquettes de système de fichiers UDF. blkid a fait;

blkid -s LABEL -o value /dev/sdg1

1

Si vous le souhaitez, vous pouvez utiliser mon script bash à cette fin. En réalité, il en fait un peu plus que ce dont vous avez besoin, c’est-à-dire qu’il indiquera également la quantité d’espace utilisé. J'espère que vous l'aimerez :) Et j'espère aussi que la sortie sera aussi nette que sur ma machine Linux ... (Remarque: il ne montrera que le matériel réel tel que vos disques durs et vos DVD-ROM, mais cela suffit pour mes besoins.)

Remarque importante: Ce script devra peut-être être exécuté soussudo ONCE à cause de blkid. Au moins sur mon distro, blkid -o exportsera nulle de sortie lorsqu'il est exécuté comme utilisateur régulier après le démarrage . En effet, dans le "rendu utilisateur normal" de blkid, les données seront en fait extraites d'un fichier cache (normalement /run/blkid/blkid.tab), qui ne peut être écrit qu'en enregistrant rootet nécessitant donc une exécution sous sudopour être rempli avec les données actuelles.

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

Dans un terminal Linux (console), tapez:

blkid

Suivi par Enter

Le résultat est la liste des périphériques de bloc, chacun avec LABEL et TYPE


0

J'utilise aussi lsblkmentionné ci-dessus, mais je trouve les options suivantes plus convenables:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.