Вопрос или проблема
Вчера старый NVME-диск в ноутбуке сестры с Windows начал выходить из строя и самоликвидировался. Большинство данных хранилось в облаке, но несколько вещей не были сохранены, поэтому я хотел попробовать восстановить то, что смогу. Это не проблема, если не получится. Я сделал dd
диска, но глупо сделал это по секторам (не осознавая, что можно просто dd
всего устройства). Теперь у меня есть три образа разделов: backup-nvme0n1p1.img, backup-nvme0n1p2.img и backup-nvme0n1p3.img. Третий из них имеет 237 ГБ и содержит фактические данные. У меня есть резервные копии файлов образов, так что я могу с ними играть по мере необходимости.
Я бы просто снова правильно сделал имидж, но мы уже отформатировали диск и переустановили Windows (как временная экстренная мера, чтобы она могла использовать ноутбук – мы не полагаемся на диск для хранения постоянных данных, пока он может функционировать для запуска Windows в течение нескольких дней).
Я попытался смонтировать образ раздела напрямую в Ubuntu VM с помощью:
sudo mount -t ntfs -o loop backup-nvme0n1p3.img /mnt/test
…но файловая система, похоже, повреждена (что мы и предполагали):
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Неверный аргумент
Запись 0 не имеет FILE magic (0xffffffff)
Не удалось загрузить $MFT: Ошибка ввода/вывода
Не удалось смонтировать '/dev/loop9': Ошибка ввода/вывода
NTFS либо неконсистентен, либо есть аппаратный сбой, либо это
SoftRAID/FakeRAID оборудование. В первом случае запустите chkdsk /f в Windows
затем перезагрузитесь в Windows дважды. Использование параметра /f очень
важно! Если устройство является SoftRAID/FakeRAID, сначала активируйте
его и смонтируйте другое устройство в директории /dev/mapper/ (например,
/dev/mapper/nvidia_eahaabcc1). Пожалуйста, смотрите документацию 'dmraid'
для получения дополнительных сведений.
ntfsfix
также не одобряет:
ntfsfix backup-nvme0n1p3.img
Монтирование тома... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Неверный аргумент
Запись 0 не имеет FILE magic (0xffffffff)
Не удалось загрузить $MFT: Ошибка ввода/вывода
НЕ УДАЛОСЬ
Попытка исправить ошибки... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Неверный аргумент
Запись 0 не имеет FILE magic (0xffffffff)
Не удалось загрузить $MFT: Ошибка ввода/вывода
НЕ УДАЛОСЬ
Не удалось запустить том: Ошибка ввода/вывода
Проверка наличия саморасположенного сегмента MFT... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Неверный аргумент
ОК
Неисправимая ошибка
Объем поврежден. Вам следует запустить chkdsk.
Хорошо, так что, вероятно, я хочу попробовать смонтировать его в Windows и запустить chkdsk. Если бы это был образ всего диска, я предполагал, что мог бы смонтировать его как виртуальный диск с помощью чего-то вроде ImDisk, но я не знаю, что я могу сделать с тремя отдельными разделами.
Так что мой вопрос таков: Можно ли придумать новую таблицу разделов и собрать эти три раздела в действительный образ диска? Или, что еще лучше, игнорировать первые два раздела и создать полный образ диска с третьим?
Оказалось, мне следовало просто протестировать ImDisk. Он на самом деле может напрямую монтировать образы разделов NTFS. К сожалению, chkdsk не доволен поврежденным разделом данных, так что пришло время проявить свои навыки программирования и вручную разобрать данные NTFS и сравнить с работающими разделами восстановления/что-то еще! (На самом деле, я занимаюсь этим несколько дней; это удивительно, что это не так сложно.)
Ответ или решение
Создание образа диска из образов разделов и последующий запуск chkdsk в Windows
Ваша ситуация требует осторожного подхода, особенно учитывая то, что вы работаете с поврежденным накопителем и потемневшими данными. Основной задачей является восстановление данных из образов разделов и создание полноценного образа диска для удобного использования в Windows, где вы сможете выполнить chkdsk
.
Шаг 1: Объединение образов разделов
Первым делом необходимо создать новую таблицу разделов, чтобы объединить ваши три образа в один. Используя утилиту parted
в Linux или её аналог, вы можете заново сгенерировать таблицу разделов. Мы будем учитывать только третий образ, который содержит основные данные.
Пример создания образа с помощью dd
:
-
Создание образа:
dd if=backup-nvme0n1p3.img of=final-disk-image.img bs=512
-
Настройка новой таблицы разделов:
Здесь мы используем утилитуparted
. Запуститеparted
с новой кареткой:parted final-disk-image.img
-
Создание новой таблицы разделов:
mklabel gpt
-
Добавление раздела для вашего образа:
Добавляем раздел, который охватывает 237GB:mkpart primary ntfs 0% 100%
Это будет простым разделом, который занимает весь объем вашего образа.
Шаг 2: Подготовка к монтированию в Windows
Теперь, когда у вас есть объединенный образ, его необходимо подготовить для монтирования в Windows.
-
Убедитесь, что образ корректен, с помощью утилит
fdisk
илиparted
, чтобы просмотреть таблицу разделов и убедиться, что всё настроено правильно. -
Использование ImDisk:
Устанавливаем и запускаем ImDisk в Windows. После запуска:- Выберите опцию для монтирования изображения.
- Укажите путь к вашему образу
final-disk-image.img
. - Убедитесь, что данный диск смонтирован как виртуальный.
Шаг 3: Запуск chkdsk в Windows
Теперь, когда ваш образ смонтирован как виртуальный диск, выполните следующие действия для выполнения проверок:
-
Откройте командную строку от имени администратора.
-
Проведите проверку диска:
chkdsk X: /f
Здесь X – это буква, назначенная вашему смонтированному диску.
Заключение
Теперь вы успешно объединили образы разделов в полноценный образ диска и можете использовать Windows для возможности восстановления файлов с помощью chkdsk
. Следует помнить, что в ситуации с поврежденными данными восстановление может быть не всегда успешным, и всегда рекомендуется делать резервные копии важных данных в будущем.
Если вам требуется больше информации или помощь с продвинутыми решениями, пожалуйста, не стесняйтесь задавать вопросы.