ためしてみた

さくらのVPSでWindowsXPをネイティブに動かしてみた。

 → 結構無理やりです。
 → 結局時間ねーってことであきらめました。(おぃ)
   でもどなたかのお役に?立てればということで残しておきます。

アプローチ

シリアルコンソールが使えることを利用できるためそこそこ危険な作業ができる。
また、失敗したら数分でOS再インストールができるためスワップパーティションに
システムを移動し書き換える方向でアプローチ。

  • 大まかな流れ
  1. / を /dev/hda2 から swap の /dev/hda3 に移す。
  2. KVMで/dev/hda2 に書きこむ WindowsXP のシステムファイルを作る。
  3. nfs で外部ディスクをマウントし、dd で書きこむ。
  4. 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が起動するよう書き換えます。

現状
before-login.png

以上ですが・・・
全然詳細に書いてないので為になりませんね。
ついでにリモートデスクトップがつながることまでは確認できたんですが、
アクティベーションがかかるのか?ログインすると即ログアウトされてしまいます。
詳しい人教えて。

→ tomochaさんにsysgrepを使えば?といただいたので後日チャレンジ予定。
 → 試用期間終わっちゃいました。こんな中途半端なレポートですいませんorz



トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-01 (水) 09:35:02 (2399d)