iMac での Windows のスケジュール起動
品川 高廣†, 榮樂 英樹‡, 松原 克弥‡†東京大学 情報基盤センター‡株式会社イーゲル

shina@ecc.u-tokyo.ac.jp{hdk,matsu}@igel.co.jp

概要：東京大学情報基盤センターでは「教育用計算機システム」を運用しており、1,321 台の iMacが稼働している。これらの iMac において夜間にソフトウェア更新などのメンテナンス作業をおこなうためには、指定した時刻に iMac を自動的に起動する「スケジュール起動」を設定する必要がある。
しかし、iMac では Wake on LAN が使えないほか、iMac 上でユーザが Windows 使用してシャットダウンした場合には、スケジュール起動の設定が消去されてしまうという問題がある。本論文では、軽量ハイパーバイザである BitVisor を利用することで、iMac 上で Windows をシャットダウンした場合でもスケジュール起動を実現する手法について述べる。

1

はじめに

iMac 上で Windows をシャットダウンした状態

東京大学情報基盤センターでは、東京大学のからのスケジュール起動は簡単ではない。まず、学生及び教職員が教育・研究のために利用する

Windows にはスリープ状態や休止状態からスケ「 教 育 用 計 算 機 シ ス テ ム 」（ 以 下 、 ECCS =ジュール起動する仕組みは搭載されているものの、Educational Campuswide Computing System）

シャットダウンした状態からスケジュール起動すを 運 用 し て お り 、 2012 年 に 導 入 さ れ たる仕組みは搭載されていない（これ自体は規格にECCS2012 では 1,321 台の iMac が稼働している。

沿った挙動である）。PC などでは、BIOS の設定

これらの iMac は Mac OS X 10.7 及び Windows 7

画面などでスケジュール起動を設定できるものがのデュアルブート・システムとなっており、起動あるが、iMac のハードウェアには、そのような時に利用者が OS を選択して使用する。

設定画面は用意されていない。また、iMac のハ

各 iMac には Faronics 社の Deep Freeze が導ードウェア自体には標準的なスケジュール起動の入されており、稼働中にシステムに変更を加えて仕組みが備わっているが、Windows はシャットも再起動をすると元の状態に復元される。従ってダウン後の予期しない起動を防ぐために、シャッソフトウェア更新などのメンテナンス作業は、夜トダウン処理の途中においてスケジュール設定を間に iMac を起動して Deep Freeze を解除してか消去するようになっている。従って、Windowsら行っている。ECCS2012 では端末室を閉める時稼働中にハードウェアを直接操作したとしても、間に iMac を一斉にシャットダウンしているため、スケジュール起動の設定は出来ない。

夜間にメンテナンス作業を実施するためには、指本論文では、軽量ハイパーバイザである定した時刻に iMac を一斉に起動する「スケジュ

BitVisor[1][2] を 使 用 す る こ と で 、 iMac 上 でール起動」をおこなう必要がある。

Windows をシャットダウンした場合でもスケジ

しかし、現在稼働している iMac は Wake on

ュール起動を実現する手法について述べる。このLAN に対応しておらず、任意のタイミングで遠ハイパーバイザは、OS がハードウェアの電源を隔から起動することはできない。そこでOFF にするイベントのみを監視して、その直前

ECCS2012 では、Mac OS に搭載されているスケにスケジュール起動の設定をおこなう。これによジュール起動の仕組みを用いて、事前に指定したり、Windows の挙動に依存することなく、iMac時刻に自動起動するように設定している。しかし、のスケジュール起動を実現することが可能になる。

この方法は利用者が Mac OS のみを用いている場

このハイパーバイザは、複数の OS を動作させる合には機能するものの、利用者が Windows を起ことは目的としておらず、ハードウェアの仮想化動してからシャットダウンした場合には、スケジはほとんどおこなわない。従って、既存の OS のュール起動の設定が有効にならず、自動起動でき実行環境にほとんど影響を与えることなくハイパない端末が生じるという問題点がある。

