VMware vSphere Hypervisorがとても便利なので愛用しているのですが、いくつか不便な時があります。

例えばドライバの問題。

ネットワークアダプタやSCSIコントローラの「準仮想化」((vmxnet3とか))ドライバはカーネルに対してロードしているため、 カーネルのアップグレードをしてしまうと、それまで出来ていた通信やディスクへの読み書きが出来なくなってしまいます。 そんな時はわざわざ、コンソールを立ち上げて手動で修正しているのですが、 外出先((喫茶店とか))から作業するのに面倒なので、適当なワンライナーで解決?させてみた。

※事前に外付けディスクやNFS等を自動マウントする設定は外しておくこと

 # cp -p /etc/rc.d/rc.local /etc/rc.d/rc.local.org && \
 echo "/usr/sbin/vmware-tools-upgrader -p \"-d\" && \
 /bin/mv /etc/rc.d/rc.local.org /etc/rc.d/rc.local && \
 /sbin/shutdown -r now" >>  /etc/rc.d/rc.local && \
 shutdown -r now

やっつけでやってみたけど、意外と上手く動いている。 某クラウドも同じ手でカーネルアップグレード出来ないかなぁ。。。 →やってみたら出来ちゃったけど、規約でやっちゃいけない事になってるみたいだよ(´・ω・`)

やってる事

OS起動時に最初に実行されるコマンド群 /etc/rc.d/rc.local を /etc/rc.d/rc.local.org としてバックアップ

 cp -p /etc/rc.d/rc.local /etc/rc.d/rc.local.

OS起動時に実行したいコマンドを設定

  • VMwareのドライバ等をカーネルに対してインストールするコマンド
    • オプションの -p "-d" は「デフォルト設定でインストール」を明示し、インストール中断を抑止するおまじない
 /usr/sbin/vmware-tools-upgrader -p "-d"
  • 書き換えた rc.local をオリジナルに戻す
 /bin/mv /etc/rc.d/rc.local.org /etc/rc.d/rc.local
  • 再起動!
 /sbin/shutdown -r now

rc.local に書きこむ

 >>   /etc/rc.d/rc.local

再起動

 shutdown -r now

Comments