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

<p>есть ли команда, которая перечислит все разделы вместе с их метками? <code>sudo fdisk -l</code> а также <code>sudo parted -l</code> не показывать ярлыки по умолчанию.</p><p>правка: (согласно комментарию ниже) я говорю о ярлыках ext2 - тех, которые вы можете установить в <code>gparted</code> при разбиении.</p><p>правка 2: намерение состоит в том, чтобы перечислить <em>не смонтированные</em> разделы (так что я знаю, какой из них монтировать).</p>

<p>с udev, вы можете использовать</p><pre><code>ls -l /dev/disk/by-label </code></pre><p>показать символические ссылки по меткам как минимум на <em>некоторые</em> узлы устройства раздела.</p><p>не уверен, что логика включения, возможно, наличие ярлыка.</p>

<h1>с <a href="http://man7.org/linux/man-pages/man8/lsblk.8.html"><code>lsblk</code></a> </h1><p>например, команда</p><pre><code>sudo lsblk -o name,mountpoint,label,size,uuid </code></pre><p>результаты:</p><pre><code>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 </code></pre><p>вы можете указать множество столбцов в любом порядке:</p><pre><code>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 </code></pre>

<p>существует команда <a href="http://man7.org/linux/man-pages/man8/blkid.8.html"><strong> blkid </strong></a> , которая может быть тем, что вы ищете. результаты похожи на следующее:</p><pre><code>$ 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" еще один вариант - использовать команду <a href="http://man7.org/linux/man-pages/man8/udevadm.8.html"><strong> udevadm </strong> , которая, скорее всего, даст вам гораздо больше, чем нужно:$ sudo udevadm info --query=all --name=/dev/mapper/vg\_rootdisk-lv\_var </code></pre>

<p>попробуйте использовать эту команду:</p><pre><code>e2label /dev/sda2 </code></pre>

<p>попробуй использовать <code>mount -l</code>, он отлично работает для меня.</p>

<h3>/ dev/диск</h3><p>в более новых версиях ядра linux эта информация теперь может быть найдена здесь под <code>/dev/disk</code>.</p><h3>пример</h3><pre><code>$ 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 ... ... </code></pre></li> <li> <p><em> по-uuid </em></p> <pre><code>$ 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 </code></pre> <p>куда <code>label1</code>, <code>label2</code>, ... и т. д. <strong>метка</strong>, которая показывает символические ссылки на фактический раздел (например, <code>/dev/sda3</code>).</p> </li> </ul>

<p>это не будет перечислять все разделы, но вы можете просматривать и изменять то, что вам нравится с <code>tune2fs</code>.</p><pre><code>$ sudo tune2fs -l /dev/sda1 вы можете использовать такую команду, чтобы получить все /dev/sda устройства.$ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l' </code></pre>

<p>вы также можете использовать эту команду:</p><pre><code>$ 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 </code></pre>

<p>в терминале (консоли) linux введите:</p><pre><code>blkid </code></pre><p>с последующим <kbd>enter</kbd></p><p>результатом является список блочных устройств, каждое с label и type</p>

<p>если хотите, вы можете использовать мой скрипт bash для этой цели. это на самом деле делает немного больше, чем нужно, я. е. это также покажет, сколько места занято. надеюсь, вам понравится :) и я также надеюсь, что вывод будет таким же аккуратным, как на моей коробке linux ... (примечание: он покажет только <em> реальный </em> аппаратное обеспечение, такое как ваши жесткие диски и dvd-диски, но этого достаточно для моих целей.)</p><p><strong>важное примечание: возможно, этот скрипт должен быть запущен в <code>sudo</code></strong> once из-за <code>blkid</code>. по крайней мере, в моем дистрибутиве, <code>blkid -o export</code> будет <strong>выводит ноль</strong> при запуске от имени обычного пользователя <em> после загрузки </em>. это связано с тем, что при "обычном представлении пользователя" <code>blkid</code> данные фактически будут извлекаться из <strong>файл кэша</strong> (обычно <code>/run/blkid/blkid.tab</code>), который доступен для записи только <code>root</code> и, таким образом, для заполнения текущими данными потребуется один запуск под <code>sudo</code>.</p><pre><code>#!/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:nn" sudo blkid >/dev/null fi fi df -p | sort | awk 'begin { fmthdr = "%-12s%-22s%-10st%-5sn" # 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 = "%-12sx27%-17sx27t %-10st%4s usedn" fmtlin_wo_qu = "%-12s%-17st %-10st%4s usedn" 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 = "" fmtlin = fmtlin_wo_qu } else fmtlin = fmtlin_w_qu printf fmtlin, $1, lab, fs, $5 }' 

e2label не работал для меня с метками файловой системы udf. blkid сделал;blkid -s label -o value /dev/sdg1 

я также использую lsblk, упомянутый выше, но я считаю, что следующие варианты лучше подходят:sudo lsblk -o name,mountpoint,tran,fstype,label,size 

я узнал, как получить fslabel раздела fsroot как обычный пользователь. эта страница помогла мне добиться успеха. было не легко многие команды работают только с sudo, но/etc/mtab и/dev/disk/by-label читаются обычным пользователем.вот код bash:<pre class="lang-bsh prettyprint-override">test=cat /etc/mtab|grep " / " test=${test%% *} test=${test##/} test=ls -l /dev/disk/by-label/|grep $test` test=${test%% ->} test=${test##* } </code></pre>

<p>очень просто:</p><pre><code>lsblk -fp </code></pre><p>описание со страницы руководства:</p><blockquote> <pre><code> -f, --fs output info about filesystems. this option is equivalent to -o name,fstype,label,uuid,mountpoint. the authoritative information about filesystems and raids is provided by the blkid(8) command. -p, --paths print full device paths. </code></pre></blockquote><p>в обоих следующих дистрибутивах я протестировал команду:</p><ul> <li>red hat enterprise linux 8.1 (ootpa)</li> <li>ubuntu 18.04.3 lts (бионический бобр)</li> </ul><p>результат:</p><pre><code>$ lsblk -fp name fstype label uuid mountpoint /dev/nvme0n1 ├─/dev/nvme0n1p1 vfat boot xxxx-7xxd /boot/efi ├─/dev/nvme0n1p2 ├─/dev/nvme0n1p3 ntfs windows 22xxxxxxxx1222b3001 ├─/dev/nvme0n1p4 ntfs recovery xxxx1222222xxxx1 ├─/dev/nvme0n1p5 ext4 xxxxxx-5xx9-4xxb-xxxx-xxxxxxxxxx1 /boot ├─/dev/nvme0n1p6 ├─/dev/nvme0n1p7 ext4 xxxxxx-6xxb-4xx6-xxd7-xxxxxxxxxxxx └─/dev/nvme0n1p8 crypto\_luks xxxxxx-exx0-415a-xxxx-xxxxxxxxxxxx └─/dev/mapper/lukslvm lvm2\_member xxxxxx-lxxh-rxxn-xxxx-xxxx1-xxxxxx ├─/dev/mapper/vgubuntu-swap swap xxxxxx-5xx9-4xxb-xxxx-xxxxxxxxxxxx [swap] └─/dev/mapper/vgubuntu-root ext4 xxxxxx-fxxa-4xxd-9e41-xxxxxxxxxxxx / </code></pre>