У меня есть компьютер с двойной загрузкой Windows 7 и Gentoo Linux (оба 64-разрядные). Я хочу иметь возможность загрузить мою установку Linux в виртуальную машину, пока я загружаюсь в Windows. Я установил VirtualBox и следовал инструкциям по созданию сырого диска VMDK. Когда я запускаю виртуальную машину, Linux начинает загружаться, но затем завершается неудачно со следующей ошибкой при разблокировке моего корневого раздела:
truecrypt[441] trap invalid opcode ip:373615538e0 sp:3dd0e0dfb60 error:0 in libpixman-1.so.0[373614d6000+8d000]
Все работает нормально, когда я загружаюсь в Linux напрямую.
Что может привести к тому, что недопустимая инструкция будет вызвана в libpixman только при загрузке в VirtualBox?
Обновить:
В качестве шага устранения неполадок я перекомпилировал pixman без «-march» и больше не получаю ошибку недопустимой инструкции в этой библиотеке. (Однако загрузка не удалась в одном месте с одной и той же ошибкой в другой библиотеке.)
Как я могу определить конкретный код операции, который не работает в VirtualBox, чтобы я мог отключить его в своих CFLAGS без необходимости отключения всех оптимизаций для конкретного процессора?
Я все еще не понимаю, почему существует какая-либо инструкция в пользовательском режиме, которая не работает в виртуальной машине. Это известное ограничение? Мой процессор - Intel Core i7 3720QM, и у меня включена поддержка аппаратной виртуализации.