wiki:LinuxOnLinuxQEMU

Linuxの上で同じOSを動かす

うまいタイトルが書けません。 「Linuxの上で同じOSを動かす」だと、「あー、それは、QEMUでしょ」で終わっちゃいます。 もちろん、それだけの話ではなくて、ちょっとだけ、ちょっとだけ毛の生えた話。

Linuxで構成したマシンがあるとき、その同じ構成のLinuxを、QEMUの上で動かします。 いや、説明になってないな。日本語は難しい。 ま、GRUBがコケる話で悩んでるとき、いちいち再起動してるとそのたびにサービスが止まってしまうのが困るので、編み出した技です。

% sudo bash
# ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 2008-01-18 22:18 /dev/sda
# chmod 664 /dev/sda
# exit
% groups
users cdrom
% qemu -snapshot -curses -hda /dev/sda -m 128

qemuコマンドには「-snapshot」オプションをつけました。 これにより、ドライブに書き込まずに動作します。書き込もうとした内容は別の一時ファイルに保存され、qemuを終了すると消えて無くなります。 groupsコマンドで、diskグループに所属してないことを確認しています。 さもないと、ちょっとしたミスで「-snapshot」オプションをつけ忘れたときに、とても悲しいことが起きます。

-curses」オプションをつけると、SSHなどの文字端末上で動かすことができます。 この機能は非公式パッチのようですね。どうも、「-nographic」オプションの時に使用できる「^Aエスケープ」が効きません。 「-monitor」オプションによって管理コンソールを別の端末の上で動かすか、終了させたい時に別の端末からkillする必要があります。 あるいは、QEMU上のゲストマシンの電源を切れば、勝手に終了します(たいていは)。

後片付けを忘れずに。

% sudo bash
# chmod 660 /dev/sda
# exit
%

(2008/1/21 - sgk)