VirtualBox VDIコンテンツをパーティションにコピーし、そこからOSをデュアルブートする方法は?


12

私はLinuxユーザーですが、何かをするためにWindowsが絶対に必要な場合のために、圧縮されたWindows XP ISOをペンドライブに保管しています。これはほとんどの場合VirtualBoxで機能します。

しかし、今はいくつかのゲームをプレイしたいので、Windowsイメージをネイティブに実行したいと思います。私のコンピューターにはCDドライブがないため、ISOを焼き付けて正常にインストールすることはできません。

私がやろうとしているのは、インストールされているWindowsイメージをHDDの物理NTFSパーティションに移動し、デュアルブートできるようにGRUBを設定することです。

物理ドライブへのVDIの作成に関する多くのチュートリアルを見つけました。しかし、彼らは私がドライブ全体を上書きしたいと考えています。rawディスクイメージをddパーティションに移動すると、パーティションが破損しました。

また、空のパーティションを使用してWindowsをインストールするVMDKトリックも試しました。インストールのテキストモードフェーズは問題​​なく終了しますが、VMは動作せず、クラッシュして再起動を続けるか、ただちにフリーズします(VMDKの作成方法によって、-rawdisk /dev/sda3またはで-rawdisk /dev/sda -partition 3)。

回答:


4

昨日すべてを研究に費やし、ようやくWindows XPを起動することができました。他のOSも同様です。しかし、操作はすべてですが、些細なことではありません。

これは危険な操作なので、貴重なデータをバックアップすることをお勧めします。

手順は次のとおりです。

準備

Windows XPの場合、現在のディスク文字とパーティションの設定を忘れるようにする必要があるため、移行前に仮想マシンのHKEY_LOCAL_MACHINE / MountedDevicesキーからすべての値を消去する必要があります。カーネルは、次回の再起動時にそれを再構築します。Linux仮想マシンでは、これは移行後にfstabを修正することを意味します。

VDIイメージのマウント

MBRも含まれているため、VDI全体をパーティションにコピーすることはできません。仮想パーティションのみをコピーする必要があるため、最初にVDIをマウントする方法を見つける必要があります。

nbdドライバーとqemu-nbdコマンドが必要です。Ubuntuでは、qemu-kvmパッケージに含まれています。

最初にnbdドライバーをロードします。

# modprobe nbd

これにより、いくつかのnbdデバイスがになり/devます。

次に、VDIをマウントします。

# qemu-nbd -c /dev/nbd0 path_to.vdi

これにより/dev/nbd0p1、すべての仮想パーティションに対して/dev/nbd0p2/dev/nbd0p3などが作成されます。これらは、通常のデバイスと同様に取り付けることができます。

パーティションの移行

ddそのために使用し、操作の前に両方のパーティションをアンマウントします。

# dd -if=<nbd_device> -of=<real_partition>

例えば。:

# dd -if=/dev/nbd0p3 -of=/dev/sda4

の動作ddはサイレントで、これには数分、さらには30分かかる場合があります。操作中に端末を開いて、fdisk -lすべてを確認するために使用できます。

更新:

どうやらnbdは絶対確実な解決策ではないようです。I / Oエラーが発生し、ddが失敗する場合があります。さらに、次の試行はすぐに失敗します。次のコマンドを使用してrawディスクVMDKを作成することもできます(Linuxの場合):

$ VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sda

diskそれを機能させるには、グループに参加する必要があります。次に、このvmdkをセカンダリハードドライブとして仮想マシンに追加してから、ライブLinux ISOをddパーティションに使用します。

NTFSパーティションのブートセクターの修正

これはハッキングの部分です。

準備はほぼ整っていますが、ファイルシステムの非表示セクターの数をoffsetに設定する必要があるため、Windows XPは起動しません0x1C。これは基本的にNTFSパーティションの前のいくつかのセクターです。この番号はfdisk -ulコマンドから取得できます。start出力のフィールドには、特定のパーティションが開始するセクターが示されます。これは、基本的にパーティションの前のセクターの数です。そこから番号を取得し、たとえばgcalctoolを使用して16進数に変換します。

次のhexeditように、パーティションを開きます:

# hexedit /dev/sda4

次に、1Cオフセットでリトルエンディアンの順序で隠しセクターの数を書き込みます。リトルendiean手段は:0xABCDEFGHとなりますGH EF CD AB。ヘキサ番号が8桁より短い場合は、ゼロの前に付けます。

完了したら、保存して終了します(Ctrl + X)。

GRUBのセットアップ

GRUBにそのパーティションを直接起動するように指示する必要があります。GRUBには次のメニューエントリを追加します。

title       Microsoft Windows XP Professional
root        (hd0,3)
savedefault
makeactive
chainloader +1

(hdX, Y)パーティションを識別する場所。Xはデフォルトのハードディスクでは0、1は/dev/sda、2は/dev/sdbなどです。Yはパーティション番号です。0 /dev/sda1、1 /dev/sda2等、

これはGRUB2でも同様ですが、メニューエントリには少し異なる構文を使用します。

最後の仕上げ

新しいNTFSパーティションを起動する準備ができました。ただし、Windows XPデスクトップに到達するにはまだハッキングが必要です。他のシステムでは異なるハッキングが必要になる場合があります。まず、boot.iniを修正する必要があります。

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

それに応じてパーティション番号を設定します。/ dev / sda4にインストールしました。したがって、パーティション番号は3でなければなりません。

ログオン画面の直前にWindowsがフリーズする場合は、レジストリのMountedDevicesエントリを修正する必要があります。

レジストリはで<path to windows>/system32/config/system表示できますchntpw。システムのドライブ文字がCでない場合、これは問題になる可能性があります。chntpwレジストリの書き込み機能はかなり制限されているため、フォールバックし、ghex2などのhexeditorを使用して修正する必要があります。私の場合\DosDevices\C:、C を見つけて別のドライブ文字に置き換える必要がありますF

これらの後、デスクトップに到達できるはずです。すべてのドライバーを探す必要がありますが、これはこのチュートリアルの範囲外です。

ソース

Windows XPを別のパーティションに移動する

LinuxでVDIをマウントする


0

partimageとgdiskを使用して試してみてください。gdiskまたは別のパーティションプログラムを使用して、現在のディスクのサイズを変更するか、ディスクのどこかにパーティションを設定します。理想的には、プライマリパーティションになります。私は通常、Windows用のパーティション1とLinuxデータ用の2+を保持します。

パーティションを設定したら、gdiskまたは別のゴーストクローンを使用して、他のドライブにバックアップファイルまたはストレートイメージを作成できます。ファイルをそのままドロップする必要がある場合、またはimgファイルを作成してからvmdkファイルからホストシステムにコピーする必要がある場合は、ホストへのネットワーク接続をセットアップできます。その後、イメージソフトウェアを使用してパーティションを復元しますホストシステムで作成した場所へ

必要に応じてgrubを構成して、そのntfsパーティションにブートを追加します。


また、イメージソフトウェアがホストjsutから直接読み取ることができるように、イメージソフトウェアがどのようにあるかに依存する方法でvmdkを口にすることもできます。
ケンドリック

昨日すべてを研究に費やし、ついにWindows XPを起動できるようになりました。詳細に書き留めます。些細なことではありません。
カルマリウス

皮肉なことですが、すぐにこのプロセスを行う必要があります。何らかの理由でsolarisのインストールを好まないPCがあるため、vmから新しいマシンにデータをプルする必要があります。
ケンドリック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.