チケット #29191

USBメモリにVMMとGRUBを書き込んでみたところ、panic

登録: 2012-08-07 15:56 最終更新: 2013-11-23 19:19

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
動いてるけど?
ファイル:
なし

詳細

次の手順で、USBメモリにVMMとGRUBを書き込みました。

# fdisk /dev/sdd

64MBのパーティションを1つ、残りの領域を全て割り当てたパーティションを1つ作成します。 「残りの領域を全て割り当てたパーティション」にはブートフラグを付けます。

以下は p コマンドでパーティションテーブルを表示させた結果です。

Disk /dev/sdd: 1006 MB, 1006108672 bytes
31 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 1922 * 512 = 984064 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5a2d6305

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1          69       66278   83  Linux
/dev/sdd2   *          70        1022      915833   83  Linux

以下は x コマンドを入力してメニューを切り替えたのち、p コマンドでパーティションテーブルを表示させた結果です。

Disk /dev/sdd: 31 heads, 62 sectors, 1022 cylinders

Nr AF  Hd Sec  Cyl  Hd Sec  Cyl     Start      Size ID
 1 00   1   1    0  30  62   68         62     132556 83
 2 80   0   1   69  30  62 1021     132618    1831666 83
 3 00   0   0    0   0   0    0          0          0 00
 4 00   0   0    0   0   0    0          0          0 00
# mke2fs -j /dev/sdd2
# mount /dev/sdd2 /mnt/tmp1
# grub-install --force --no-floppy --root-directory=/mnt/tmp1/ /dev/sdd2
# vi /mnt/tmp1/boot/grub/grub.cfg

ファイルの中身は次の通りです。

menuentry 'Chain Load' {
        set root='(hd1)'
        chainloader +1
}
# umount /mnt/tmp1

次のコマンドで VMM を USB メモリに書き込みます。

./install_to_usb.sh -f -i 62 -c 'vm0.boot_partition' /dev/sdd

2回目以降は、-f オプションは不要です。

./install_to_usb.sh -i 62 -c 'vm0.boot_partition' /dev/sdd

以上の手順で書き込んだUSBメモリをPCに挿入して起動を試みたところ、次のメッセージが出力されて panic しました。

