もう一度言うが、私の他の情報源(主にGoogle ;-))があまり役に立ちませんでしたので、私はここSuperUserの専門家に頼らなければなりません...
そのため、基本的には、物理ディスクのVHDイメージを作成して、アーカイブ/アクセス/仮想マシンにマウントすることさえできます。今、Web上でそれを行う方法についての記事やチュートリアルがたくさんありますが、私が達成したい条件を正確に満たすものはありません。
disk2vhd
ユーティリティを使用できますが、解決しない解決策を見つけたいと思います。 Windows XPをインストールするために起動する必要はありません(つまり、ディスクを読み取り専用にします)。しかし、私が遭遇したすべての解決策は、disk2vhd
を使用するか、linuxの下でdd
コマンドを使用することです。これはディスクの完全なコピーを作成し(空のブロックでさえ)、VHDファイルを出力しません。直接VHDファイルを作成することができますLinuxの下のツール/プログラムはありますか?それとも、空のブロックにスペースを割り当てずに、ddを使用して作成されたrawディスクイメージをVHDファイルに変換することは可能ですか?どうしますか?
いつものように、アドバイスやコメントは大歓迎です!
今後の参考のために、さまざまな問題や落とし穴に関するいくつかのコメントを付けて、私が最後に進めた方法を次に示します。
最初のステップは、Linuxライブシステムを使用して、イメージを作成するためにディスクを含むマシンを起動することでした。
注:私の最初のアイデアはUbuntu Live USBディスクを使用することでしたが、マシンはUSBからの起動をサポートしていなかったので、古いKnoppixライブCDを使用する方が簡単です。
dd
を使用してディスクをイメージし、ssh
を介してデータをパイプします。次に、dd
を使用し、ssh
を介してデータをパイプ処理して、すべてのディスクの内容をローカルサーバー上のファイルイメージにコピーしました。
$ dd if =/dev/hdX bs = 4k conv = noerror、sync | ssh -c blowfish myuser @ myserver 'dd of = myfile.dd'
ここでいくつかコメントします。この方法ではすべてのディスクの内容が読み取られるため、非常に時間がかかる可能性があります(80 GBのディスクでは5時間かかりました)。ボトルネックはネットワークではなく、実際にはディスクの読み取り速度です。コピーを開始する前に、BIOS /ディスク/システムパラメータをチェックして、ディスクとマザーボードが最高速度で動作していることを確認することをお勧めします(これはコマンドhdparm -i
を使用し、hdparm -Tt /dev/hdX
でテストを実行して確認できます)。
注:dd
は操作の進行状況を出力しませんが、他の端末からUSR1シグナルをdd
プロセスPIDに送信することで強制的に出力することができます。
$ kill -USR1PIDofdd
この時点で、ソースマシンはもはや必要ではなく、我々はターゲットサーバ(Linuxも同様に実行している)上で排他的に作業します。 VirtualBoxはrawディスクイメージをVHD形式に変換するために使用されますが、変換する前にVirtualBoxが最終ファイルでそれらの領域を割り当てないように未使用ブロックを消去できます。
そうするために、私はループバックデバイスとしてイメージをマウントしました:
$ mount -o loop,rw,offset=26608813056 -t ntfs-3g /mnt/mydisk/myfile.dd /mnt/tmp_mnt
$ cat /dev/zero > zero.file
$ rm zero.file
注:ディスクイメージ内のパーティションの先頭を示すオフセットは、イメージファイルでparted
を使用して取得できます。
$ parted /mnt/mydisk/myfile.dd
(parted) unit
Unit? [compact]? B
(parted) print
Model: (file)
Disk /mnt/mydisk/myfile.dd: 80026361856B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32256B 21936821759B 21936789504B primary ntfs boot
2 21936821760B 80023749119B 58086927360B extended lba
5 26608813056B 80023749119B 53414936064B logical ntfs
注2:デフォルトのLinuxカーネルNTFSドライバは読み取り専用アクセスを提供します。そのため、ユーザ空間のntfs-3g
ドライバをインストールして使用する必要があります。そうしないと、ディスクに書き込むとエラーが発生します。
この時点で、VirtualBoxユーティリティを使用して生の画像をVHDファイルに変換できます。
VBoxManage convertfromraw myfile.dd myfile.vhd --format VHD
私はOPと全く同じことをしようとしていました(Windowsインストールを救助しながら)そしてそれのために新しいツールを作成することになった ntfsclone2vhd
.
あなたはそれから単にこのような何かをするでしょう:
ntfsclone --save-image -o - /dev/sdXX | ntfsclone2vhd - /mnt/usb/output.vhd
1つの方法は、VirtualBoxとntfsprogs
パッケージという便利なテクノロジをいくつか使用することです。
VirtualBoxの最近のバージョンではVHDハードディスクファイルを作成することができますが、ntfsprogs
はntfsclone
ユーティリティを提供します。その名前が示すように、ntfsclone
はNTFSファイルシステムを複製します、そして私はそれがファイルシステムレベルでそれをすると思います、未使用のディスクブロックをスキップします。
そのため、まず始めにVirtualBoxで新しいVMを作成し、それに新しい空のVHDファイルドライブをプロビジョニングします。 VHDドライブは、クローンを作成する物理ドライブで使用されているデータのサイズと同じ大きさである必要があります(実際には、少し余裕を持たせるために、もう少し大きくしてください)。
次に、ntfsprogs
パッケージとopenssh-server
を含むLinuxライブCDを見つけます。私は System Rescue CD が好きですが、ほとんどのDebianやUbuntuベースのライブCDも同様に動作するはずです。
LinuxのライブCDでVirtualBox VMを起動し、VM内でsshd
を起動して、リモートでコマンドを実行できるようにします。空のVHDドライブを好きなようにパーティション分割ツールを使って適切にパーティション分割します(私は普通のfdisk
が好きですが、私はやや古い学校です)。
LinuxのライブCDをもう1枚コピーして、クローンを作成する物理ディスクを含むマシンを起動します。 VirtualBox VMとこのマシンはネットワーク経由でアクセス可能であるとします。このマシン上で、以下のコマンドを実行します(すべて1行で)。
ntfsclone --save-image -o - /dev/sdXX |
ssh root@VirtualBox-VM 'ntfsclone --restore-image --overwrite /dev/sdYY -'
ここで、
/dev/sdXX
はクローンを作成したい物理ドライブの(ローカルマシン上の)デバイス名です。/dev/sdYY
は、VHDコピー先ドライブの(VM内の)デバイス名です。説明:パイプライン内の最初のntfsclone
コマンドがソースNTFSファイルシステムのイメージを抽出してsshトンネルを介して送信し、2番目のntfsclone
コマンドがそのイメージを受信してVHDドライブに復元します。
操作が完了すると、VHDファイルに元の物理ディスクのファイルごとの正確なクローンが作成されます(不良セクタなど、プロセスが途中で中断される可能性があるハードウェアエラーを排除します)。
クローン作成で問題が発生しなかったことを確認するために、VHDドライブでWindowsのchkdsk
を実行することが最後に必要な作業が1つあります。 。
(私はこれが古い記事であることを知っていますが、多分これは少なくとも他の人を助けるでしょう。)
あなたは本当にLinuxの下でイメージを作成することができる必要がありますか?私はあなたがWindowsのハードドライブをVHDにバックアップしようとしていると思います。 LinuxファイルシステムをVHDコンテナにカプセル化できるとは思わない。
Disk2vhd と呼ばれる無料 SysInternals ユーティリティは、現在実行中のWindows XPまたはそれ以降のシステムのVHDを作成します。これはUSBマウントドライブのイメージングにも有効です。
窓付きのライブCDを使用することもできます。これはMicrosoftの公式ではありませんが動作します。あなたはCDやUSBドライブにそれを置くことができます。
私は最近ライブLinuxシステムのクローンを作成しようとしています。
まだ完璧な解決策はありません。 2つの方法を提案します。
(1)VMware vConverter(無料)
インストール先としてvsphere hypervisor(無料)をインストールする必要があります。
私はこの日前にやった、成功する運がない。 VirtualBoxにvSphereをインストールすると思います。
ここに参照してください。 http://xrubenx.blogspot.com.au/2010/01/vmware-converter-standalone.html
(2)これを使う http://www.r1soft.com/tools/linux-hot-copy/
今週末にR1Softのホットコピーを試します。