Com o udev, você pode usar
ls -l /dev/disk/by-label
para mostrar os links simbólicos por rótulo para pelo menos alguns nós de dispositivos de partição
.Não tenho certeza de qual é a lógica da inclusão, possivelmente a existência de um rótulo.
Existe um comando que listará todas as partições junto com seus rótulos? sudo fdisk -l
e sudo parted -l
não mostram rótulos por padrão.
EDIT: (como comentário abaixo) eu estou falando sobre rótulos ext2 - aqueles que você pode definir em gparted
após o particionamento.
EDIT2: A intenção é listar partições desmontadas (assim eu sei qual delas montar).
Com o udev, você pode usar
ls -l /dev/disk/by-label
para mostrar os links simbólicos por rótulo para pelo menos alguns nós de dispositivos de partição
.Não tenho certeza de qual é a lógica da inclusão, possivelmente a existência de um rótulo.
Por que você não usa apenas lsblk ? Por exemplo, com o comando
sudo lsblk -o name,mountpoint,label,size,uuid
quais saídas:
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
Você pode especificar muitas colunas na ordem que desejar:
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
Existe um comando blkid que pode ser o que você está procurando. Os resultados são semelhantes aos seguintes:
$ 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"
Uma outra opção é usar o udevadm comando, o que provavelmente lhe dará muito mais do que você precisa:
$ sudo udevadm info --query=all --name=/dev/mapper/vg_rootdisk-lv_var
Tente usar este comando:
e2label /dev/sda2
Tente usar mount -l
, funciona bem para mim.
Em versões mais recentes do kernel Linux, esta informação pode agora ser encontrada aqui em /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
Você pode encontrá-lo por by-id
, by-label
, by-path
ou 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
...
...
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
Em que xxxxxx
seria um UUID real, como 5ece678c-1234-5678-12e3-88c06ec11111
.
por rótulo
$ 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
Em que LABEL1
, LABEL2
, ... etc são label , que mostra links simbólicos para a partição real (por exemplo, /dev/sda3
).
Isso não listará todas as partições, mas você poderá visualizar e alterar o que quiser com tune2fs
.
$ sudo tune2fs -l /dev/sda1
Você pode usar um comando como esse para obter todos os /dev/sda*
devices.
$ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l'
Você também pode usar este comando:
$ sudo udevadm info --query all --path /sys/block/sdb/sdb1 \
| grep ID_PART_ENTRY_NAME
Você pode usar o acima para imprimir todas as informações dos dispositivos de bloco.
$ echo /sys/block/* | xargs -n 1 udevadm info --query all --path
O e2label não funcionou para mim com os rótulos do sistema de arquivos UDF. blkid fez;
blkid -s LABEL -o value /dev/sdg1
Se quiser, você pode usar meu script bash para esse propósito. Na verdade, faz um pouco mais do que você precisa, i. e. também mostrará quanto espaço é usado. Espero que você goste :) E também espero que a saída seja tão boa quanto na minha caixa de linux ... (Nota: ele só mostrará o hardware real como seus HDDs e DVD-ROMs, mas isso é suficiente para meus propósitos.)
Observação importante: talvez seja necessário executar esse script em sudo
ONCE por causa de blkid
. Pelo menos na minha distro, blkid -o export
irá output nil quando executado como usuário regular após o boot . Isso ocorre porque na "execução normal do usuário" de blkid
, os dados serão realmente recuperados de um arquivo de cache (normalmente /run/blkid/blkid.tab
), que só pode ser gravado por root
e exigirá um é executado em sudo
para ser preenchido com dados atuais.
#!/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
}'
Em um terminal Linux (console), digite:
blkid
Seguido por Enter
O resultado é a lista de dispositivos de bloco, cada um com LABEL e TYPE
Eu também uso lsblk
mencionado acima, mas acho as seguintes opções mais adequadas:
sudo lsblk -o name,mountpoint,tran,fstype,label,size
Tags command-line disk linux partition