Starting a virtual machine.
CPU0 panic : Unimplemented exception in real mode: 0x06 Invalid Opcode Exception (#UD)

VMM state of CPU0---- --------------------------
RAX 00000031    RCX 00000000    RDX 00000000    RBX 40146AC0
RSP 4031FB50    RBP 4031FDA0    RSI 00000001    RDI 00000000
R8  4011E9C0    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 4031FDB0    R14 800000F259    R15 00000000
CR0 80000039    CR2 00000000    CR3 C794F000    CR4 00002660
RFLAGS 00000006  GDTR 402ECDA0+0000FFFF  IDTR 401A0560+0000FFFF
backtrace:
    0x4031fb48: 0x4011cd17
    0x4031fda8: 0x4011d491
    0x4031fe08: 0x4012d536
    0x4031fe58: 0x4012db85
    0x4031ff98: 0x401183e3
    0x4031ffc8: 0x4012616d
    0x4031fff8: 0x0
------------------------------------------------
Guest state of CPU0 ----------------------------
RAX 00027C00    RCX 00000001    RDX 00000080    RBX 0000990B
RSP 00000802    RBP 0000FFFF    RSI 000008DC    RDI 0000FFD0
R8  00000000    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 00000000    R14 00000000    R15 00000000
CR0 00000010    CR2 00000000    CR3 00000000    CR4 00000000
ACR   ES 000000F3 CS 000000F3 SS 000000F3 DS 000000F3 FS 000000F3 GS 000000F3
LIMIT ES 0000FFFF CS 0000FFFF SS 0000FFFF DS 0000FFFF FS 0000FFFF GS 0000FFFF
BASE  ES 00000000 CS 00000000 SS 00000000 DS 00000000 FS 00000000 GS 00000000
SEL   ES 00000000 CS 00000000 SS 00000000 DS 00000000 FS 00000000 GS 00000000
RIP 00007C28  RFLAGS 00010296  GDTR 402ECDA0+000000FF  IDTR 00000000+000003FF
EFER 00000000
Exit reason: 0x0 (Exception or NMI)
Exit qualification 00000000 Exit intr info 80000306
Exit intr errcode 0000e378 VMCS IDTR 00000000+00000000 VMCS RFLAGS 00030296
pe=0 pg=0 sw:en=0x0 es=0x0 cs=0x0 ss=0x0 ds=0x0 fs=0x0 gs=0x0
------------------------------------------------

画面には次のメッセージが出力されました。

Starting a virtual machine.
Loading MBR.

障害発生リビジョン: r55

チケットの履歴 (7 件中 3 件表示)

2012-08-07 15:56 更新者: yuichi_xy
  • 新しいチケット "USBメモリにVMMとGRUBを書き込んでみたところ、panic" が作成されました
2012-08-07 15:59 更新者: yuichi_xy
コメント

GRUBが読み込まれるはずの7c00を見ると、最初の2バイトが10 00であり、GRUBはeb 63であることから、GRUBがロードされていないようです。

debug> Dp 7c00
00007C00  10 00 00 00 00 80 00 00-4D 1B 00 00 00 00 00 00   ........M.......
00007C10  10 7C 10 7C 00 00 34 00-FF FF 00 00 00 9B CF 00   .|.|..4.........
00007C20  FF FF 00 00 00 93 8F 00-FF FF 00 00 00 9B 00 00   ................
00007C30  FF FF 00 00 00 93 00 00-FA 0E 1F 0E 17 BC FC 7F   ................
00007C40  89 E5 E4 92 0C 02 E6 92-66 8D 36 00 7C 66 8B 4C   ........f.6.|f.L
00007C50  04 66 51 66 8D 5C 10 66-FF 77 04 66 FF 37 89 1F   .fQf.\.f.w.f.7..
00007C60  66 89 5F 02 BB FF 01 66-01 D9 66 BF 00 00 10 00   f._....f..f.....
00007C70  66 57 66 B8 4C 6F 61 64-E8 A4 00 66 C1 E9 09 74   fWf.Load...f...t
2012-08-07 21:37 更新者: yuichi_xy
  • 詳細が更新されました
2012-08-12 14:36 更新者: yuichi_xy
コメント

r59 で再現評価をしたところ、panic発生時のRIPが変化しました。

CPU0 panic : Unimplemented exception in real mode: 0x06 Invalid Opcode Exception (#UD)

VMM state of CPU0---- --------------------------
RAX 00000031    RCX 00000CC9    RDX 00000002    RBX 40146910
RSP 4031FB40    RBP 4031FDA0    RSI 00000000    RDI 00000000
R8  4011DE50    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 4031FDB0    R14 00000000    R15 00000000
CR0 80000039    CR2 00000000    CR3 C7953000    CR4 00002660
RFLAGS 00000002  GDTR 402EEDA0+0000FFFF  IDTR 401A2560+0000FFFF
backtrace:
    0x4031fb38: 0x4011c6f4
    0x4031fda8: 0x4011c881
    0x4031fe08: 0x4012c9f6
    0x4031fe58: 0x4012d045
    0x4031ff98: 0x40117623
    0x4031ffc8: 0x40125226
    0x4031fff8: 0x0
------------------------------------------------
Guest state of CPU0 ----------------------------
RAX 00000E00    RCX 00000001    RDX 00000080    RBX 00000007
RSP 00000800    RBP 00000000    RSI 0000098E    RDI 00000000
R8  00000000    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 00000000    R14 00000000    R15 00000000
CR0 00000010    CR2 00000000    CR3 00000000    CR4 00000000
ACR   ES 000000F3 CS 000000F3 SS 000000F3 DS 000000F3 FS 000000F3 GS 000000F3
LIMIT ES 0000FFFF CS 0000FFFF SS 0000FFFF DS 0000FFFF FS 0000FFFF GS 0000FFFF
BASE  ES 00000000 CS 00000000 SS 00000000 DS 00000000 FS 00000000 GS 00000000
SEL   ES 00000000 CS 00000000 SS 00000000 DS 00000000 FS 00000000 GS 00000000
RIP 00000007  RFLAGS 00010246  GDTR 402EEDA0+000000FF  IDTR 00000000+000003FF
EFER 00000000
Exit reason: 0x0 (Exception or NMI)
Exit qualification 00000000 Exit intr info 80000306
Exit intr errcode 0000e378 VMCS IDTR 00000000+00000000 VMCS RFLAGS 00030246
pe=0 pg=0 sw:en=0x0 es=0x0 cs=0x0 ss=0x0 ds=0x0 fs=0x0 gs=0x0
------------------------------------------------

物理アドレス7c00の内容は変化ありません。

debug> DP 7c00
00007C00  10 00 00 00 00 80 00 00-17 1B 00 00 00 00 00 00   ................
00007C10  10 7C 10 7C 00 00 34 00-FF FF 00 00 00 9B CF 00   .|.|..4.........
00007C20  FF FF 00 00 00 93 8F 00-FF FF 00 00 00 9B 00 00   ................
00007C30  FF FF 00 00 00 93 00 00-FA 0E 1F 0E 17 BC FC 7F   ................
00007C40  89 E5 E4 92 0C 02 E6 92-66 8D 36 00 7C 66 8B 4C   ........f.6.|f.L
00007C50  04 66 51 66 8D 5C 10 66-FF 77 04 66 FF 37 89 1F   .fQf.\.f.w.f.7..
00007C60  66 89 5F 02 BB FF 01 66-01 D9 66 BF 00 00 10 00   f._....f..f.....
00007C70  66 57 66 B8 4C 6F 61 64-E8 A4 00 66 C1 E9 09 74   fWf.Load...f...t
2012-08-12 15:09 更新者: yuichi_xy
コメント

yuichi_xy への返信

r59 で再現評価をしたところ、panic発生時のRIPが変化しました。

r57 で vm0.boot_int18 を指定しない時に 0x0007 へ jamp してしまうようになっていました。 r60 で修正したところ、panic 発生時の RIP が 0x7c28 に戻りました。

CPU0 panic : Unimplemented exception in real mode: 0x06 Invalid Opcode Exception (#UD)

VMM state of CPU0---- --------------------------
RAX 00000031    RCX 00000CE8    RDX 00000002    RBX 40146910
RSP 4031FB40    RBP 4031FDA0    RSI 00000000    RDI 00000000
R8  4011DE60    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 4031FDB0    R14 00000000    R15 00000000
CR0 80000039    CR2 00000000    CR3 C7953000    CR4 00002660
RFLAGS 00000002  GDTR 402EEDA0+0000FFFF  IDTR 401A2560+0000FFFF
backtrace:
    0x4031fb38: 0x4011c704
    0x4031fda8: 0x4011c891
    0x4031fe08: 0x4012c9f6
    0x4031fe58: 0x4012d045
    0x4031ff98: 0x40117633
    0x4031ffc8: 0x40125226
    0x4031fff8: 0x0
------------------------------------------------
Guest state of CPU0 ----------------------------
RAX 00027C00    RCX 00000001    RDX 00000080    RBX 00000E00
RSP 00000804    RBP 00000000    RSI 000009A2    RDI 0000FFD0
R8  00000000    R9  00000000    R10 00000000    R11 00000000
R12 00000000    R13 00000000    R14 00000000    R15 00000000
CR0 00000010    CR2 00000000    CR3 00000000    CR4 00000000
ACR   ES 000000F3 CS 000000F3 SS 000000F3 DS 000000F3 FS 000000F3 GS 000000F3
LIMIT ES 0000FFFF CS 0000FFFF SS 0000FFFF DS 0000FFFF FS 0000FFFF GS 0000FFFF
BASE  ES 00000000 CS 00000000 SS 00031FA0 DS 00000000 FS 00000000 GS 00000000
SEL   ES 00000000 CS 00000000 SS 000031FA DS 00000000 FS 00000000 GS 00000000
RIP 00007C28  RFLAGS 00010282  GDTR 402EEDA0+000000FF  IDTR 00000000+000003FF
EFER 00000000
Exit reason: 0x0 (Exception or NMI)
Exit qualification 00000000 Exit intr info 80000306
Exit intr errcode 0000e378 VMCS IDTR 00000000+00000000 VMCS RFLAGS 00030282
pe=0 pg=0 sw:en=0x0 es=0x0 cs=0x0 ss=0x0 ds=0x0 fs=0x0 gs=0x0
------------------------------------------------
2013-11-23 19:09 更新者: yuichi_xy
  • 詳細が更新されました
2013-11-23 19:19 更新者: yuichi_xy
  • 解決法なし から 動いてるけど? に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2013-11-23 19:19 に更新されました
コメント

r123 で IvyBridge マシンで再現評価しましたが、再現せず、USBメモリからGRUBがロードされました。 Chain Loadを選択すると、今度はLinuxをインストールしたHDDからGRUBがロードされ、Linuxの起動にも成功しました。

USBメモリの/boot/grub/grub.cfgに「set timeout=5」を追加すると、自動でLinuxが起動するようになりました。

menuentry 'Chain Load' {
        set root='(hd1)'
        chainloader +1
}
set timeout=5

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする