获取系统的唯一标识符(而不是MAC地址)?

由于某些原因,我需要获得一个Linux系统的唯一标识符,当系统重新引导时不会改变(但当用户replace可命名数量的硬件或格式化硬盘时可能会改变)。

以下解决scheme是不可能的:

  • 使用MAC地址(这已经被使用,但在一些系统上因为没有networking接口而失败)
  • 使用blkid来获取分区的UUID – 这个命令在所有系统上都不可用,自动找出哪个分区用于这个分区是有点困难的

那么…还有其他的想法如何唯一地识别一个系统?

谢谢!

我认为你的问题的答案将取决于你认为是系统的“永久”部分。 假设您决定从应用程序角度来看,硬盘分区是半永久性的,然后计算/proc/paritions内容的某种散列。

在bash中,像这样的东西:

 #!/bin/sh cat /proc/partitions |sha1sum|cut "-d " -f1