none
Виртуализация Windows XP - ошибки на дисках RRS feed

  • Вопрос

  • Для более плавной миграции с Windows XP на Windows 7 были выполнены следующие действия:

     

    1. Образ системного диска с Windows XP был перегнан в VHD DriveC.vhd
    2. Установлена Windows 7 и установлен Windows Virtual PC
    3. Созданы виртуальные диски DriveD.vhd и DriveF.vhd и на них переписаны из под Windows 7 нужные файлы
    4. Создана виртуальная машина и у неё в качестве первого диска выбран DriveC.vhd, в качестве второго DriveD.vhd и в качестве третьего DriveF.vhd
    5. Написано два скрипта (через diskpart) для подключения и отключения DriveD.vhd и DriveF.vhd под Windows 7

     

    Все диски фиксированного размера.

    Работа за компьютером выполняется по следующей схеме:

     

    • Запуск скрипта для подключения дисков
    • Работа с файлами на этих дисках под Windows 7
    • В случае необходимости работы под Windows XP - запуск скрипта для отключения дисков и запуск виртуальной машины
    • По окончании работы на виртуальной машине - перевод машины в режим гибернации и запуск скрипта для подключения дисков

     

    Примерно месяц работы по такой схеме проблем не возникало. Сейчас, периодически, после обратного подключения дисков в Windows 7 на них появляются ошибки, которые приходится исправлять через chkdsk (иногда без этого даже содержимое диска не просмотреть).

    Возникли вопросы:

     

    1. Насколько правилен такой вариант реализации работы (сетевые диски не подходят из за низкой скорости работы с файлами)
    2. Почему могут возникать такие проблемы
    3. Как эту проблему решить

     

    25 октября 2010 г. 15:28

Ответы

  • Скрипт под Windows XP для отключения дисков под виртуальной машиной написать не удалось. Не нашёл такой команды в diskpart под этой системой.

    Увидел что на дисках было включено кеширование. Кеширование отключил, проблема осталась.

    От безысходности сегодня было принято решение седлать копии VHD дисков что бы подключать одновременно на хосте и в виртуалке. Синхронизироваться данные на дисках будут через скрипт, запускаемый по необходимости вручную. Скрипт планирую написать в ближайшее время.

    Тему можно закрыть. 

    В результате развития темы был однозначно решён только 1-ий вопрос  - такая реализация работы неправильная =)

    • Помечено в качестве ответа Denis DyagilevEditor 19 ноября 2010 г. 9:20
    18 ноября 2010 г. 21:18

Все ответы

  • Скорее всего, это связано с одновременным использованием диска несколькими ОС.

    Не изобретайте велосипед, используйте функционал общих папок в Windows Virtual PC.

    26 октября 2010 г. 5:42
    Модератор
    • По окончании работы на виртуальной машине - перевод машины в режим гибернации и запуск скрипта для подключения дисков
    Вероятнее всего, проблемы вызваны именно использованием режима гибернации — при переходе в этот режим в сохраняемом на диске образе памяти остаётся информация об используемых файловых системах, и предполагается, что до возобновления работы машины содержимое ни одного из используемых ей дисков не будет меняться. Чтобы данные не портились, нужно либо всегда выключать виртуальную машину полностью, не используя режим гибернации, либо каким-то образом отключать диски от ВМ перед гибернацией (например, переводом их в offline изнутри ВМ).
    26 октября 2010 г. 10:14
  • Скорее всего, это связано с одновременным использованием диска несколькими ОС.

    Не изобретайте велосипед, используйте функционал общих папок в Windows Virtual PC.

    В том то и вся проблема что функционал общих папок не устраивает. При таком варианте Visual Studio только _загружает_ проект примерно 20-25 минут. Я уж не говорю про компиляцию. При работе с VHD загрузка этого же проекта занимает примерно 1 минуту.

    По такой схеме виртуализировалось сразу несколько машин, скорость на всех была неудовлетворительная, пока не воспользовались таким костылём.

    В том то и дело, что одновременного использования то нет. Диск на хосте подключается только после того, как виртуальная машина уже отправлена в гибернацию (а иначе и не даст). Я согласен с тем, что часть данных может подвиснуть в кеше и мы получим потеряный в NTFS файл, но я не могу понять с чего вдруг вообще рушится файловая система до такой степени, что без принудительного chkdsk её вообще не видно. При проверке исправляет очень много ошибок, в том числе с файлами, которые до этого не загружались под виртуалкой. 

    1 ноября 2010 г. 23:07
    • По окончании работы на виртуальной машине - перевод машины в режим гибернации и запуск скрипта для подключения дисков
    Вероятнее всего, проблемы вызваны именно использованием режима гибернации — при переходе в этот режим в сохраняемом на диске образе памяти остаётся информация об используемых файловых системах, и предполагается, что до возобновления работы машины содержимое ни одного из используемых ей дисков не будет меняться. Чтобы данные не портились, нужно либо всегда выключать виртуальную машину полностью, не используя режим гибернации, либо каким-то образом отключать диски от ВМ перед гибернацией (например, переводом их в offline изнутри ВМ).
    А кстати, это хорошая идея попробовать переводить диски в оффлайн на виртуалке. Попробую, спасибо.
    1 ноября 2010 г. 23:09
  • Диск на хосте подключается только после того, как виртуальная машина уже отправлена в гибернацию (а иначе и не даст)
    Гибернация виртуальной машины подразумевает под собой сохранение данных в файл, так что полной передачи тома владельцу у Вас не будет в любом случае.
    2 ноября 2010 г. 5:53
    Модератор
  • Руслан, Ваша проблема сохраняется?
    Данный форум является бесплатным сервисом Microsoft с целью оказания посильной помощи пользователям и повышения уровня знаний о продуктах Microsoft. Информация, представленная на форуме, распространяется "как есть" без официальной ответственности компании Microsoft.
    10 ноября 2010 г. 10:13
    Модератор
  • Руслан, Ваша проблема сохраняется?
    Да, до сих пор проблема существует. На следующей неделе будет проведено тестирование скрипта для предварительного отключения дисков под виртуальной машиной, выполняемого до перевода этой машины в гибернацию. По результату обязательно отпишусь.
    10 ноября 2010 г. 10:45
  • И вот прошла неделя... )))
    Данный форум является бесплатным сервисом Microsoft с целью оказания посильной помощи пользователям и повышения уровня знаний о продуктах Microsoft. Информация, представленная на форуме, распространяется "как есть" без официальной ответственности компании Microsoft.
    18 ноября 2010 г. 15:17
    Модератор
  • Скрипт под Windows XP для отключения дисков под виртуальной машиной написать не удалось. Не нашёл такой команды в diskpart под этой системой.

    Увидел что на дисках было включено кеширование. Кеширование отключил, проблема осталась.

    От безысходности сегодня было принято решение седлать копии VHD дисков что бы подключать одновременно на хосте и в виртуалке. Синхронизироваться данные на дисках будут через скрипт, запускаемый по необходимости вручную. Скрипт планирую написать в ближайшее время.

    Тему можно закрыть. 

    В результате развития темы был однозначно решён только 1-ий вопрос  - такая реализация работы неправильная =)

    • Помечено в качестве ответа Denis DyagilevEditor 19 ноября 2010 г. 9:20
    18 ноября 2010 г. 21:18