# dmidecode --string system-uuid
나는 내 환경의 각 호스트에서 UUID를 가져오기 위해 위의 코드를 사용하고 있습니다. 제가 이해한 바에 따르면 UUID는 동일한 하드웨어 구성을 사용하는 동일한 호스트의 서로 다른 Linux 배포판 간에 변경되어서는 안 됩니다. 그러나 다른 Linux 배포판에서 몇 가지 테스트를 수행한 후 동일한 명령을 사용하여 다른 uuid를 발견했습니다.
dmidecode
이전 버전에서는 다른 UUID 결과를 얻을 것으로 보입니다 .
예를 들어 dmidecode 2.9
SLES11.2의 결과는 string A
이고 dmidecode 2.12
Debian 8의 결과는 입니다 string B
.
내 컴퓨터에 어떤 Linux 배포판을 배포하더라도 동일한 UUID를 얻으려면 어떻게 해야 합니까?
추가 정보:
dmidecode
네트워크 어댑터나 다른 하드웨어의 설정을 변경하면 UUID가 변경되지 않는다는 것을 알았기 때문에 UUID 대신 MAC 주소를 사용하고 싶습니다 .
나에게 필요한 것은 사소한 하드웨어 변경과 다양한 운영 체제에서 이를 식별하기 위해 내 컴퓨터에 고유한 식별자를 가질 수 있다는 것입니다. dmidecode
UUID를 생성하여 파일에 쓰고 사용하는 대신 어떤 방식으로든 false일 수 없음을 사용하고 싶습니다 .
저는 VMware와 복제 시스템을 많이 사용하고 있기 때문에 복제를 통해 복사되지 않는 것이 필요합니다.
답변1
그것은 sw입니다. 원하든 원하지 않든 바뀔 것입니다 :)
나는 데이터베이스 인덱스를 얻기 위해 이것(및 거의 모든 소프트웨어 또는 하드웨어 기반 정보 자동 감지)에 의존하지 않을 것입니다. 하드웨어와 소프트웨어를 모두 변경해야 할 수 있으며, 정보가 변경되면 다시 시작해야 합니다. 더 나쁠 수도 있습니다. 중복된 데이터를 얻을 수 있으면 데이터베이스에 문제가 생길 수 있습니다.
고유성을 보장하기 위해 인덱스에 대한 자산 관리 도구를 사용하고 자동 감지된 정보(MAC, HDD, RAM, CPU, uuid 등)를 인덱스에 매핑하지만 별도의/독립적인 값으로, 단일 값으로 분해하지 않고. 이렇게 하면 단일 값/다중 값 쿼리(대부분의 경우)를 통해 시스템을 대상으로 지정하고 필요한 경우 인덱싱/자산 관리 시스템으로 대체할 수 있습니다. 또한 하드웨어/소프트웨어 업그레이드/스왑을 처리하고 하나 이상의 정보 값(예: 업데이트된 uuid)을 추가/변경/제거할 수 있습니다.
답변2
나는 사용한다 hostname
:
i = gethostname(tmp,2047);
if (i) /* found host name */
strcpy(wrk,tmp);
크게 변하지 않으면 좋을 것 같아요 :-).