一台のPCに複数のOSをインストールして使い分ける場合、最も簡単で安全な方法は、一方のOSをシャットダウンしてからもう一方のOSを起動する方法だろう。しかし、この方法ではOSの終了と起動に数分間待たされることになるし、作業中の状態を一旦崩さなければならず、あまり便利ではない。ハイバネーションを利用すれば素早くOSを切り替えることが可能だが、これにはいくつかの注意点がある。


ここでは、ハードディスクが以下のように構成されていることを想定して話を進める。
| パーティション | hda1 | hda2 | hda3 | hda4 |
|---|---|---|---|---|
| ファイルシステム | NTFS | VFAT | LinuxSwap | ext3 |
| 種別 | WindowsXPのCドライブ | データ保存用 | Linux用のスワップパーティション | VineLinux3.0のルートパーティション |
ハイバネーションは、サスペンド・トゥ・ディスクとも呼ばれ、システムの実行中の状態をメインメモリから補助記憶装置(一般的にはハードディスク)に待避して電源を落とし、次に電源を投入したときにはこれを復元することでコンピュータの素早い終了と起動を可能にする。
Windowsでは休止状態と呼ばれ、[スタート]-[Windowsの終了](あるいは[シャットダウン])から選択できるはずだ。Linuxでは、ACPIとソフトウェアサスペンドに対応したカーネルが必要になる(VineLinux3.0ではデフォルトで対応。ディストリビューションによってはパッチ当てやカーネルの再構築が必要)。
Linuxでハイバネーションを実行するには、コマンドラインでecho 4 > /proc/acpi/sleepと打てばよい。実行中の状態をスワップパーティションに保存し、自動的に電源が落ちる。その後ブートセレクタでWindowsを選択し、起動できる。Windowsでは前述の様に[スタート]-[Windowsの終了]から休止状態を選択する。ここに見当たらない場合はコントロールパネルの電源管理関係の項目で休止状態が有効になっていることを確認する。電源が落ちたらブートセレクタで再びLinuxを起動すれば、高速なOS切り替えの快適さを体感できるだろう。
もともとMicrosoftとIntel、東芝によって推進されたACPIのサポートはLinuxではまだ発展途上なので、ハイバネーションで問題を発生することがある。正常にレジュームできないときは、USB周りが関わっている可能性が高い。この場合は、ハイバネーション前にカーネルモジュールehci-hcdとusb-ohci(あるいはusb-ehci)をアンロードしておく。ハイバネーション後にUSB機器を使うには再ロードする必要がある。これでも問題が解決しない場合は、外せるモジュールはできるだけアンロードして(特にUSB周りとPCMCIA関係)、様子を見る。
ハイバネーションした後、他方のOSをレジュームするために再び電源を投入するとき、電源断からの間隔が短いと、ハードウェアに負担をかけることがある。必ずPCの説明書を確認し、必要なだけ間をおいてから電源を投入する。
最後に、OSスワップで最も注意すべき点は、パーティションの扱いである。上記の構成では、hda2、VFATでフォーマットされたパーティションは、WindowsとLinuxの両方から読み書きできる。しかし、一方のOSで読み書きしているパーティションに、そのOSのハイバネーション中、他方のOSから書き込みを行うと、ファイルを失ったり、最悪の場合ファイルシステムが破壊されて全てのデータが消えてしまう可能性もある。このため、Windowsで読み書きするパーティションは、Linuxでは読み込み専用でマウントするよう、マウントオプションに気をつける。データの共有には外付けハードディスクなどを用い、ハイバネーション前に切断しておくとよい。