仮想ディスク、ブートローダーがありません。どうやって起動しますか?

仮想ディスク、ブートローダーがありません。どうやって起動しますか?

私は、3 つにパーティション化された HDD を搭載したネットブックを持っていました。パーティションの 1 つ (/dev/sda2 など) に Crunchbang Linux のインスタンスをインストールしました。これを 'dd' コマンド (dd if=/dev/sda2 of=<...>) を使用して外付け HDD にバックアップしました。

現在、そのネットブックのパーティション スキームを変更したため、イメージはより小さい新しいパーティションに収まらなくなりましたが、古いインスタンスのいくつかの構成ファイルを確認したかったので、生のバックアップを vmware (.vmdk) ファイルに変換し、VM を作成してインスタンスを起動することにしました。

しかし、その時点では、バックアップを忘れた別のパーティション (/dev/sda1) に /boot があったようです :(。現在、VMware インスタンスは、仮想ハード ディスク上でオペレーティング システムを見つけることができないため、起動しません。

何か解決策はありますか? 小さな仮想ディスクを作成し、VM 内に grub2 とカーネル イメージをインストールして、そこから起動できますか? 方法は? アイデアがあれば教えてください。

答え1

Crashbang Linux VMを作成し、そこからVMを起動し、VMDKまたは元のバックアップをセカンダリボリュームとしてマウントします。イメージを別のパーティションとしてマウントする方法については、VMWareユーザーガイドの7ページを参照してください。ここ

答え2

いくつかのファイルを検索するだけであれば、VM を必要とせずに、自分の Linux に .vmdk ファイルを簡単にマウントできます。

 losetup /dev/loop0 /path/to/your/file.vmdk
 losetup -o 32256 /dev/loop1 /dev/loop0
 mount /dev/loop1 /your/mount/point

トリックはオフセットにあります。この場合は32256です。これは最初のパーティションには有効ですが、最初のパーティションをマウントしたくない場合は、最初のコマンドの後に以下を使用する必要があります。fdiskループデバイス上:

 fdisk -l /dev/loop0

オフセットは、セクターあたりのバイト数とマウントするパーティションの開始点の積になります。

あなたもそれを起動したい場合は考える必要なのは、同じアーキテクチャの Crunchbang の他の実行中のインストールから /boot ディレクトリを古いイメージにコピーし、そのイメージに chroot して、grub を更新することだけです。これは、実行されていない Crunchbang VM のインスタンスから実行できます。新しいインスタンスのイメージを新しい vmdk ファイルに保存し、他のインスタンスと同じようにマウントし、新しいイメージから古いイメージに /boot をコピーし、古いイメージに chroot して、grub を更新するだけです。

関連情報