sudo fdisk -l
和sudo parted -l
默认情况下不显示标签。编辑:(按照下面的评论)我在谈论ext2标签-可以在分区时在
gparted
中设置的标签。EDIT2:目的是列出未安装的分区(所以我知道要安装哪个分区)。
#1 楼
使用udev,您可以使用ls -l /dev/disk/by-label
通过标签显示至少一些分区设备节点的符号链接。
不确定逻辑是什么包含可能是标签的存在。
评论
至少在我的机器上,确实只有带有标签的文件系统链接到那里,如使用Alan Kuras的mount -l建议所确认的(?)。
–伊尔卡
2011-3-30在6:43
嗨,@ Ilkka-谢谢您的回答!实际上,ls -la / dev / disk / by-label似乎显示了已卸载分区的标签;因此,我想这可以解决我的问题。尽管,我确实更愿意为fdisk选择一个选项,或者选择parted :)干杯!
– sdaau
2011年3月30日在6:46
对我来说,未显示我的交换分区和已安装分区,但这可能只是巧合。无论如何,sudo lsblk -o名称,挂载点,标签,大小,uuid对我有用。
–智利十克林克
16 Jan 17'9:18
#2 楼
使用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
评论
感谢您向我展示此工具!请注意,该应用程序适用于普通用户,但只会以root用户身份显示一些信息(包括标签)。
–user689893
2014年7月4日在7:55
还会显示未挂载的分区吗?如果是,那么它将解决所提出的问题。
–拉维
2014年7月29日在7:26
是。如您所见,未安装sdb1和sdb3。
– Mikhail Morfikov
2014年7月30日15:02
或更容易记住lsblk -f,它等效于lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT
–LeoR
14年8月27日在16:52
@ user689893-不,仅在debian / ubuntu及其衍生产品上发生。 lsblk的重点是普通用户使用的,因此无需su / sudo。现在,如果这对您不起作用,那是因为您的发行版开发人员很想念某些东西。
–don_crissti
15年11月8日在11:37
#3 楼
您可能正在寻找一个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
评论
这是迄今为止对ddwrt起作用的唯一建议
– Karthik T
16年8月16日在18:23
#4 楼
尝试使用以下命令:e2label /dev/sda2
#5 楼
尝试使用mount -l
,对我来说效果很好。评论
@Alan Kuras,您好-感谢您+1的答案!但是,我要列出未挂载的分区-mount -l似乎只显示已挂载的分区。
– sdaau
2011-3-30在6:43
#6 楼
/ dev / disk在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
来找到它。 /> 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
...
...
其中
xxxxxx
是实际的UUID,例如5ece678c-1234-5678-12e3-88c06ec11111
。按标签
$ 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
其中
LABEL1
,LABEL2
等是标签,其中显示了指向实际分区的符号链接(例如/dev/sda3
)。 > 评论
要按分区名称排序:ls -l / dev / disk / by-label / |排序-k10
–挖土机
18年7月18日在17:11
#7 楼
这不会列出所有分区,但是您可以使用tune2fs
查看和更改所需的内容。$ sudo tune2fs -l /dev/sda1
您可以使用诸如此类的命令来获取所有
/dev/sda*
设备。 $ sudo sh -c 'echo /dev/sda* /dev/mapper/fedora* | xargs -n 1 tune2fs -l'
#8 楼
您还可以使用以下命令:$ 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
#9 楼
e2label不适用于UDF文件系统标签。 blkid做了;blkid -s LABEL -o value /dev/sdg1
#10 楼
在Linux终端(控制台)中,键入:blkid
后跟Enter
,结果是块设备的列表,每个块设备都带有LABEL和TYPE
#11 楼
如果愿意,您可以将我的bash脚本用于此目的。实际上,它的功能超出您的需求。 e。希望您喜欢它:)
我也希望输出与我的linux盒一样整齐...
(注意:它只会显示真正的硬件,例如您的HDD和DVD-ROM,但这足以满足我的需求。)
重要说明:由于
sudo
,此脚本可能必须在blkid
ONCE下运行。至少在我的发行版中,启动后以普通用户身份运行时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 "" | grep LABEL | cut -f2 -d=") | getline lab
("blkid -o export "" | grep TYPE | cut -f2 -d=") | getline fs
if (lab == "") {
lab = "<none>"
fmtlin = fmtlin_wo_qu
}
else
fmtlin = fmtlin_w_qu
printf fmtlin, , lab, fs,
}'
#12 楼
我也使用上面提到的lsblk
,但是我发现以下更适合的选项:sudo lsblk -o name,mountpoint,tran,fstype,label,size
#13 楼
非常容易:lsblk -fp
手册页上的描述:
-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.
在以下两个发行版中,我都测试了以下命令:
Red Hat Enterprise Linux 8.1(Ootpa)
Ubuntu 18.04.3 LTS(Bionic Beaver)
结果:
$ 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 /
#14 楼
我发现了如何以普通用户身份获得fsroot分区的fslabel。此页面帮助我成功。并不容易。许多命令仅适用于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##* }
评论
标签?什么是标签?您在谈论ext2标签吗?这些与分区表本身无关。嗨@克里斯·杰斯特·杨,谢谢您的评论!我已经尝试在上面进行澄清-是的,我相信这是我正在谈论的ext2标签...干杯!
分区没有标签,但是文件系统有标签。您需要使用多种工具来完成此操作。 blkid工具可以告诉您已知分区的标签。但是要找到该分区,您必须遍历fdisk的输出。
@Keith,作为旁注,我想补充一点,新的GPT分区具有类似于文件系统标签的名称字段。