Sunday, February 10, 2008

UNIX下修改HOSID与MAC

UNIX 系列的hostid 与 MAC 无关,是写在 eeprom 里的一个硬件标识,一般作为软件安全锁。常用的还有MAC,CPUID, HDD ID 等,一般是不可以改的或不易改的。

关于如何修改hostid的问题
以下这篇文章是我去年修改hostid时找的一篇文章!对blade150有效,其他型号的机器不确定!
1.查找eeprom地址修改
该方法对从station5、station20等等直到Blade100、Blade150系列都适用,注意操作过程中屏幕显示结果的细小差别,不要完全照搬。
以blade150+solaris8为例,原始HOSTID为:83188869,Ethernet address:0:3:ba:18:88:69;拟改为80cf7afe。
Step1: Stop+a 【进入OK状态】
Step2: OK show-devs 【按空格键找到包含eeprom的全路径名】
Step3: OK cd /pci@1f,0/ebus@c/eeprom@1,0
注意不同的eeprom版本输出的eeprom路径名会不同,请以屏幕显示为准。
step4:OK .properties 【有些版本可能为.attributes】
找到address值fff58000
step5: OK fff58000 >;physical
step6: OK showstack
step7: OK 2000 memmap
step8: OK 1fd0+
step9: OK 30 dump
注意看附图中的输出结果,从fff55fd8开始各位的含义如下:

字节 地址 内容
0 fff55fd8 总为 01 - format/version number
1 fff55fd9 hostid的第一个字节【机器类型】
2-7 fff55fda~f ethernet address
8-b fff55fe0~3 生产日期,通常为0,不一定是真实日期
c fff55fe4 hostid的第二字节
d fff55fe5 hostid的第三字节
e fff55fe6 hostid的第四字节
f fff55fe7 IDPROM checksum - bitwise xor of bytes 0-e

Step10: OK 80 fff55fd9 c!
【第一个字节一般不推荐修改,如果一定要改,好像也是没有问题的。】
step11: OK cf fff55fe4 c!
step12: OK 7a fff55fe5 c!
step13: OK fe fff55fe6 c!
step14: OK 01 80 xor
step15: OK 00 xor
step16: OK 03 xor
【从fff55fd8开始向后作xor,直到fff55fe6处作完为止,假设输出结果为f6,见下一步的输出为f6。注意上图中的hostid的第二、三、四字节的值在作xor时要用新的值cf、7a、fe】
next: OK fe xor
OK f6
next: OK f6 fff55fe7 c!
next: OK banner
查看修改正确后可以输入boot重新引导,如果banner显示的结果有错,有两种方法恢复出厂设置,一是用stop+n组合键恢复,如果stop+n无效,则在OK状态下输入set-defaults即可。
上面的示例没有修改Ethernet address,用户也可以根据需要修改,修改对应字节即可。

No comments: