お客様専用ページ > お客様専用FAQ
【Linuxのシステム設定】 Fedora 16, RedHat 7, CentOS 7 以降のデフォルトで、ネットワーク I/F の eth0 ポートが廃止されたことによる hostid="00000000"となる問題(ライセンスキーを取得できない)、あるいは、コンパイラコマンドを実行した時に、License Manager problem が生じるといった問題。
2015年4月補筆
2013年1月初稿
© 株式会社ソフテック
Fedora 16 以降の OS 上に、PGI をインストールしたところ、/opt/pgi/license.info の Hostid 情報が 00000000 となり、Hostid が取得できていない。対処法と hostid の取得方法は?
この問題は、Fedora 15 以上で変更された「Network Device Naming変更」に因る eth0 と言うネーミングがデフォルトで廃止されたことによるものです。em1 とか p6p1と言った名前が、PGIの FLEXlm ライセンスマネージャが期待する eth0 とは異なっているため、FLEXlmライセンスマネージャに関係する utility がうまく動作しません。これによりHostidが00000000となってしまいます。
詳細は、以下に説明があります。
Fedora のリリースノート( Consistent Network Device Naming )
Change the network device naming scheme from ethX to a physical location-based name for easy identification and use.
http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming
これを解決する方法を説明します。テスト環境に Fedora 17 をデフォルトの状態でインストールした場合を例として説明します。ifconfig コマンドを実施すると以下のネットワーク・インタフェース論理名が現れます。特に、p6p1 と言うポートが、従来は eth0 としてnaming されていたものです。
Fedora 19 以降、RedHat EL 7.0, CentOS 7 以降の場合は、必ず、こちらも参照してください(対策の方法に追加作業があります))。
[root@photon30 ~]# ifconfig lo: flags=73mtu 16436 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 98 bytes 6380 (6.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 98 bytes 6380 (6.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 p6p1: flags=4163 mtu 1500 inet 192.168.0.30 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::52e5:49ff:fe38:ca8a prefixlen 64 scopeid 0x20 ether 50:e5:49:38:ca:8a txqueuelen 1000 (Ethernet) RX packets 19717 bytes 24534818 (23.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11482 bytes 806446 (787.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 45 base 0x6000
この論理名は、p6p1 (PCI add-in card NICs)ではなく、別の名前(em0,em1...、LAN-on-Motherboard ports の場合)が付されているかもしれません。いずれにしても、「eth0 が無い」と言う状態になります。
FLEXlm ライセンスマネージャの Linux 版は、必ず eth0 のポートの MAC アドレスを参照してハンドリングを行います。ライセンスキーもこの eth0アドレスをキーとして生成されています。従って、eth0 が存在していないシステム上では、キーを生成するための hostid 情報を見つけることができません。また、lmgrd ライセンスマネージャも起動できません。
原因はこうした経緯で生じています。
さて、ここから解決方法を説明しますが、一番簡単な方法を説明します。
「Network Device Naming」の方法を昔の方法 eth0,eth1,...,ethX に戻す方法です。Fedora15 以降の新しい方法は biosdevname と言うモジュールで、
ハードウェアのポート名が naming されます。この biosdevname モジュールをシステムから削除することで、昔の naming style に戻ります(以下で述べる方法は、Fedora 17 で確認されています。Fedora 18は未確認ですが、同様な方法で可能かと思います。しかし、Fedora 19以降、Red Hat LE 7以降では、以下の方法だけでは eth0 ポート名が復活しません。この対策法に関しては、このページの後段で説明します。)
以下にその手順例を示します。
(1) この処理を行う前に、/etc/sysconfig/network-scripts配下に ifcfg-eth0 のファイルを作成することが必要です。デフォルトのインストールでは、ifcfg-em* と言ったファイルが存在するはずですので、ifcfg-em* を ifcfg-eth* に rename して下さい。その後、以下に述べる方法で、ファイルの中身を一部修正して下さい。
root@photon30 network-scripts]# pwd /etc/sysconfig/network-scripts [root@photon30 network-scripts]# ls ifcfg-eth0 ifdown-ippp ifdown-routes ifup-bnep ifup-isdn ifup-routes net.hotplug ifcfg-lo ifdown-ipv6 ifdown-sit ifup-eth ifup-plip ifup-sit network-functions ifdown ifdown-isdn ifdown-tunnel ifup-ippp ifup-plusb ifup-tunnel network-functions-ipv6 ifdown-bnep ifdown-post ifup ifup-ipv6 ifup-post ifup-wireless ifdown-eth ifdown-ppp ifup-aliases ifup-ipx ifup-ppp init.ipv6-global ifcfg-eth0 が存在すること。
(2) root 権限で biosdevname を削除
コマンド「yum remove biosdevname」を実行します。 [root@photon30 ~]# yum remove biosdevname 読み込んだプラグイン:fastestmirror, langpacks, presto, priorities, refresh-packagekit 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ biosdevname.x86_64 0:0.3.11-6.fc17 は 削除 です --> 依存性解決を終了しました。 依存性を解決しました ============================================================================================== Package アーキテクチャ バージョン リポジトリー 容量 ============================================================================================== 削除中: biosdevname x86_64 0.3.11-6.fc17 @anaconda-0 52 k トランザクションの要約 ============================================================================================== 削除 1 パッケージ インストール済み容量: 52 k これでいいですか? [y/N]y パッケージをダウンロードしています: トランザクションのチェックを実行してします。 トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています 削除中 : biosdevname-0.3.11-6.fc17.x86_64 1/1 検証中 : biosdevname-0.3.11-6.fc17.x86_64 1/1 削除しました: biosdevname.x86_64 0:0.3.11-6.fc17 完了しました! [root@photon30 ~]# reboot その後、以下のようになる。eth0 復活 [root@photon30 ~]# ifconfig -a eth0: flags=4163mtu 1500 inet 192.168.0.30 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::52e5:49ff:fe38:ca8a prefixlen 64 scopeid 0x20 ether 50:e5:49:38:ca:8a txqueuelen 1000 (Ethernet) RX packets 2062 bytes 591148 (577.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2669 bytes 221369 (216.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 45 base 0x2000 lo: flags=73 mtu 16436 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 118 bytes 7636 (7.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 118 bytes 7636 (7.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@photon30 ~]# route (ルーティングテーブルの確認 eth0) Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default photon0 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 現在のMACアドレスとポート名を確認 $ grep -H . /sys/class/net/*/address (以下は私のマシンの例) /sys/class/net/eth0/address:54:04:a6:15:1d:04 /sys/class/net/lo/address:00:00:00:00:00:00
もし、eth0が見えない場合は、eth0 の設定が適切に行われていないものと思います。 まず、ifcfg-eth0 ファイルの中身を確認して下さい。
● インタフェース定義ファイルの確認と修正の一例
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 以下の 0 や 1 の suffix を除去(suffix 番号がついていなければ、そのままで良い) HWADDR="00:0C:29:D1:2A:3A" DOMAIN="softek.co.jp" IPV6INIT="no" UUID="5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03" IPADDR0="192.168.1.5" ↓ IPADDR="192.168.1.5" DNS1="192.168.1.1" ↓ DNS="192.168.1.1" PREFIX0="24" ↓ PREFIX="24" DEFROUTE="yes" IPV4_FAILURE_FATAL="yes" NM_CONTROLLED="yes" BOOTPROTO="none" GATEWAY0="192.168.1.1" ↓ GATEWAY="192.168.1.1" DEVICE="eth0" TYPE="Ethernet" ONBOOT="yes" NAME="em0" ↓ NAME="eth0"
以下のファイルも確認して下さい。
● /etc/udev/rules.d/70-persistent-net.rulesを確認し、 NAME="em1" 等を NAME="eth0" に修正
[root@photon31 ~]# cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:04:a6:15:1d:04", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 上記の NAME="em1" を NAME="eth0"に変更。
以上のような方法で、eth0 ポートが復活したこと(ifconfigコマンド)を確認して下さい。
次に、すでに PGI のインストール(実装)は成功していますので、hostid だけを出力するコマンド(lmutil lmhostid) で、これを取得することができます。
(参考)
http://www.softek.co.jp/SPG/Pgi/keyissue.html#linux
PGI関係の環境変数PATHを設定してから lmutil を実行してください。
■ Fedora 19以降, Red Hat(CentOS,Scientific Linux) 7 の場合の対処法
GRUB_CMDLINE_LINUX="rd.md=0 rd.dm=0 rd.lvm.lv=fedora_muddy/root $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || rd.luks=0 vconsole.keymap=us rd.lvm.lv=fedora_muddy/swap rhgb quiet net.ifnames=0 biosdevname=0"
grub2-mkconfig -o /boot/grub2/grub.cfg