Linux磁盘WWID和UUID区别

Linux磁盘WWID和UUID区别

𝓓𝓸𝓷 Lv6

一、‌WWID和UUID简介

WWID和UUID都是Linux里用来稳定标识存储设备的标识符,但作用层级完全不同。‌ 简单说,WWID标识的是物理磁盘本身,UUID标识的是磁盘上的文件系统。可以类比成:WWID像身份证号,UUID像车牌号。‌

📝核心区别
  • WWID(World Wide Identifier)‌:根据SCSI标准,每个SCSI磁盘都有一个全球唯一的WWID,类似网卡的MAC地址。它由磁盘硬件决定,‌格式化、分区都不会改变‌,用于识别物理磁盘本身。
  • UUID(Universally Unique Identifier)‌:是文件系统在创建时生成的唯一标识,用于标记文件系统。‌格式化或重建文件系统后UUID会改变‌,分区不格式化则没有UUID。‌
🖥️ 查看命令
  • 查看WWID‌:ls -l /dev/disk/by-idscsi_id -g -u /dev/sda(不同系统版本命令路径略有差异)
  • 查看UUID‌:ls -l /dev/disk/by-uuidblkid
⚠️ 使用场景关键点
  • /etc/fstab挂载文件系统时只能用UUID‌,不能用WWID,因为挂载的是文件系统而非裸磁盘。
  • 多路径(multipath)场景下‌,同一存储LUN的多个路径(如/dev/sdb~sdi)会显示相同的WWID和UUID,用WWID做多路径整合更稳定。
  • 稳定性‌:WWID比UUID更稳定,磁盘格式化后WWID不变,但UUID会变。‌

可以理解为:‌WWID是硬件级的永久标识,UUID是软件级的文件系统标识‌。搞清这个区别,在配置磁盘绑定、多路径或挂载时就不会弄混了。‌

二、🔍 查看磁盘WWID

  • SCSI/SAS 设备

    1
    2
    3
    4
    5
    6
    ls -l /dev/disk/by-id/scsi-*  
    # 或使用 scsi_id 命令
    RHEL/CentOS 5:
    scsi_id -g -u -s /block/sda
    RHEL/CentOS 6:
    scsi_id --whitelist /dev/sd*
  • NVMe 设备

    1
    2
    nvme list  
    # 或查看 /dev/disk/by-id/nvme-*
  • 多路径设备

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    multipath -ll  

    # cat /etc/multipath.conf
    \# multipath.conf written by anaconda

    defaults {
    user_friendly_names yes
    }
    blacklist {
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^hd[a-z]"
    devnode "^dcssblk[0-9]*"
    wwid "*"
    }

    blacklist_exceptions {
    wwid "300060160e2b042007a5ba6d44bece771"
    wwid "300060160e2b042000bd016064cece771"
    wwid "300060160e2b04200176ad7954cece771"
    wwid "300060160e2b0420020c3fcd24cece771"
    }

    multipaths {
    multipath {
    wwid 300060160e2b042007a5ba6d44bece771
    alias v5200_gi01_lun00
    }
    multipath {
    wwid 300060160e2b04200d0990bea4bece771
    alias v5200_gi01_lun01
    }
    multipath {
    wwid 300060160e2b0420075db53f84bece771
    alias v5200_gi01_lun02
    }
    multipath {
    wwid 300060160e2b042000bd016064cece771
    alias v5200_gi01_lun03
    }

    }

ℹ️ 温馨提示:

  • RHEL/CentOS 5 及更早版本‌:使用的是 scsi_id -g -u -s 这类旧语法,还没有 --whitelist 参数。
  • RHEL/CentOS 6 开始‌:scsi_id 命令语法发生变化,--whitelist--whitelisted 参数开始被使用(两者作用相同),旧语法 -g -u -s 在 6 上会直接报 invalid option -- 's' 错误。
  • RHEL/CentOS 7 及以后‌:命令还在,但路径从 /sbin/scsi_id 移到了 /usr/lib/udev/scsi_id,且更推荐用 lsscsi --scsi_id 查看设备 ID。‌

如果你在较新的系统(比如 CentOS 7+)上找不到这个命令,通常是因为 scsi_id 位于 /usr/lib/udev/ 目录下,不在默认 PATH 里,需要用完整路径执行。‌

三、🔍 查看文件系统UUID

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@rac01-node01 /]# ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 10 May 28 2017 3777-9E7C -> ../../sda1
lrwxrwxrwx. 1 root root 10 May 28 2017 414563cf-af5d-467a-bca9-81b8dad6e17f -> ../../dm-0
lrwxrwxrwx. 1 root root 10 May 28 2017 948ab5bc-f796-4f74-8cd5-84b6474d79ae -> ../../dm-1
lrwxrwxrwx. 1 root root 10 May 28 2017 9cbb7f73-582c-47e4-99d7-1c79fae90efc -> ../../sda2

重启系统之后,如果要使挂载的挂载的目录和文件系统绑定关系不变,在/etc/fstab里面应该使用uuid来标识,如下:

[root@rac01-node01 /]# cat /etc/fstab

\# /etc/fstab
\# Created by anaconda on Sun May 28 01:13:01 2017
\# Accessible filesystems, by reference, are maintained under '/dev/disk'
\# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
\#
/dev/mapper/vg_rac01node01-LogVol01 / ext4 defaults 1 1
UUID=9cbb7f73-582c-47e4-99d7-1c79fae90efc /boot ext4 defaults 1 2
UUID=3777-9E7C /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/vg_rac01node01-LogVol00 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0

挂载文件系统之前,查看分区UUID,使用UUID mount文件系统时需要指定-t文件系统类型

[root@ca-mgmt ~]# blkid
/dev/vda1: UUID="d0bc3224-dfb4-4abd-9e04-91fe5af5c9b9" TYPE="xfs"
/dev/vda2: UUID="j7r6ci-03td-jY3T-nyKA-xI0t-9FK4-k3Bb1z" TYPE="LVM2_member"
/dev/mapper/rhel-root: UUID="a708a4d0-143e-46fe-8af9-1d5a2d330e2a" TYPE="xfs"
/dev/mapper/rhel-swap: UUID="4f927dbc-446e-49eb-939f-bc7790b823a4" TYPE="swap"
  • Title: Linux磁盘WWID和UUID区别
  • Author: 𝓓𝓸𝓷
  • Created at : 2026-09-08 12:16:55
  • Updated at : 2026-09-08 12:27:09
  • Link: https://www.zhangdong.me/linux-disk-wwid-uuid.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
评论