Linux上的便携式UUID

时间:2015-03-05 12:48:40

标签: linux uuid

在Windows和MacOSX上,每台机器检索某种UUID是微不足道的:

在Windows上(注册表):

"Software\Microsoft\Cryptography\MachineGuid"

在MacOSX上

$ ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID

但是在Linux上,这是much more complex。到目前为止,我发现了以下内容:

  1. 在基于dbus的系统上:

    $ cat / var / lib / dbus / machine-id

  2. 在基于x86的系统上(需要 root power ):

    $ sudo cat / sys / devices / virtual / dmi / id / product_uuid

  3. 在基于PowerPC的系统上:

    $ cat / proc / device-tree / serial-number

  4. 真正奇怪的是,基于x86的arch上主板的UUID仅限于root用户,但可以通过hal($ lshal | grep 'system\.hardware\.serial')使用普通用户访问。同时,可以从基于PowerPC的arch上的任何用户访问所有磁盘UUID($ ls /dev/disk/by-uuid/)和序列号

    那么我可以在Linux上使用任何便携式UUID吗? dbus 可能已安装或未安装,我需要从非读取此值root 用户,并且它需要在重新启动时保持相同/proc/sys/kernel/random/boot_id因此不是一个选项。)

1 个答案:

答案 0 :(得分:1)

现在大多数Linux发行版现在都安装了systemd,因此我可以依赖/etc/machine-id存在并且可以从普通用户那里读取。