故障した Linux PC を VM として復活させるにはどうすればよいでしょうか?

故障した Linux PC を VM として復活させるにはどうすればよいでしょうか?

現在、Linux PC がマザーボードの故障により故障しています。ただし、ハードディスクはまだ動作しています。ディスクを別の Linux マシンに移植したところ、すべて読み取り可能であることがわかりました。

今、古い PC を VM として復活させたいと考えています。最初にディスクをイメージ ファイルに変換せずに、つまり既存のディスクで実行することは可能ですか? KVM と LXC のどちらがより良い選択かはまだわかりませんが、ホスト PC がかなり遅いので LXC を希望します。これは可能ですか? VM 展開に関する私の経験はかなり限られています...

ちなみに、どちらのコンピューターも Gentoo Linux を実行しています。

編集済み

今のところ、すべての回答をありがとうございます。問題を明確にするために、何らかの仮想マシンを実行するためにハードディスクが必要な主な理由は、古いコンピューターが小さな coda クラスターのメイン coda サーバーだったためです。データを「raw」の vice パーティションから (簡単に) 取り出すことはできないため、コンテナーを実行するのが最も簡単な方法かもしれません。ホスト コンピューターはハードウェア機能に関して非常に制限されているため、dd 経由でディスクをクローンするだけでは機能しません - 十分なスペースがない (!) (理由を聞かないでください :-/ - かなり奇妙な設定です)。さらに、古い PC は LVM も使用していました。ただし、さまざまなパーティションと LVM LV は、新しいホスト コンピューターに問題なくマウントできます - データはそこにあり、古いディスクを「ユーザーランド」(新しいカーネル、古いユーザーランド) として新しいホスト コンピューターを誤って起動したことさえあります - 機能したため、システムは非常に似ています。

LXC セットアップの魅力は、それほど多くのリソースを必要としないことです。欠点は、コンテナ内で CODA サーバーが適切に動作するかどうかわからないことです。そのため、完全な VM に配置する方が安全かもしれません。

答え1

VirtualBox を使用すると物理ハードドライブから起動することが可能です。マニュアル: ゲストからホストのハード ディスクを使用する

これについて、私はドイツ語のハウツーを書きました:デュアルブート Windows 仮想化物理的な Windows を起動することが主な目的ですが、Linux でも動作します。

あなたが行うべき主なポイント:

  • VirtualBox をインストールします。その後、グループのメンバーになっていることを確認してくださいvboxusers
  • 新しいハードディスクのデバイスファイルを見つける(例/dev/sdb
  • VirtualBoxでVMを作成するそれなし仮想ハードディスク(私はこう呼んでいますoldsys
  • ルートとして: 新しいハードディスクを指すvmdkファイルを作成する

VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/oldsys/oldsys.vmdk -rawdisk /dev/sdb

  • の所有者をoldsys.vmdkルートからあなたのものに変更します。

  • ディスクのrawアクセスを許可するudevルールを作成します。例:

    KERNEL=="sdb", OWNER="myusername", MODE="0600"

  • VirtualBox で、oldsys.vmdkVM oldsys の仮想 SATA コントローラーに接続します。

  • oldsys が EFI ブート システムである場合は、「system」の oldsys の VM 設定を「EFI をアクティブ化」に変更します。

  • 「IO-APIC」も有効にする必要があるかもしれません。

  • udevルールを有効にするために再起動する

  • VirtualBox で oldsys を実行します。問題なく起動するはずです。

答え2

ディスクイメージをキャプチャするには、ddrescueそして、そのイメージ ファイルを使用して VM のストレージをバックアップします。こうすることで、仮想化計画に問題が発生した場合でも、データのオリジナル コピーが失われるリスクを回避できます。

KVM は完全な OS を起動するので、間違いなく機能します。システムの類似性によっては、LXC も機能する可能性があります。LXC の主な制限は、コンテナー内で実行するものはすべてホストのカーネルを共有することです。KVM を使用すると、ゲスト内でカーネルを実行できます。データのコピーを操作するだけであれば、状況に最適な設定が見つかるまで実験しても問題ありません。

答え3

可能ですが、そのデータを大切にしている場合は、ディスクのバックアップを作成することをお勧めします。

ホスト PC の CPU が仮想化をサポートしている限り (Intel の場合は で確認grep vmx /proc/cpuinfo)、KVM によってゲストの速度が大幅に低下することはありません。

古いディスクが利用可能であると仮定すると、/dev/sde次のようなコマンドを使用できます (通常のユーザーとして)。

$ qemu-system-x86_64 -enable-kvm -drive file=/dev/sde,if=virtio,format=raw \
     -m 2048 \
     -net user,hostfwd=tcp::10022-:22 -net nic,model=virtio

これにより、2 GiB RAM を搭載した VM が起動します。-netオプションは、ゲスト sshd へのポート転送とゲスト ネット アクセス全般に関心がある場合にのみ必要です。

/dev/sde実際のディスクの代わりにイメージ ファイルを使用する場合は、そのイメージ ファイルのファイル名に置き換えるだけです。

答え4

私は VBoxManage を使用してこの問題を解決しました。基本的には、新しい VirtualBox VM を作成し、raw ディスクを交換して起動しました。

最初はネットワークを正しく設定するのに問題がありました (ホスト カーネルが VirtualBox ヘルパー カーネル モジュールに対して古すぎたため)。しかし、カーネルをアップグレードした後、ブリッジ ネットワーク接続が確立され、それ以降は非常にスムーズに進みました。

関連情報