Вывести список разделов метки из командной строки

91

Есть ли команда, которая перечислит все разделы вместе с их метками? sudo fdisk -lи sudo parted -lне показывать ярлыки по умолчанию.

РЕДАКТИРОВАТЬ: (согласно комментарию ниже) Я говорю о ярлыках ext2 - тех, которые вы можете установить gpartedпри разбиении.

РЕДАКТИРОВАТЬ 2: Цель состоит в том, чтобы перечислить несмонтированные разделы (поэтому я знаю, какой из них монтировать).

sdaau
источник
1
Этикетки? Какой ярлык? Вы говорите о ярлыках ext2? Они не имеют ничего общего с таблицами разделов как таковыми.
Крис Шестер-Янг
Привет @Chris Jester-Young, спасибо за ваш комментарий! Я попытался уточнить выше - да, я считаю, что это ext2 ярлыки, о которых я говорю ... Ура!
4
Разделы не имеют меток, но файловые системы есть. Вам нужна комбинация инструментов, чтобы сделать это. blkidИнструмент может сказать вам этикетку известного раздела. Но чтобы найти раздел, вам нужно перебрать вывод fdisk.
Кит
2
@Keith, как примечание, я хотел бы добавить, что у новых разделов GPT есть поле имени, которое похоже на метки файловой системы.
Кристиан Чиупиту

Ответы:

84

С Udev, вы можете использовать

ls -l /dev/disk/by-label

чтобы показать символические ссылки по меткам, по крайней мере, к некоторым узлам устройства раздела.

Не уверен, что логика включения, возможно, наличие ярлыка.

Илкка
источник
2
По крайней мере, на моей машине, это действительно только файловые системы с метками, которые там связаны, что подтверждено (?) mount -lПредложением Алана Кураса .
3
Привет @Ilkka - спасибо за ваш ответ! Действительно, ls -la /dev/disk/by-labelкажется, чтобы показать метки несмонтированных разделов; так что это решает мою проблему, я думаю ... Хотя, я действительно предпочел бы вариант для fdiskили partedвместо этого :) Ура!
2
Для меня мой раздел подкачки и смонтированные разделы не показаны, но это может быть просто совпадением. Во всяком случае, sudo lsblk -o name,mountpoint,label,size,uuidработал на меня.
Чиль тен Бринке
128

с участием lsblk

Например, команда

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

выходы:

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

Вы можете указать множество столбцов в любом порядке:

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
Спасибо за показ мне этот инструмент! Обратите внимание, что это приложение работает для обычных пользователей, но отображает некоторую информацию (включая метки) только как root.
user689893
1
Будут ли также отображаться несмонтированные разделы? Если да, то это решает заданный вопрос.
Рави
1
Да. Как видите, sdb1 и sdb3 не смонтированы.
Михаил Морфиков
14
или проще запомнить, lsblk -fчто эквивалентноlsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
LeoR
@ user689893 - нет, это происходит только в Debian / Ubuntu и его производных. Смысл в lsblkтом, чтобы использоваться обычными пользователями, поэтому нет необходимости su / sudo. Теперь, если это не работает для вас, это потому, что ваши разработчики дистрибутивов что-то упустили.
don_crissti
26

Есть команда blkid, которая может быть тем, что вы ищете. Результаты похожи на следующее:

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

Еще один вариант - использовать команду udevadm , которая, скорее всего, даст вам гораздо больше, чем вам нужно:

$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var
Slashdot
источник
1
Пока это было единственное предложение, которое работало над ddwrt
T
12

Попробуйте использовать эту команду:

e2label /dev/sda2
Дмитрий Косолобов
источник
9

Попробуйте использовать mount -l, это хорошо для меня.

SLM
источник
2
Привет @ Алан Курас - спасибо и +1 за ответ! Тем не менее, я хочу перечислить несмонтированные разделы - mount -lкажется, показывает только смонтированные разделы ... Ура!
7

/ DEV / диск

В более новых версиях ядра Linux эту информацию теперь можно найти здесь /dev/disk.

пример

$ 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

Таким образом , вы можете найти его by-id, by-label, by-pathили by-uuid.

  • по-ид

    $ 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
    ...
    ...
    
  • по-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
    

    Где xxxxxxбудет фактический UUID, такой как 5ece678c-1234-5678-12e3-88c06ec11111.

  • по прямому назначению

    $ 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... и т. Д. Являются меткой, которая показывает символические ссылки на фактический раздел (например /dev/sda3).

SLM
источник
Сортировать по названию раздела:ls -l /dev/disk/by-label/ | sort -k10
Копатель
4

Это не будет отображать список всех разделов, но вы можете просматривать и изменять то, что вам нравится tune2fs.

$ sudo tune2fs -l /dev/sda1

Вы можете использовать такую ​​команду, чтобы получить все /dev/sda*устройства.

$ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l'
SLM
источник
2

Вы также можете использовать эту команду:

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

Вы можете использовать выше, чтобы распечатать информацию обо всех блочных устройствах.

$ echo /sys/block/* | xargs -n 1 udevadm info --query all --path
user56517
источник
1

e2label не работал для меня с метками файловой системы UDF. Blkid сделал;

blkid -s LABEL -o value /dev/sdg1
Thermionix
источник
1

Если хотите, вы можете использовать мой скрипт bash для этой цели. На самом деле он делает немного больше, чем нужно, то есть он также показывает, сколько места занято. Надеюсь, вам понравится :) И я также надеюсь, что вывод будет таким же аккуратным, как на моей коробке Linux ... (Примечание: он будет показывать только реальное оборудование, как ваши жесткие диски и DVD-ROM, но этого достаточно для моих целей.)

Важное примечание: Этот сценарий , возможно , придется работать подsudo РАЗ из - за blkid. По крайней мере, в моем дистрибутиве blkid -o exportбудет выводить nil при запуске от имени обычного пользователя после загрузки . Это связано с тем, что при «обычном воспроизведении пользователя» blkidданные будут фактически извлекаться из файла кэша (обычно /run/blkid/blkid.tab), который доступен только для записи rootи, таким образом, потребуется один запуск sudoдля заполнения текущими данными.

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

В терминале (консоли) Linux введите:

blkid

С последующим Enter

Результатом является список блочных устройств, каждое с LABEL и TYPE

JLJ
источник
0

Я использую также lsblkупомянутые выше, но я считаю, что следующие варианты лучше подходят:

sudo lsblk -o name,mountpoint,tran,fstype,label,size
Эдуард Флоринеску
источник