Кратко — сначала не делать никаких записей в исходный VHD, сделать копию и попробовать смонтировать/сконвертировать его разными способами. Ниже набор методов (Windows / Linux / macOS), команды и полезные утилиты + что проверять, если файл «не видят».
1) Подготовка и проверки
- Сделайте рабочую копию (чтобы не портить оригинал):
- Windows: копируйте файл через Проводник или robocopy.
- Linux: cp /path/to/orig.vhd /path/to/work.vhd
- Проверить, действительно ли это VHD:
- Linux/macOS: file image.vhd
- Проверить сигнатуру VHD: в конце файла должны быть 8 байт "conectix". Пример:
hexdump -C -s -512 -n 8 image.vhd
- Если это RAW (просто образ сырых данных), сигнатура отсутствует.
2) Windows — простые способы
- Диск управления (diskmgmt.msc): Action → Attach VHD. (Файл .vhd/.vhdx; можно подключить только если формат корректный.)
- PowerShell (Hyper‑V модуль должен быть доступен):
- Mount-VHD -Path "C:\path\image.vhd" -ReadOnly
- Если встроенные средства не работают, популярные инструменты:
- OSFMount (PassMark) — умеет монтировать VHD/VHDX/RAW, позволяет выбрать смещение и Read‑Only.
- Arsenal Image Mounter (Arsenal Recon) — монтирует как диск/раздел, хорош для дальнейшей работы с восстановлением.
- ImDisk Toolkit — монтирование raw-образов.
- FTK Imager — открывает и монтирует образы только для чтения.
- Пример (ImDisk CLI):
imdisk -a -f C:\path\image.vhd -m R: -o ro
3) Windows — конвертация / развёртывание
- Если другие программы не распознают VHD, можно конвертировать в raw или vhdx:
- С помощью qemu-img (Windows build):
qemu-img convert -p -O raw image.vhd image.img
или
qemu-img convert -p -O vhdx image.vhd image.vhdx
- Записать raw на флешку (ОПАСНО — перезапишет устройство):
- Через dd для Windows (запустить от имени администратора):
dd if=image.img of=\\.\PhysicalDriveN bs=4M --progress
- Win32 Disk Imager или RawCopy тоже могут записать raw образ.
4) Linux — монтирование образа
- Быстро посмотреть разделы в образе:
fdisk -l image.vhd
или
parted -s image.vhd print
- Смонтировать как loop-устройство (если VHD «простая»):
losetup --partscan --find --show image.vhd
=> даст /dev/loopN и /dev/loopNp1, /dev/loopNp2 …
mount -o ro /dev/loop0p1 /mnt
- Если losetup не срабатывает (динамический VHD), используйте qemu-nbd:
modprobe nbd max_part=8
qemu-nbd -c /dev/nbd0 image.vhd
partprobe /dev/nbd0
mount -o ro /dev/nbd0p1 /mnt
- kpartx:
kpartx -av image.vhd
затем /dev/mapper/loop0p1 можно монтировать.
5) macOS
- hdiutil attach image.vhd
— добавляет диск в Finder. Добавьте -nomount если нужно только создать устройство.
6) Конвертация (универсально)
- qemu-img лучше всего:
qemu-img convert -p -O raw image.vhd image.img
- После получения raw можно монтировать в любой ОС как loop/образ или записать на носитель.
7) Если образ повреждён / монтирование падает
- Не пытайтесь писать в образ. Используйте инструменты восстановления, которые читают образ напрямую:
- TestDisk / PhotoRec (чтение образа напрямую или через loop)
- UFS Explorer (платный, очень удобен для работы с повреждёнными FS)
- R‑Studio, R‑PhotoRecovery (вы уже упоминали RS Photo Recovery)
- Если монтирование не удаётся из‑за ошибок с концом файла (динамические блоки и т.п.), попробуйте qemu-img convert — он часто справляется с повреждёнными контейнерами и извлекает «сырые» данные.
8) Запись образа на физический носитель (если вы хотите восстановить с флешки «как с реального диска»)
- Linux:
dd if=image.img of=/dev/sdX bs=4M conv=sync,noerror status=progress
или лучше ddrescue:
ddrescue -f -v image.img /dev/sdX logfile
- Windows: Win32 Disk Imager, RawCopy или dd for Windows (см. выше).
- ВАЖНО: укажите правильный целевой диск (/dev/sdX или \\.\PhysicalDriveN), иначе перезапишете не тот диск.
9) Рекомендации по процессу восстановления
- Работайте с копией образа.
- Сначала попробуйте монтировать только для чтения (Read‑Only).
- Если нужно — конвертируйте в raw и используйте TestDisk/PhotoRec/UFS Explorer/R‑Studio.
- Если восстановление файлов критично — не экспериментируйте слишком много, лучше обратиться к профессионалам или к UFS Explorer / R‑Studio, которые часто вытягивают данные прямо из образа.
Если хотите, помогу дальше — пришлите:
- результат file image.vhd (или hexdump -s -512 -n 8 image.vhd),
- размер файла (ls -l),
- и какую ОС вы используете — предложу конкретные команды/пошагово.