Это связано с SO: Можете ли вы обновить родительский разностный диск Hyper-V для отправки обновлений всем дочерним?
У меня есть установка, в которой родительский диск представляет собой подготовленный образ ОС. Я создал дочернюю виртуальную машину с разностным диском, используя syspreped образ в качестве родительского.
Можно ли обновить подготовленный образ, не затрагивая ребенка? Есть ли какая-либо другая конфигурация, которая не уничтожит дочерний диск при обновлении родительского (syspreped)?
Мне не удалось применить изменения к родительскому объекту без получения ошибки ниже от дочерней виртуальной машины:
Failed to Power on with Error 'The chain of virtual hard disks is corrupted.
There is a mismatch in the identifiers of the parent virtual hard disk and differencing disk.'.
Это сообщение появляется, когда я включаю родительский компьютер, завершаю активацию (из sysprep), обновляю ОС, а затем выполняю sysprep еще раз на родительском компьютере. После этого дочерний разностный диск больше не загрузится.
Файловые системы помещают на диск много информации для отслеживания файлов. И если блоки на диске вообще изменятся, эта информация отслеживания устарела. Когда это происходит, вы получаете повреждение файла, chkdsk
, и боль.
Разностные диски работают путем отслеживания блоков, которые были записаны с момента создания разностного диска. Новые записи поступают в дочерний VHD (или AVHD), а операции чтения исходят от этого дочернего элемента, если они там существуют. Если блок, соответствующий чтению, не находится в дочернем элементе, он исходит от родителя. Структуры отслеживания файловой системы часто переписываются и, как правило, существуют в основном в дочерней системе. (Даже если бы эта последняя часть была неверной, здесь все равно была бы проблема.)
Если вы монтируете родительский виртуальный жесткий диск отдельно и изменяете на нем файловую систему, многие из блоков, представленных в дочернем, будут изменены в родительском и, таким образом, будут устаревшими в дочернем, включая некоторые из структур отслеживания. Поэтому, если вы когда-нибудь снова попытаетесь смонтировать дочерний VHD, он попытается получить от родительского диска вещи, которые теперь не выровнены. Это будет рассматриваться как поврежденная файловая система.
Многие люди в конечном итоге задают вопрос, который вы только что задали. Их замешательство обычно происходит из-за непонимания того, что диски работают с блоками, а не с файлами. Они ожидают, что виртуальный жесткий диск (который является виртуальным блочным устройством, а не файловой системой) предоставляет файлы виртуальной машине. Это не так. Выставляет только блоки. Затем гостевая ОС устанавливает файловую систему по своему выбору. Система виртуализации (в данном случае Hyper-V) ничего не знает о файлах, только о блоках.
На что вы действительно надеялись, так это на разностную файловую систему, а не на разностный диск. Они существуют в виде сетевых хранилищ. Однако Windows не загружается с удаленных файловых систем, поэтому они, вероятно, не решат вашу проблему.