Vultr (クラウド) VM を Virtual Box VM に変換する

Vultr (クラウド) VM を Virtual Box VM に変換する

最近、Vultr VPS の DD イメージを自宅のコンピューターに転送しました。Debian VirtualBox VM を使用して新しい仮想ディスクを作成し、DD イメージをマウントし、DD イメージから新しい仮想ディスクにすべてのファイルを rsync しました。/etc/fstabルート ファイル システムの新しい UUID で編集し、/etc/networking/interfaces仮想ディスクの新しいインターフェイスで編集しました。その後、この VM から切り離しました。

まったく新しい VirtualBox VM を作成し、この新しく作成した仮想ディスクを接続して、起動できると想定しました。起動しません。黒い画面に点滅するカーソルが表示されるだけです。他には何も起こりません。/boot動作中の Debian VirtualBox VM から rsync を実行しました。それでも点滅するカーソルだけが表示されます。

私が見逃している明らかな点はありますか? 何かご意見はありますか? ご意見をありがとうございます。

答え1

がある。

ブート プロセスでファイル システムの概念が存在する前に、ファイル システムを理解できるコードを読み込む必要があります。これはブートローダーと呼ばれ、通常はディスクの最初の数セクターまたは特別な UEFI パーティション上の特別なフォルダーに配置されます。

あなたの場合、おそらく GRUB であり、新しいイメージにインストールする必要があります (繰り返しますが、ルート ファイル システムの外部に)。

リカバリ モードでライブ Linux システムから起動し、仮想ディスクに Grub を (再) インストールします。

答え2

@Eugen Rieck さんの回答のおかげで、動作するようになりました!

また、https://unix.stackexchange.com/questions/191218/how-to-install-grub-on-a-new-driveそして grub.cfg 内の間違った UUID を修正するにはどうすればよいですか?

ソリューション:

  • GParted Live を起動し、ターミナル セッションを実行しました。
  • sudo mount /dev/sda1 /mnt
  • sudo /mnt/usr/sbin/grub-install /dev/sda --skip-fs-probe --boot-directory=/mnt/boot
  • sudo sed -i 's/OLD-UUID/NEW-UUID/g' /mnt/boot/grub/grub.cfg(古い UUID は grub.cfg ファイルから取得しました。この UUID は複数回リストされているため、グローバルに に置き換えられていますsed。新しい UUID は から取得されますblkid。)

関連情報