web-dev-qa-db-ja.com

複製されたVM、OpenSUSE、VirtualBoxを使用できません

VMのクローンを作成しましたが、起動中に次のメッセージが表示されます。

Trying manual resume from /dev/sda1
Invoking userspace resume from /dev/sda1
resume: libgcrypt version: 1.5.0
Trying manual resume from /dev/sda1
invoking in-kernel resume from /dev/sda1
Waiting for device /dev/disk/by-id/ata-VBOX_HARDDISK_.....-part2 to appear: ...
Could not find /dev/disk/...-part2
Want me to fall back to /dev/disk/...-part2 (Y/n)

'Y'を押すと、失敗して再起動を試み、/ bin/shに戻ります。 'n'を押すと、すぐに/ bin/shに戻ります。

私はここで解決策を読みました: http://diggerpage.blogspot.com/2011/11/cannot-boot-opensuse-12-after-cloning.html しかし、私はその方法を理解していませんディスク上のファイルにアクセスして編集します/etc/fstabおよび/boot/grub/menu.lst

7
ivkremer

次の手順でシステムを起動できました。

1)システムが検出できないデバイスに注意してください。

2)その質問に「n」と答えます。コマンドプロンプトが表示されます。

3)次のコマンドを実行します:cd /dev/disk/by-id

4)次のコマンドを実行します:ls

5)このフォルダー内のすべてのファイルの名前を変更し、現在の名前を手順1でメモしたデバイスの名前に置き換えます。 mv ata-VBOX_OLDNAME....-part2 ata-VBOX_HARDDISK....-part2

6)この入力が完了したら、次のコマンドを入力します:exit

7)システムは正常に起動するはずです。

私はまだOpenSUSE11.4でこれがどのように起こるかを調べています。

9
Eazy-E

この問題は、SUSEがデフォルトで、ラベルやパスではなく名前でディスクを検索するようにGrubを設定しているために発生します。アプライアンスからVM)を作成すると、VirtualBoxは新しい名前で新しいディスクを作成し、Grubはブートディスクを見つけることができません。これを修正できました永続的に =によって:

  1. ファイルシステムをマウントできる別のマシンにセカンダリドライブとしてディスクを追加します。/media/hd2にマウントしました。

  2. /media/hd2/boot/grub/device.mapを編集し、ハードドライブへの名前によるパス/dev/disk/by-name/ata-VBOX....をパスによるパス/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0に置き換えます。

  3. /media/hd2/boot/grub/menu.lstを編集し、名前によるパスをパスによるパスに置き換えます。私の場合、パート1のパスをすべて/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part1に置き換え、パート2のパスを/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part2に置き換えることになりました。

私が使用したパスは、最初のハードディスクを指定します。別のハードディスク(または別のディスクタイプ)から起動する場合は、SUSEがパスをマップする方法を理解する必要があります。 SUSEが2台目のハードドライブをpci-0000:00:0d.0-scsi-1:0:0:0としてマウントすることがわかりました。

ハードドライブのバイパスを指定することは、場合によっては理想的ではないかもしれませんが、私が目指していたクイックフィックスには完全に機能しました。

3
heckerc

このエラーが発生し、etc/fstabおよびboot/grub /menu.lstでディスクの古いIDを新しいIDに置き換えることで解決しました。

  1. フォールバックの質問で「n」を押します。
  2. hdparm -i /dev/sdaを実行して新しいIDを取得します
  3. 受け入れられたソリューションで表現されているようにすべてのディスクの名前を変更し、ゲストを起動します。
  4. Rootおよびvi etc/fstabとしてターミナルを開き、表示されている場所で古いIDを新しいIDに置き換えます。保存して閉じます。
  5. vi boot/grub/menu.lstそして、表示されている場所で古いIDを新しいIDに置き換えます。保存して閉じます。
  6. リブート。

受け入れられたソリューションは、これが恒久的な修正である間、1回だけ機能します。それが役に立てば幸い!

1
Max Feulien

私は他の解決策を組み合わせてこの問題を解決しました。

起動のためだけに私がこれを行ったシステム:

  • ブートエラーメッセージが報告されたら、ブートプロシージャによって要求されたパーティションID(ID1など)をメモし、nと入力します。
  • cd /dev/disks
  • ls -lは、ディスクとパーティションへのリンク名の現在のIDを確認します(ID2など)。
  • ここで各リンクのコピーを作成し、上記で必要なIDでコピーの名前を変更します。

    mv ID2 ID1
    mv ID2-part1 ID1-part1
    ...
    

    例えば.

    mv scsi-12345676890abcdefgh0987654321 scsi-0987654321hgfedcba1234567890
    mv scsi-12345676890abcdefgh0987654321-part1 scsi-0987654321hgfedcba1234567890-part1
    ...
    
  • exit

システムが起動します。

これで、設定を変更できますこの問題が再び発生しないようにするため

  • ターミナルを開き、Sudo suでルートセッションに入ります
  • vi /etc/fstab
  • ディスクとパーティションへのすべての参照をID(/dev/disks/by-id/...)で/dev/...への参照に置き換えます(例:/dev/sda/dev/sda1...)
  • vi /boot/grub/menu.lst
  • このファイルでも同じことをします
0
bluish

Vshpere 5.1からssdに移行するときに、同じ問題が発生しました。

この問題は、仮想マシンがPataドライバーを使用し、initrdに物理ドライブをマウントするためのドライバーがないために発生します。小説FAQは、リカバリディスクを使用してドライブをマウントし、デバイスを/ mntの下にマウントしてから、sysprocおよびdevディレクトリをマウントする必要があるという答えがありました。

Mntにchrootすると、initrdを再作成できます。これにより、initrdシステムが再構築され、仮想インストールに仮想ドライブではなく、物理ドライブをマウントするために必要なドライバーが含まれます。詳細については、以下のリンクを参照してください。私の場合、suse studioからイメージをインストールし、それを実際のドライブに転送しました。動作するようになったら、vmwareツールを削除して起動時エラーを停止することを忘れないでください。 (yast-ソフトウェア-vmを検索します。

https://www.novell.com/support/kb/doc.php?id=700964

0
Tim