Как упомянуто в заголовке, Gparted застыл, в процессе перемещения раздела NTFS влево и увеличения его размера, чтобы заполнить дисковое пространство справа.
Последней операцией, которую он выполнял, было перемещение секторов с размером блока 16 Мб.
Можно ли заставить его возобновить движение или сделать остальное вручную? Пример того, что я имею в виду, см. В этом посте: http://gparted-forum.surf4.info/viewtopic.php?pid=25907#p25907
РЕДАКТИРОВАТЬ: У меня сейчас обнаружил следующую информацию:
Хорошо, так что я наконец исправил это!
Это решение должно работать и для других файловых систем, если GParted делает то же самое «прямое копирование». Очевидно, вам нужно будет использовать что-то кроме chkdsk
в конце.
Во всяком случае, вот процедура для решения проблемы в интересах любого, кто столь же невезучий / глупый *, как я:
Перед тем как начать, расслабьтесь - принесите себе кофе или кружку горячего шоколада!
Ваши данные все еще находятся на диске, вам просто нужно их найти. Тратить время на спокойную проверку не повредит тебе. Торопится и ведет себя импульсивно.
Внимательно прочитайте это и убедитесь, что вы понимаете каждый шаг. Если затем вы решите следовать этим инструкциям, вероятно, будет хорошей идеей сделать резервную копию на отдельном диске, используя dd
. Ошибок легко сделать, а резервное копирование даст вам страховку.
Обязательно запишите любую информацию о последнем, что делал GParted. Вы захотите узнать, как далеко продвинулась операция копирования (насколько это возможно) и насколько далеко назад / вперед она копировала.
Определите точное место, где копия закончилась. Я написал два скрипта Python, чтобы помочь с этим, но они были протестированы только на Ubuntu (определенно не будет работать в Windows) и нуждаются в модификации для вашего конкретного случая .
Сначала используйте это, чтобы найти один соответствующий сектор на диске: findDuplicateSector.py
Затем используйте это, чтобы найти последний соответствующий сектор (т. е. где операция была прервана): findCopyInterruptLocation.py
Прочитайте код и убедитесь, что вы его понимаете. Я проверил это кратко, но могут быть ошибки. Все приведенные числа являются абсолютными смещениями от начала раздела / файла, то есть смещение 0 является первым сектором в разделе, а смещение n является n + 1 th sup> сектором.
[ 1162] Используйте dd
или что-то подобное для завершения операции копирования, стараясь не перепутать входные и выходные смещения. Вот синтаксис для dd
:
sudo dd bs=512 skip=<input_offset> if=<partition> seek=<output_offset> of=<partition> count=<num_sectors_to_copy>
Этот шаг займет длинное время (у меня ушло 8 часов). Если вы хотите увидеть, как он продвигается, запустите его в отдельном терминале, и dd
сообщит вам о своем прогрессе в своем собственном окне терминала:
sudo kill -s USR1 <PID_of_dd>
Проверьте выполните следующие действия и исправьте, если необходимо:
Записи таблицы разделов основной загрузочной записи (MBR) должны соответствовать тому, что вы сказали GParted делать (см. статью в Википедии, это очень информативно). В частности, проверьте значение для LBA первого сектора раздела и его общее количество секторов.
Запись загрузочной записи раздела, который вы изменяете, должна соответствовать MBR (в моем случае это не так). Для NTFS общий размер раздела в секторах должен быть смещен на 40 от начала раздела. Я не думаю, что NTFS записывает, каково смещение раздела относительно начала диска.
Запустите chkdsk
в режиме только для чтения , то есть без аргументов командной строки, кроме имени диска, чтобы убедиться, что он может найти все файлы в раздел. Если не удается проверить индексы файлов, НЕ продолжайте . Не беспокойтесь, если он жалуется на файл $ Bitmap, содержащий ошибки.
Если и только если шаг 5 выполнен успешно, запустите chkdsk /f
, чтобы исправить, например, файл $ Bitmap. Если вы запустите это, пока файловые индексы все еще не работают, это может привести к их удалению, что значительно усложнит вам задачу.
Возможно, вы захотите снова запустить chkdsk
в режиме только для чтения, чтобы убедиться, что он работает, просто для душевного спокойствия.
* На самом деле я слишком высокомерен - мы не дураки. А если серьезно - делайте резервные копии!