欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

用 Linux blkid 命令查找块设备详情 探测文件系统

今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机器。

lsblk

lsblk 是一个 Linux 工具,它会显示有关你系统里所有可用块设备的信息。它从 sysfs 文件系统 中获取信息。默认情况下,这个工具将会以树状格式显示(除了内存虚拟磁盘外的)所有块设备。

lsblk 默认输出

默认情况下 lsblk 会将块设备输出为树状格式:

  • NAME —— 设备的名称

  • MAJ:MIN —— Linux 操作系统中的每个设备都以一个文件表示,对块(磁盘)设备来说,这里用主次设备编号来描述设备。

  • RM —— 可移动设备。如果这是一个可移动设备将显示 1,否则显示 0。

  • TYPE —— 设备的类型

  • MOUNTPOINT —— 设备挂载的位置

  • RO —— 对于只读文件系统,这里会显示 1,否则显示 0。

  • SIZE —— 设备的容量

显示设备的所有者

若想显示设备所有者相关的信息,包括文件的所属用户、所属组以及文件系统挂载的模式,你可以使用 -m 选项,像这样:

  1. lsblk -m

列出设备块

如果你只想要列出设备,而不想让他们以树状输出,你可以使用 -l 选项:

  1. lsblk -l

在脚本中使用

高级技巧:如果你想要在脚本中使用而希望剔除表头,你可以这样使用 -n 选项:

  1. lsblk -ln

blkid

blkid 命令是一个命令行工具,它可以显示关于可用块设备的信息。它可以识别一个块设备内容的类型(如文件系统、交换区)以及从内容的元数据(如卷标或 UUID 字段)中获取属性(如 tokens 和键值对)。它主要有两类作用:用指定的键值对搜索一个设备,或是显示一个或多个设备的键值对。

blkid 使用方法

不添加任何参数直接运行 blkid 将会输出所有可用的设备、它们的通用唯一识别码(UUID)、文件系统类型以及卷标(如果有设置过)。

  1. # blkid

根据名字或 UUID 列出设备

如果你只想显示一个特定设备的信息,你可以将该设备的名字作为选项添加在 blkid 后面:

  1. # blkid /dev/sda1

如果你知道一个设备的 UUID 而想要知道它的设备名,你可以用 -U 选项,像这样:

  1. # blkid -U d3b1dcc2-e3b0-45b0-b703-d6d0d360e524

详细信息

如果你想要获取更多详细信息,你可以使用 -p 和 -o udev 选项来将它们用整齐的格式显示出来,像这样:

  1. # blkid -po udev /dev/sda1

重置缓存

有时候设备列表可能不会更新,如果遇到这种情况你可以使用 -g 选项来清理 blkid 的缓存,从而清除已经不存在的设备。

  1. # blkid -g


via: http://linoxide.com/linux-command/linux-command-lsblk-blkid/

来自 https://linux.cn/article-4734-1.html


linux blkid

在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。

直接使用blkid可列出当前系统中所以已挂载文件系统的类型


lijilin@lijilin-TH55B-HD:~$ sudo blkid

/dev/sda1: LABEL="win7" UUID="40305E93305E9030" TYPE="ntfs"

/dev/sda5: LABEL="software" UUID="823E2D6213AF89BD" TYPE="ntfs"

/dev/sda6: LABEL="learning" UUID="CCBC9A082598C349" TYPE="ntfs"

/dev/sda7: LABEL="entertainment" UUID="0979A05BD10F9410" TYPE="ntfs"

/dev/sda8: UUID="7350922f-c69c-4f33-84e0-befd8b42d2f6" TYPE="swap"

/dev/sda9: UUID="3002feb1-dceb-441d-bfd2-31243e336d39" TYPE="ext4"

lijilin@lijilin-TH55B-HD:~$

 


可以查看指定设备(如/dev/sda1)所采用的文件系统类型


lijilin@lijilin-TH55B-HD:~$  blkid /dev/sda1

/dev/sda1: LABEL="win7" UUID="40305E93305E9030" TYPE="ntfs"

 


查看系统中的 LABEL


lijilin@lijilin-TH55B-HD:~$ sudo blkid -s LABEL

/dev/sda1: LABEL="win7"

/dev/sda5: LABEL="software"

/dev/sda6: LABEL="learning"

/dev/sda7: LABEL="entertainment"

 


查看系统中的 UUID


lijilin@lijilin-TH55B-HD:~$ sudo blkid -s UUID

[sudo] password for lijilin:

/dev/sda1: UUID="40305E93305E9030"

/dev/sda5: UUID="823E2D6213AF89BD"

/dev/sda6: UUID="CCBC9A082598C349"

/dev/sda7: UUID="0979A05BD10F9410"

/dev/sda8: UUID="7350922f-c69c-4f33-84e0-befd8b42d2f6"

/dev/sda9: UUID="3002feb1-dceb-441d-bfd2-31243e336d39"

lijilin@lijilin-TH55B-HD:~$

============================================================ 

获取设备的UUID的方法(Linux系统中):

1)# blkid /dev/sda1

/dev/sda1: LABEL="/axs3" UUID="298d198d-aa60-48af-a9f4-638f8f274afa" SEC_TYPE="ext2" TYPE="ext3"
2) # tune2fs -l /dev/sda1 |grep 'UUID'
298d198d-aa60-48af-a9f4-638f8f274afa
3)# ls -l /dev/disk/by-uuid/ |grep sda1 |awk '{print $8}'
298d198d-aa60-48af-a9f4-638f8f274afa
4)#scsi_id -p 0x80/0x83 -s /block/sda1   应该只对SCSI设备有效。
5)# dumpe2fs /dev/sda1 |grep 'UUID'
dumpe2fs 1.39 (29-May-2006)
Filesystem UUID:       298d198d-aa60-48af-a9f4-638f8f274afa

这个命令不建议使用,要是分区比较大,耗时还是比较长的
6)# vol_id /dev/sda1 |grep 'UUID'
ID_FS_UUID=298d198d-aa60-48af-a9f4-638f8f274afa
ID_FS_UUID_ENC=298d198d-aa60-48af-a9f4-638f8f274afa
 

===========================================================

如果你试图安装或者升级到最新的ubuntu,你或许会发现所有的存储设备现在都用一个叫UUID的字符串来表示了。UUID-Universally Unique IDentifiers,翻译过来就是“全局唯一标志符”。

UUID到底是什么?

UUID是一个标帜你系统中的存储设备的字符串,其目的是帮助使用者唯一的确定系统中的所有存储设备,不管它们是什么类型的。它可以标识DVD驱动器,USB存储设备以及你系统中的硬盘设备等。一个典型的UUID看起来就是这样:

c73a37c8-ef7f-40e4-b9de-8b2f8103844

那为什么要使用UUID呢?

原因1:它是真正的唯一标志符

UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。

原因2:设备名并非总是不变的

自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。

使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。

原因3:ubuntu中的许多关键功能现在开始依赖于UUID

例如grub──系统引导程序,现在可以识别UUID,打开你的/boot/grub/menu.lst,你可以看到类似如下的语句:
title Ubuntu hardy (development branch), kernel 2.6.24-16-generic
root (hd2,0)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=c73a37c8-ef7f-40e4-b9de-8b2f81038441 ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet

列出系统中设备的UUID

如果你使用最新的ubuntu,你可以使用blkid命令列出系统中所有存储设备的UUID。

# blkid
/dev/sda1: UUID="2220CF8220CF5B83″ TYPE="ntfs"
/dev/sda2: UUID="48E81F29E81F14B2″ LABEL="DRIVE-D" TYPE="ntfs"
/dev/sdb1: UUID="c73a37c8-ef7f-40e4-b9de-8b2f81038441″ SEC_TYPE="ext2″ TYPE="ext3″
/dev/sdb5: TYPE="swap" UUID="abe7529e-dcd5-4afc-b714-05569dbcd30b"
/dev/sdb6: UUID="f34c8c7c-a020-4a14-8c97-257180240250″ SEC_TYPE="ext2″ TYPE="ext3″
/dev/sdb7: UUID="8fa274ca-5b22-411f-b5da-7469c1f276da" SEC_TYPE="ext2″ TYPE="ext3″
/dev/sdc1: UUID="1e36f323-c4e5-4f55-ba0a-838643550bf9″ TYPE="ext3″ SEC_TYPE="ext2″
/dev/sdc2: UUID="83aa92e4-4df4-4aab-80f3-9bbb447e0459″ TYPE="ext3″ SEC_TYPE="ext2″

 

获取指定设备的UUID:

如果你知道一个设备名而想确认它的UUID,例如你想确认你的/etc/fstab中的UUID是否正确,那么你可以用vol_id命令:

# vol_id -u /dev/sdb1
c73a37c8-ef7f-40e4-b9de-8b2f81038441 


普通分类: