さくらのVPSでWindowsXPをネイティブに動かしてみた。
http://memo.masa23.info/index.php?%A4%B5%A4%AF%A4%E9%A4%CEVPS%A4%C7WindowsXP%A4%F2%A5%CD%A5%A4%A5%C6%A5%A3%A5%D6%A4%CB%C6%B0%A4%AB%A4%B7%A4%C6%A4%DF%A4%BF%A1%A3さくらのVPSでWindowsXPをネイティブに動かしてみた。 †
→ 結構無理やりです。
→ 結局時間ねーってことであきらめました。(おぃ)
でもどなたかのお役に?立てればということで残しておきます。
アプローチ †
シリアルコンソールが使えることを利用できるためそこそこ危険な作業ができる。
また、失敗したら数分でOS再インストールができるためスワップパーティションに
システムを移動し書き換える方向でアプローチ。
- 大まかな流れ
- / を /dev/hda2 から swap の /dev/hda3 に移す。
- KVMで/dev/hda2 に書きこむ WindowsXP のシステムファイルを作る。
- nfs で外部ディスクをマウントし、dd で書きこむ。
- grub 書き換えでめでたく起動?
実作業 †
システムパーティションの移動 †
初期では以下のようなパーティションになっています。
/dev/hda1 /boot 約100MB /dev/hda2 / 約18GB /dev/hda3 swap 約2GB
この2GBのswap領域に/dev/hda2の起動システムを移動させます。
- swapの自動マウントを外します。
# vi /etc/fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 #LABEL=SWAP-vda3 swap swap defaults 0 0
- マウントしなおします。
# mount -a (rebootしたほうが確実かも。)
- swapが外れていることを確認
# free total used free shared buffers cached Mem: 510532 219384 291148 0 13368 158864 -/+ buffers/cache: 47152 463380 Swap: 0 0 0 ↑ここが0になっていればOK
- fdiskでswapで切られているパーティションをLinuxのパーティションに変更
# fdisk /dev/hda t 3 83 w の順番にこたえる。(パーティション構成が違うと異なります。)
- Linuxパーティションに変更したパーティションをext3でフォーマット
# mkfs -t ext3 /dev/hda3
- シングルユーザーモードに移行 [[こちらを参照>]]
- ファイルシステムリードオンリーへ。
# mount -o remount,ro /
- /dev/hda3を/mntにマウント
# mount -t ext3 /dev/hda3 /mnt
- / を新しく作った/dev/hda3にコピー実施。
# for i in `ls | grep -Ev "^sys|^lost\+found|^dev|^proc|^boot|^mnt"`; do cp -pr /$i /mnt; done
- その他、必要ディレクトリを作成。
# mkdir /mnt/{mnt,sys,dev,proc,boot}
- fstabの/パーティションのディバイス書き換え
# vi /mnt/etc/fstab /を/dev/hda3に書き換え
- /dev/hda3を/として起動するようgrub.confの書き換え
# vi /boot/grub/grub.conf
- swap 2GBを起動ディスクに変更完了。
[root@wwwXXXXu ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda3 2.0G 1.8G 85M 96% / tmpfs 250M 0 250M 0% /dev/shm
WindowsXPのディスクイメージ作成 †
- 別途KVMを用意してイメージを作成します。
diskモードはide、NICはrtl8139として作成します。
〜この辺は長いので省略〜 - 完成したイメージをパーティションごと抜き出します。
# dd if=/dev/hda1 | gzip -c > ./WindowsXP.img
Windowsを書きこみます。 †
- /dev/hda3よりCentOSを起動させます。(grubで選択してね。)
- 起動ディスクを確認します。
# df -h
- nfsで外部のサーバをマウントし、イメージを取得できるようにします。
# mount -t ext3 XXX.XXX.XXX.XXX:/image /mnt
- /dev/hda2をntfsで使えるようパーティションIDを変更します。
# fdisk /dev/hda t 2 7 w の順番にこたえる。(パーティション構成が違うと異なります。)
- イメージを書きこみます。
# gzip -dc < /mnt/WindowsXP.img | dd of=/dev/hda2
- grubを書き換え、/dev/hda2よりWindowsXPが起動するよう書き換えます。
- VNCがこっそり使えるようになったみたいなので、
http://twitter.com/kunihirotanaka/status/22274561296
以上ですが・・・
全然詳細に書いてないので為になりませんね。
ついでにリモートデスクトップがつながることまでは確認できたんですが、
アクティベーションがかかるのか?ログインすると即ログアウトされてしまいます。
詳しい人教えて。
→ tomochaさんにsysgrepを使えば?といただいたので後日チャレンジ予定。
→ 試用期間終わっちゃいました。こんな中途半端なレポートですいませんorz
Last-modified: 2010-09-01 (水) 09:35:02 (2794d)