ーバイザを導入することが可能である。

でアラーム機能を有効に設定すると、１ヶ月以内

番号機能範囲0Seconds

0-59

1

Seconds (Alarm)

0-59

呼ばれる場所で読み書き出来るようになっており、

2

Minutes0-59

0x70 番地に番号を設定すると、0x71 番地で値を3

Minutes (Alarm)

0-59読み書きすることができる。I/O アドレス空間は

4

Hours

0-23

OS カーネルが読み書きできる場所で、一般のアプ

5

Hours (Alarm)0-23

リケーションが直接読み書きすることは出来ない。

6

Day of the Week

1-7

7

Date of the Month1-31

8Month1-12

おこなうためには、起動後に OS で再度 RTC アラ

9Year

0-99ームを有効に設定する必要がある。なお、電源ボ…

…

13

Date (Alarm)の指定した日時に起動させることが出来る。
これらの値は、CPU からは I/O アドレス空間とiMac においては、スケジュール起動した後は、RTC アラームがいったん無効に設定されるようになっている。従って、再びスケジュール起動をタンを長押しすることによって電源を OFF にし1-31た場合は、スケジュール起動は無効になる。

2.2 Mac OS でのスケジュール起動
図１ Real-Time Clock (RTC) の内部情報

Mac OS X 10.7 では、システム環境設定 > 省
エネルギー > スケジュールとたどることでスケ

以下、2 章では iMac でのスケジュール起動のジュール起動を設定できる。また、pmset コマン仕組みについて述べる。3 章では、軽量ハイパードでも設定できる。例えば、以下のコマンドを実バイザである BitVisor について述べる。4 章では、

行すると、2013 年 12 月 18 日の 00:00:00 に Mac

BitVisor を用いたスケジュール起動の仕組みと性を起動することが出来る。

能実験の結果について述べ、5 章でまとめと今後$ pmset schedule wake "12/18/13 00:00:00"の予定を述べる。

2 スケジュール起動の仕組み
2.1 Real-Time Clock (RTC)
iMac には、通常の PC と同様に Real-TimeClock (RTC)と呼ばれる日付（年月日）や時刻（時Mac OS X では、スケジュール起動を設定するとスリープ状態や休止状態、電源 OFF 状態に移行する直前に RTC アラームに日時の情報を書き込むようになっている。すなわち、スリープ、休止、電源 OFF のいずれの状態からでも、設定した時刻分秒）の情報を管理するハードウェア・クロックに復帰して起動する。従って、ユーザが Mac OS Xが備わっている。RTC には、バッテリーが接続をシャットダウンした場合でも、事前に指定したされているため、電源が OFF の状態でも動作し時刻に iMac を起動させることが出来る。て、日付や時刻の情報を随時更新している。また、

2.3 Windows でのスケジュール起動

RTC アラームと呼ばれる機能を備えており、予Windows 7 では、コントロール・パネル > シ

め日付と時刻を設定しておくことで、スリープ状

ステムとセキュリティ > 管理ツール > タスク

態や休止状態、電源 OFF 状態から復帰して iMac

スケジューラで、スケジュール起動を設定できる。

本体を起動させることが出来る。

また、schtasks コマンドでも設定できる。

図１に RTC の内部に格納される情報を示す。

Windows では、スリープ状態や休止状態に移0, 2, 4 番には現在の時刻に関する情報が格納され行する前には RTC アラームに対して起動日時のており、6～9 番には現在の日付に関する情報が設定がされる。しかし、電源 OFF 状態に移行する格納されている。ソフトウェアからこの内容を読場合には RTC アラームの設定はされない。これ自み出すことで、現在の日時を取得できる。一方、体は、電源制御に関する仕様を定めた ACPI とい1, 3, 5 番にはアラームの時刻を設定する。アラーう規格に沿った挙動であり、電源 OFF からの復帰

ムの日付の場所はマシンごとに異なっており、は本来定義されていない動作である。そのため、

iMac では 13 番に日を指定するようになっている。

Windows でシャットダウンすると、スケジュール従って、1, 3, 5, 13 番に適切な値を書き込んだ上起動をすることが出来ない仕様になっている。

2.4 ECCS2012 での対応策

ゲスト OS

ECCS2012 では、ソフトウェア更新などのメ（Windows, Linux, Mac OS 等）

ンテナンス作業を夜間におこなうために、iMacを一斉に自動起動する必要がある。しかし、Windows においてシャットダウンされた iMac はハイパーバイザ

スケジュール起動が有効にならないため、一部の（BitVisor）

直接制御(一部監視・変換)

端末においてソフトウェアの更新が行われないという問題が生じる。

ハードウェア

そこで、ECCS2012 ではユーザが Windows で

図２：BitVisor のアーキテクチャはシャットダウンしないようにするために、メニ
ューからシャットダウンの項目を削除し、終了時には必ずいったん再起動して OS 選択画面からが出来る。BitVisor は通常の PC 上で動作し、Mac OS を選択してシャットダウンさせるようにWindows や Linux が実用的な速度で動作する。

している。OS 選択画面では Mac OS X が動作しまた、近日公開予定の最新版は Mac 上でも動作ているため、いったんこの画面に戻ればスケジュし、BitVisor 上で Mac OS X も動作する。

ール起動が正しく設定されるようになる。

3.2 BitVisor のアーキテクチャ

しかし、このシャットダウンの手順は通常のBitVisor は、セキュリティ向上を目的としていWindows とは異なるうえに手間がかかるため、ることから、その構造も非常にシンプルになるよユーザが戸惑う可能性がある。また、この手順でうに設計されている。図２に BitVisor の基本的なは Windows を再起動してから Mac OS でシャッアーキテクチャの概要を示す。具体的には、準パトダウンを選択するまでに 2 分程度の時間がかかススルー型というアーキテクチャを採用しており、ってしまうため、ユーザが待ちきれずに強制的に必要最小限のハードウェアのみ仮想化をおこなっ電源を切ったり、再起動したまま放置するなどのて、その他のハードウェアはゲスト OS が直接制事例が発生する可能性が高くなる。従って、操作御できるようにしている。これにより、ハイパー性、利便性、省電力などの観点から、Windowsバイザで仮想化しなければならないハードウェアから直接シャットダウンできるようにしつつも、を減らし、ソフトウェアのサイズを大幅に小さくiMac で夜間のスケジュール起動をおこなう手法することが出来る。具体的には、Xen や VMWareを実現することが望ましい。などのハードウェアと比べて、ソースコードのサ

3

軽量ハイパーバイザ「BitVisor」

イズは 10～20 分の 1 程度に抑えられている。
BitVisor はセキュア VM の機能である暗号化な

3.1 BitVisor の概要
BitVisor は、もともと平成 18 年度文部科学省どの機能を備えているが、これらの機能は選択的科学技術振興調整費による通称「セキュア VM」に OFF にすることが出来る。従って、全てのセプロジェクトで研究開発された純国産のハイパーキュリティ機能を OFF にすることにより、ハイバイザである。通常のハイパーバイザとは異なり、パーバイザは単に存在するだけで何もしない状態１台のマシンで複数の OS を同時に動作させるこにまで機能を削減することが可能である。とは目的としておらず、ハイパーバイザのレイヤ

4

BitVisor によるスケジュール起動から OS のセキュリティを向上させることを目的

Windows でシャットダウンされた iMac をスケとしている。具体的には、ストレージやネットワジュール起動出来ないという問題に対処するため

ークの暗号化、IC カードによる認証などの機能に、BitVisor を用いてスケジュール起動の設定をを実現している。

おこなう。具体的には、2 章で述べたように、

BitVisor は、バージョン 1.0 が 2009 年 3 月に

RTC アラームの 1, 3, 5, 13 番に日時の情報を書き公開され、その後 1.1, 1.2 を経てバージョン 1.3込んだ上で、RTC アラームを有効にするためのが 2012 年 9 月に公開されている。BitVisor は設定をおこなう。ハイパーバイザは OS より高い

BSD ライセンスのオープンソースで公開されて権限を持っており、ハードウェアに直接アクセスおり、商用・非商用を問わず自由に利用することしてこれらの情報を書き込むことが出来る。

スケジュールRTC アラーム無効化

OS 起動

起動・再起動（iMac）（Windows or Mac OS）

シャットダウン開始

RTC アラーム消去

RTC アラーム設定

電源 OFF（Windows）（Windows）（BitVisor）（Windows）

シャットダウン開始

RTC アラーム設定

電源 OFF（Mac OS）（Mac OS）（Mac OS）

図３：スケジュール起動設定のタイミング
図３に BitVisor を用いてスケジュール起動を5まとめと今後設定するタイミングを示す。iMac のハードウェ

本論文では、iMac 上で Windows をシャットダアが起動した際には、いったん RTC アラームのウンした場合でもスケジュール起動を実現するた設定が無効に設定される。従って、OS が起動すめに、BitVisor というハイパーバイザを利用するるたびに RTC アラームを有効に設定し直す必要ことでスケジュール起動を設定する手法についてがある。OS の稼働中に RTC アラームを設定した述べた。Windows のシャットダウン処理の途中

場合、Windows ではシャットダウン処理の途中で RTC アラームの設定が消去された後、電源がで RTC アラームが消去されてしまうため、スケ

OFF に な る 直 前 に RTC ア ラ ー ム の 設 定 をジュール起動が有効にならない。従って、BitVisor でおこなうことで、OS に依存することWindows の シ ャットダウン処 理が始まって、なく確実にスケジュール起動を設定する事ができRTC アラームの消去処理が行なわれた後に RTCる。これにより、Mac OS と Windows のデュアラームを設定する必要がある。

アルブート環境においても、iMac 端末の夜間メ

そこで、まず BitVisor を用いて電源が OFF になる瞬間のイベントを検出する。電源を OFF にンテナンスのためのスケジュール起動を確実に行うことが出来るようになる。

する方法は ACPI という規格に沿って定められた今後は最適化を行ってオーバーヘッドを限り手順でおこなわれる。従って、BitVisor の起動時なくゼロに近づけるとともに、ECCS2012 環境でに電源を OFF にする方法を検出しておく。具体の導入試験をおこなっていく予定である。

的には、iMac においては I/O アドレス空間の参考文献0x404 番地に適切な値を書き込むとシャットダウ[1]ンされる。そこでこの番地へのアクセスを監視しておき、実際に値が書き込まれる直前に RTC ア
ラームにスケジュール起動する日時を設定して、RTC アラームを有効にするための設定を行う。
BitVisor は通常時は何もする必要がないが、現在は最適化が不十分なため、不必要な処理ためのオーバーヘッドがかかっている。PCMark というベンチマークソフトを用いた予備的な実験では、BitVisor を 動 作 さ せ な い 通 常 の iMac 上 のWindows 7 でのスコアは 4182 であったのに対し、BitVisor を動作させた場合は 3801 であり、10%程度のオーバーヘッドがかかっている。

Takahiro Shinagawa, Hideki Eiraku,
Kouichi Tanimoto, Kazumasa Omote,Shoichi Hasegawa, Takashi Horie, Manabu
Hirano, Kenichi Kourai, Yoshihiro Oyama,Eiji Kawai, Kenji Kono, Shigeru Chiba,
Yasushi Shinjo and Kazuhiko Kato,「BitVisor: A Thin Hypervisor for Enforcing
I/O Device Security」, In Proceedings of the2009 ACM SIGPLAN/SIGOPS International
Conferenceon
VirtualExecution
Environments (VEE 2009), pp. 121-130, Mar.
2009.
[2] BitVisor. http://www.bitvisor.org/