Повреждена цепочка жестких дисков Hyper v

Обновлено: 21.11.2024

Система контрольных точек Hyper-V обычно прекрасно координирует все движущиеся части. Тем не менее, иногда не удается полностью очистить после этого. Это может привести к тому, что части контрольно-пропускного пункта, часто называемые «задерживающимися контрольно-пропускными пунктами», останутся. Вы можете легко позаботиться об этих оставшихся кусочках, но вы должны действовать осторожно. Неверный шаг может привести к полному сбою, который потребует перестроения виртуальной машины. Читайте дальше, чтобы узнать, как очиститься после неудачной контрольной точки.

Избегайте ошибок при очистке контрольной точки Hyper-V

Самая распространенная ошибка – начать попытку восстановления вручную, объединив файл AVHDX с его родителем. Если вы это сделаете, вы не сможете использовать какие-либо инструменты Hyper-V для очистки. У вас не будет другого выбора, кроме как воссоздать файлы виртуальной машины. «A» в «AVHDX» означает «автоматический». Файл AVHDX — это только часть контрольной точки. Слияние файлов вручную нарушает общую целостность контрольной точки и делает ее непригодной для использования. Объединение файлов AVHDX вручную должно быть последним действием, которое вы пытаетесь выполнить.

Кроме того, не начинайте с удаления виртуальной машины. Это может вызвать или не вызвать очистку файлов AVHDX. Не рискуйте.

Прежде чем что-либо предпринимать, проверьте приложение для резервного копирования. Если он находится в середине резервного копирования или указывает на то, что он требует вашего внимания, сначала выполните все это. Прерывание резервного копирования может вызвать всевозможные проблемы.

Как исправить сбойную контрольную точку Hyper-V

У нас есть несколько вариантов, от простых и безопасных до сложных и опасных. Сначала начните с простых вещей и пробуйте что-нибудь посложнее, только если это не сработает.

Способ 1: удалить контрольную точку

Если можете, щелкните правой кнопкой мыши контрольную точку в диспетчере Hyper-V и используйте параметр "Удалить контрольную точку" или "Удалить поддерево контрольной точки":

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

Иногда контрольная точка не предоставляет возможности удаления в диспетчере Hyper-V.

Иногда контрольная точка даже не появляется.

В любой из этих ситуаций PowerShell обычно может видеть контрольную точку и управлять ею.

Вы можете удалить сразу все контрольные точки на хосте:

Если сценарий завершается без ошибок, в диспетчере Hyper-V можно убедиться, что он успешно удалил все контрольные точки. Вы также можете использовать PowerShell:

Это очищает большинство оставшихся контрольных точек.

Способ 2. Создайте новую контрольную точку и удалите ее

У каждого есть туалет, который не перестает работать. Иногда вам везет, и вам просто нужно покачать ручку, чтобы напомнить механизму, что он должен полностью опустить заслонку над отверстием. Метод 3 — это что-то вроде исправления «покачивания ручки». Мы просто хлопаем по плечу систему контрольных точек Hyper-V и напоминаем ей, что делать.

В интерфейсе диспетчера Hyper-V щелкните правой кнопкой мыши виртуальную машину (не контрольную точку) и выберите Контрольная точка:

Теперь в корне всех контрольных точек виртуальной машины щелкните правой кнопкой мыши самую верхнюю и выберите Удалить поддерево контрольных точек:

Если этот параметр не отображается, наше исправление «покачивания ручки» не будет работать. Попробуйте удалить только что созданную контрольную точку, если это возможно.

Эквивалентный PowerShell: Checkpoint-VM -VMName demovm, за которым следует Remove-VMCheckpoint -VMName demovm .

Перегруппируйтесь, прежде чем продолжить

Я не знаю, как сквозные диски или vSAN влияют на эти процессы. Если у вас есть какие-либо и описанное выше не сработало, я рекомендую выключить виртуальную машину, отключить эти устройства и начать предыдущие шаги заново. После этого вы сможете повторно подключить свои устройства.

Если ваша контрольная точка не исчезла после того, как вы попробовали все вышеперечисленное, значит, теперь вы сталкиваетесь с потенциально трудным выбором. Если вы можете, я бы сначала попытался выключить виртуальную машину, перезапустить службу управления виртуальными машинами Hyper-V и выполнить описанные выше действия, пока виртуальная машина остается выключенной. Это немного более сложное исправление типа «покачивание ручки», но это также легко. Если вы хотите сделать действительно длинный выстрел, вы также можете перезапустить хост.Я не ожидаю, что это будет иметь какой-либо эффект, но я еще не все видел.

Сделайте резервную копию!

До этого момента мы следовали неразрушающим процедурам. Остальные исправления связаны с потенциальной потерей данных. Если возможно, сделайте резервную копию вашей виртуальной машины. К сожалению, у вас может возникнуть эта проблема только из-за неудачного резервного копирования. В этом случае экспортируйте виртуальную машину. Я бы лично выключил виртуальную машину заранее, чтобы записывать только самые последние данные.

Если у вас есть хорошая резервная копия или экспорт, вы не можете ничего потерять, кроме времени.

Способ 3. Перезагрузите конфигурацию виртуальной машины

Этот метод представляет умеренный риск потери данных. Легко сделать ошибку. Проверьте свою резервную копию! Это более сложное исправление типа «покачивание ручки».

  1. Выключите ВМ
  2. Запишите расположение файла конфигурации виртуальной машины, имена и расположения файлов виртуальных дисков, а также позиции виртуального контроллера, которые их соединяют (позиция 0 IDE 1, позиция 12 SCSI 2 и т. д.)
  3. На каждом виртуальном диске следуйте дереву AVHDX, записывая имя каждого файла, пока не найдете родительский VHDX. В диспетчере Hyper-V сделайте это с помощью кнопки «Проверить» на листе диска виртуальной машины, а затем «Проверить родительский элемент» в каждом последующем открывающемся диалоговом окне.
  4. Измените виртуальную машину, чтобы удалить все ее жесткие диски. Если виртуальная машина кластеризована, вам нужно будет сделать это в Failover Cluster Manager (или PowerShell). Будет предложено создать контрольную точку, но, поскольку вы уже пробовали это, я бы пропустил это.
  5. Экспорт конфигурации виртуальной машины
  6. Удалите виртуальную машину. Если виртуальная машина кластеризована, запишите все специальные свойства кластеризации (например, предпочитаемые узлы) и удалите их из диспетчера отказоустойчивого кластера.
  7. Импортируйте конфигурацию виртуальной машины из шага 5 в папку, записанную на шаге 3. При появлении запроса выберите параметр «Восстановить».
  8. Это вернет виртуальную машину с ее контрольными точками. Начните с метода 1 и попытайтесь очистить их.
  9. Повторно подключите VHDX. Если по какой-то причине процесс контрольной точки не объединил диски, сначала сделайте это вручную. Если вам нужны инструкции, просмотрите раздел после последнего метода.
  10. Восстановите кластеризацию, если применимо.
  11. Мы используем этот метод, чтобы дать Hyper-V последний шанс переосмыслить свою ошибку. После этого мы начинаем вызывать ручные процессы.

    Способ 4. Восстановление конфигурации ВМ и объединение дисков вручную

    Чтобы это работало, вам нужна одна хорошая резервная копия виртуальной машины. Это не должно быть недавним. Нас интересует только его конфигурация. Этот процесс имеет несколько более высокий уровень риска, чем метод 4. Как только мы вводим процесс слияния вручную, вероятность человеческой ошибки резко возрастает.

    1. Выполните шаги 1, 2 и 3 из метода 3 (выключите виртуальную машину и запишите информацию о конфигурации). Если вы не уверены в состоянии своей резервной копии, выполните шаги 5 и 6 (экспортируйте и удалите виртуальную машину). Если вы уверены в своей резервной копии или если вы уже выполнили шаг 4 и все еще имеете экспорт, вы можете пропустить шаг 5 (экспортировать виртуальную машину).
    2. Вручную объедините виртуальные жесткие диски ВМ (инструкции см. в разделе после методов). Переместите последние файлы VHDX в безопасное место. Это может быть временно.
    3. Восстановите виртуальную машину из резервной копии. Я не думаю, что когда-либо видел приложение резервного копирования Hyper-V, которое позволит вам восстановить только файлы конфигурации виртуальной машины, но если оно существует и у вас есть, используйте эту функцию.
    4. Выполните все шаги, необходимые вашему приложению резервного копирования, чтобы сделать восстановленную ВМ пригодной для использования. Например, Altaro VM Backup for Hyper-V восстанавливает вашу виртуальную машину как клон с другим именем и в другом месте, если только вы не переопределите значения по умолчанию.
    5. Удалите восстановленные виртуальные диски с виртуальной машины (см. шаг 4 метода 3). Затем удалите восстановленный(е) файл(ы) виртуального жесткого диска (они устарели и полностью безопасны при резервном копировании).
    6. Скопируйте или переместите объединенный файл VHDX из шага 2 обратно в исходное местоположение.
    7. В диалоговом окне настроек виртуальной машины добавьте VHDX обратно к контроллерам и местоположениям, которые вы записали на шаге 1.
      .
    8. Проверьте все вспомогательные инструменты, которые идентифицируют ВМ по идентификатору, а не по имени (например, по резервному копированию). Повторно присоединитесь к кластеру, если это применимо.
    9. Этот конкретный метод может занять много времени, поскольку он включает восстановление виртуальных дисков, которые вы не собираетесь оставлять. В качестве компромисса он сохраняет основные данные конфигурации виртуальной машины.Altaro VM Backup for Hyper-V будет использовать идентификатор виртуальной машины, отличный от исходного, чтобы предотвратить коллизии, но сохраняет все идентификаторы оборудования и другие идентификаторы виртуальной машины, такие как GUID BIOS. Я предполагаю, что другие инструменты резервного копирования Hyper-V демонстрируют аналогичное поведение. Сохранение идентификаторов оборудования означает, что ваши приложения, которые используют их для целей лицензирования, не будут инициировать событие активации после того, как вы будете следовать этому методу.

      Способ 5. Перестройте конфигурацию ВМ и объедините диски вручную

      Если вы дошли до этого места, значит, вы добрались до «ядерного варианта». Риск потери данных примерно такой же, как и при способе 5. Этот процесс выполняется быстрее, но имеет много побочных эффектов, которые почти наверняка потребуют дополнительных действий с вашей стороны после восстановления.

      1. Перейдите на страницу настроек виртуальной машины и запишите все возможные сведения из каждой страницы свойств. Это означает, что процессор, память, сеть, диск, настройки расположения файлов… все. Вы обязательно должны установить соединение VHDX/AVHDX и порядок родитель-потомок-внук (и т. д.) (метод 3, шаг 3). Если в вашей организации используются специальные настройки BIOSGUID и другие расширенные свойства виртуальной машины, запишите и их. Я предполагаю, что если такие поля важны для вас, вы уже знаете, как их получить. Если нет, вы можете использовать мой бесплатный инструмент.
      2. Проверьте свои резервные копии и/или выполните экспорт.
      3. Удалите виртуальную машину (шаг 6 способа 3 содержит скриншот, обратите внимание на примечание об отказоустойчивом кластере).
      4. Восстановите виртуальную машину на основе данных, собранных на шаге 1, за исключением файлов виртуального жесткого диска. Пока оставьте их отключенными.
      5. Выполните действия, описанные в следующем разделе, чтобы объединить файлы AVHDX с корневым VHDX.
      6. Подключите файлы VHDX к местоположениям, отмеченным на шаге 1 (метод 5, шаг 7, есть снимок экрана).
      7. Проверьте все вспомогательные инструменты, которые идентифицируют ВМ по идентификатору, а не по имени (например, по резервному копированию). Повторно присоединитесь к кластеру, если это применимо.
      8. В гостевой операционной системе виртуальной машины проверьте и устраните любые проблемы, возникающие из-за изменения всех идентификаторов оборудования.

      Поскольку вам не нужно выполнять операцию восстановления, выполнение этого метода занимает меньше времени, чем метод 5. К сожалению, замена всех ваших идентификаторов оборудования может иметь негативные последствия. Windows потребуется снова активировать, и она не будет повторно использовать предыдущий экземпляр лицензирования. Другое программное обеспечение может реагировать так же или еще хуже.

      Как вручную объединить файлы AVHDX

      Я поместил эту часть статьи ближе к концу не просто так. Я не могу не подчеркнуть, что вам не следует начинать здесь.

      Необходимые условия для объединения файлов AVHDX

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

      1. Объедините файлы в их исходном расположении. Я заставил вас объединить файлы перед их перемещением или копированием по какой-то причине. Каждый разностный диск (AVHDX) содержит ПОЛНЫЙ путь своего родителя. Если вы их переместите, они будут выдавать ошибки при попытке их объединения. Если вы не можете вернуть их в исходное местоположение, прочитайте ниже шаги по обновлению каждого из файлов.
      2. Наилучшие результаты будут получены, если вы объедините файлы в том порядке, в котором они были созданы. Разностный диск знает о своем родителе, но ни один родительский файл виртуального диска не знает о своих дочерних элементах. Если вы объедините их не по порядку, вы можете исправить это, приложив некоторые усилия. Но если какой-либо файл виртуального жесткого диска изменится, пока у него есть дочерние элементы, у вас не будет возможности восстановить данные в этих дочерних элементах.

      При слиянии в исходном месте и в правильном порядке слияние AVHDX не представляет опасности.

      Процесс слияния AVHDX вручную в PowerShell

      Я рекомендую вам выполнять слияния с помощью PowerShell, так как вы можете сделать это быстрее. Начиная с AVHDX, который виртуальная машина использовала в качестве активного диска, введите следующую команду:

      После этого перейдите к следующему файлу в списке. Используйте завершение с помощью табуляции! Дважды проверьте имена файлов из вашего списка!

      Если у вас не осталось ничего, кроме корневого VHDX, вы можете подключить его к виртуальной машине.

      Процесс слияния AVHDX вручную в диспетчере Hyper-V

      Диспетчер Hyper-V имеет мастер для объединения разностных дисков. Если вам нужно объединить несколько дисков, этот процесс покажется вам утомительным.

      Устранение родительских проблем с файлами AVHDX

      В этом разделе я покажу вам, как исправить недопустимые родительские цепочки. Если вы объединили файлы виртуальных дисков в неправильном порядке или переместили их из исходного местоположения, вы можете исправить это.

      Приведенный выше командлет будет работать, если файлы на диске перемещены из исходных мест.Если у вас была дисковая цепочка A->B->C и вы объединили B с A, то вы можете использовать описанное выше, чтобы установить родительский элемент C в A, при условии, что за это время с A ничего не произошло.

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

      Вы можете использовать переключатель IgnoreIdMismatch, чтобы игнорировать это сообщение, но операция слияния почти наверняка приведет к повреждению.

      В качестве альтернативы, если вы используете мастер редактирования диска, как показано выше в инструкциях по объединению вручную, то на шаге 4 вы можете иногда снова подключить диск. Однако иногда графический интерфейс дает сбой. Я бы не стал использовать этот инструмент.

      Ошибки, обнаруженные в файлах AVHDX с недопустимым родительским элементом

      Ошибки, которые вы получаете, когда у вас есть AVHDX с недопустимым родителем, обычно не помогают вам прийти к такому выводу.

      Поскольку дочерний файл AVHDX указан в обоих местах вместе с пустой строкой там, где должно быть имя родителя, может показаться, что проблема связана с дочерним файлом.

      В диспетчере Hyper-V вы получите сообщение об ошибке «один из параметров командной строки». За этим последует действительно бесполезное свойство «MaxInternalSize» не существует в классе «Msvm_VirtualHardDiskSettingData». Все это просто означает, что он не может найти родительский диск.

      Используйте Set-VHD, как показано выше, чтобы исправить эти ошибки.

      Другая работа по очистке контрольной точки

      Контрольные точки включают не только файлы AVHDX. Контрольные точки также захватывают конфигурацию виртуальной машины, а иногда и содержимое ее памяти. Чтобы устранить их, найдите папки и файлы, имена которых содержат идентификаторы GUID, не принадлежащие виртуальной машине или какой-либо сохранившейся контрольной точке. Вы можете смело удалить их все. Если вам неудобно это делать, используйте миграцию хранилища, чтобы переместить виртуальную машину в другое место. Он будет перемещать только активные файлы. Вы можете безопасно удалить все оставшиеся файлы.

      Что заставляет контрольные точки задерживаться?

      Я не знаю, чтобы кто-либо когда-либо определял основную причину этой проблемы. Мы знаем, что резервные копии с поддержкой Hyper-V запускают механизм контрольных точек Hyper-V для создания специальной контрольной точки резервного копирования. Как только программа уведомит VSS о завершении резервного копирования, она должна автоматически объединить контрольную точку. Посмотрите в средстве просмотра событий, чтобы понять, почему этого не произошло.

      Несколько недель назад я установил виртуальный жесткий диск Hyper-V на свой ноутбук с Windows 8, чтобы просмотреть его в проводнике Windows (см. ниже).

      После просмотра файлов на виртуальном жестком диске я размонтировал виртуальный жесткий диск следующим образом.

      Затем я попытался запустить виртуальную машину Hyper-V. О-о! ВМ не запускается! Я получил сообщение об ошибке от MMC Hyper-V, содержащее следующее сообщение «Цепочка виртуальных жестких дисков недоступна. Произошла ошибка при открытии виртуального жесткого диска дальше по цепочке». Вы можете увидеть полное сообщение об ошибке на снимке экрана ниже.

      К счастью, немного повозившись с Hyper-V MMC, я нашел решение, которое было действительно легко реализовать. Вот как я исправил ошибку.

      Сначала я открыл настройки виртуальной машины. Затем я выбрал жесткий диск в списке «Оборудование» и нажал кнопку «Проверить», см. ниже.

      В свойствах виртуального жесткого диска я увидел сообщение об ошибке и нажал кнопку "Переподключиться" (см. ниже).

      Затем я нажал кнопку "Далее" и увидел, что путь к родительскому диску неверен (см. ниже).

      Я нажал кнопку "Обзор" и нашел VHD-файл для моей виртуальной машины Hyper-V. Я также установил флажок «Игнорировать несоответствие идентификатора» и нажал кнопку «Готово».

      Наконец, я закрыл все окна настроек и попытался запустить виртуальную машину Hyper-V. Это сработало отлично! Победа! Как сказал бы Ганнибал Смит: "Мне нравится, когда появляется план".

      Если вам интересно, это поведение можно повторять постоянно. Я прошел через этот процесс пару раз, чтобы убедиться, что он работает последовательно, прежде чем создавать этот пост в блоге. Я надеюсь, что это поможет вам, если вы столкнетесь с этой ошибкой.

      PS: До открытия горнолыжного сезона в Колорадо осталось около 109 дней. (Не то чтобы я отслеживал или что-то в этом роде.)

      Во времена Windows XP у Microsoft были амбициозные планы относительно технологий, которые они хотели внедрить в свою следующую новую операционную систему для настольных компьютеров, которой оказалась Vista. Среди вещей, которые рассматривала Microsoft, была совершенно новая файловая система, в которой все файлы будут инкапсулированы внутри какой-то структуры, похожей на базу данных. В конце концов, эта конкретная функция так и не вошла в Windows, но в то время я написал несколько редакционных заметок, в которых сказал, что считаю новую файловую систему плохой идеей, потому что уровень инкапсуляции может легко стать единой точкой отказа. Если инкапсуляция будет повреждена, то в результате может быть потеряна вся файловая структура.

      Перенесемся на пару десятилетий вперед и увидим, что идея инкапсуляции доказала свою надежность. Библиотеки документов SharePoint, например, хранят файлы в хранилище BLOB-объектов SQL Server. Точно так же виртуальные машины Hyper-V хранят файлы на виртуальных жестких дисках, которые по сути представляют собой инкапсулированную файловую систему. Несмотря на использование инкапсуляции, виртуальные жесткие диски Hyper-V настолько надежны, что используются в бесчисленном количестве производственных систем. Тем не менее, иногда что-то может пойти не так. За последние годы я видел несколько случаев повреждения виртуального жесткого диска, особенно на виртуальных машинах, которые полагаются на цепочки контрольных точек. Когда это произойдет, вы можете восстановить резервную копию, если она у вас есть, но иногда вы можете так же легко исправить поврежденный виртуальный жесткий диск, и вот как это сделать.

      Почему происходит коррупция?

      Прежде чем я покажу вам, как исправить поврежденный виртуальный жесткий диск, вам может быть интересно, как вообще происходит повреждение. Иногда повреждение может быть вызвано неисправным оборудованием. Однажды у меня было внешнее устройство RAID, которое испортило довольно много данных из-за плохого кабеля. Однако в случае виртуальных жестких дисков Hyper-V повреждение часто происходит в результате разрыва цепочки дисков.

      Если виртуальная машина не экранирована и не запущена, операционная система Windows позволит вам смонтировать виртуальный жесткий диск и получить доступ к его содержимому из родительской операционной системы. Я постоянно использую эту технику при настройке лабораторных сред. Однако если для виртуального жесткого диска существуют контрольные точки, то подключение виртуального жесткого диска из-за пределов Hyper-V приведет к разрыву цепочки контрольных точек. Это справедливо, даже если вы не вносите никаких изменений в содержимое виртуального жесткого диска. В следующий раз, когда вы попытаетесь запустить виртуальную машину, вы получите сообщение об ошибке, подобное показанному ниже.

      Исправление поврежденного виртуального жесткого диска

      Когда дело доходит до тестирования виртуальных жестких дисков, общепринятое мнение часто диктует использование командлета Test-VHD в PowerShell. Однако на собственном опыте я обнаружил, что командлет Test-VHD на самом деле не так уж полезен. Командлет возвращает значение True, если виртуальный жесткий диск считается исправным, и false, если виртуальный жесткий диск неисправен. Проблема заключается в том, что когда цепочка контрольных точек виртуального жесткого диска разрывается в результате подключения виртуального жесткого диска, содержащего контрольные точки, командлет Test-VHD сообщает о состоянии True, даже если цепочка виртуальных жестких дисков повреждена. Чтобы понять, что я имею в виду, посмотрите на рисунок ниже. Командлет Test-VHD возвращает состояние True, хотя в сообщении об ошибке конкретно говорится, что «цепочка виртуальных жестких дисков повреждена».

      Ключ к устранению этой проблемы отображается ближе к концу сообщения об ошибке, показанного на рисунке выше. Ошибка указывает на несоответствие идентификаторов родительского виртуального жесткого диска и разностного диска. Это означает, что если вы сможете исправить несоответствие между идентификаторами дисков, то можно будет повторно связать цепочку виртуальных жестких дисков, тем самым устранив повреждение.

      На рисунке ниже показан диспетчер Hyper-V, и в данный момент выбрана виртуальная машина, у которой возникают проблемы. Несмотря на то, что диспетчер Hyper-V продолжает отображать полное дерево контрольных точек виртуальной машины, цепочка контрольных точек прерывается на уровне диска.

      Если вы продолжите смотреть на рисунок выше, вы заметите, что панель «Действия» содержит параметр «Проверить диск». Нажатие на Inspect Disk приводит к тому, что Windows отображает диалоговое окно, предлагающее вам выбрать виртуальный жесткий диск, который вы хотите проверить. Если бы я выбрал файл Client.VHDX, то в появившемся окне, которое вы можете видеть ниже, создается впечатление, что виртуальный жесткий диск полностью исправен. В самом деле, если бы я смонтировал виртуальный жесткий диск на уровне хост-ОС, я мог бы без проблем просматривать его содержимое.

      Корневой виртуальный жесткий диск в этом случае кажется исправным, и проблема, очевидно, связана со связью между корневым виртуальным жестким диском и первой контрольной точкой. Поскольку корневой виртуальный жесткий диск, по-видимому, не знает о дереве контрольных точек, давайте посмотрим, что произойдет, если вы еще раз нажмете на опцию Inspect Disk в диспетчере Hyper-V и на этот раз выберете файл AVHDX (разностный диск, связанный с с контрольной точкой) в отличие от корневого файла VHDX.

      На этот раз диспетчер Hyper-V отображает ошибку, указывающую, что цепочка виртуального жесткого диска разорвана. Однако, как вы можете видеть на рисунке ниже, у меня также есть кнопка, которую можно использовать для повторного подключения цепочки дисков.

      Нажатие кнопки «Повторное подключение» запускает мастер редактирования виртуального жесткого диска, который предлагает вам выбрать родительский файл виртуального жесткого диска. В зависимости от того, как произошло повреждение, вам может потребоваться установить флажок «Игнорировать несоответствие идентификатора», как показано на рисунке ниже. В моем случае в сообщении об ошибке конкретно упоминалось о несоответствии идентификатора, поэтому было необходимо установить флажок. После этого виртуальная машина запустилась без проблем, и наша проблема с поврежденным виртуальным жестким диском была устранена.

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

      Иногда Hyper-v может создавать моментальные снимки или разностные диски, из-за чего виртуальная машина не запускается:

      Это может произойти из-за проблем с оборудованием, таких как переполнение и пауза LUN хранилища, стороннее программное обеспечение резервного копирования, пытающееся создать полную резервную копию ВМ, при этом снова и снова происходит сбой, что приводит к отключению синхронизированных моментальных снимков и разрыву цепочек дисков. Папка диска может выглядеть как это:

      и Hyper-V не показывает снимков:

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

      Теперь я бы порекомендовал использовать Merge-VMDisks.ps1, и вы можете скачать его здесь, в Центре сценариев Microsoft Gallery

      .

      Этот скрипт является функциональным скриптом, что означает, что вам сначала нужно загрузить его в память от имени администратора, а затем вы можете использовать функцию. Чтобы загрузить его, сначала запустите его от имени администратора (с точкой)

      Затем убедитесь, что у вас есть доступ к функции:

      Вы должны получить функцию в списке

      Теперь вы можете запускать их из сеанса. Чтобы найти правильную цепочку дисков, вы можете перейти к настройке виртуальной машины и получить имя последнего известного диска, настроенного там. Затем вы можете запустить:

      PS C:\Get-ParentPath Полный_Путь_и_Имя_сконфигурированного_Диска

      Вы получите правильный список цепочки дисков, затем перед объединением дисков вы можете переподключить ее в соответствии с порядком в списке с помощью инструмента «проверить диск» из диспетчера Hyper-V:

      Перестроить цепочку по списку, отметив несоответствие идентификатора игнорирования когда-нибудь!

      После этого попробуйте включить виртуальную машину. Если все в порядке, цепь дисков должна работать правильно.

      Тогда можно смело приступать к слиянию с дисками:

      Это объединит все диски на виртуальной машине в соответствии с правильной цепочкой дисков.

      Читайте также: