gparted freeze при изменении размера раздела NTFS

Как упомянуто в заголовке, Gparted застыл, в процессе перемещения раздела NTFS влево и увеличения его размера, чтобы заполнить дисковое пространство справа.

Последней операцией, которую он выполнял, было перемещение секторов с размером блока 16 Мб.

Можно ли заставить его возобновить движение или сделать остальное вручную? Пример того, что я имею в виду, см. В этом посте: http://gparted-forum.surf4.info/viewtopic.php?pid=25907#p25907

РЕДАКТИРОВАТЬ: У меня сейчас обнаружил следующую информацию:

  • Точный сектор, в котором операция копирования была прервана, нет. 2529216511.
  • Согласно MBR диска, первый сектор раздела составляет 202 390 МБ с начала диска и имеет длину 1 705 337 МБ - что я и должен был закончить.
  • Расширенный BPB в разделе NTFS утверждает, что размер раздела составляет 1 293 319 МБ. Это неправильно и, вероятно, должно было быть обновлено после завершения копирования.
4
задан 26 November 2013 в 20:51

1 ответ

Хорошо, так что я наконец исправил это!

Это решение должно работать и для других файловых систем, если GParted делает то же самое «прямое копирование». Очевидно, вам нужно будет использовать что-то кроме chkdsk в конце.

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

  1. Перед тем как начать, расслабьтесь - принесите себе кофе или кружку горячего шоколада!

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

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

  3. Обязательно запишите любую информацию о последнем, что делал GParted. Вы захотите узнать, как далеко продвинулась операция копирования (насколько это возможно) и насколько далеко назад / вперед она копировала.

  4. Определите точное место, где копия закончилась. Я написал два скрипта Python, чтобы помочь с этим, но они были протестированы только на Ubuntu (определенно не будет работать в Windows) и нуждаются в модификации для вашего конкретного случая .

    • Сначала используйте это, чтобы найти один соответствующий сектор на диске: findDuplicateSector.py

    • Затем используйте это, чтобы найти последний соответствующий сектор (т. е. где операция была прервана): findCopyInterruptLocation.py

    • Прочитайте код и убедитесь, что вы его понимаете. Я проверил это кратко, но могут быть ошибки. Все приведенные числа являются абсолютными смещениями от начала раздела / файла, то есть смещение 0 является первым сектором в разделе, а смещение n является n + 1 th сектором.

      [ 1162]
  5. Используйте 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>
    
  6. Проверьте выполните следующие действия и исправьте, если необходимо:

    • Записи таблицы разделов основной загрузочной записи (MBR) должны соответствовать тому, что вы сказали GParted делать (см. статью в Википедии, это очень информативно). В частности, проверьте значение для LBA первого сектора раздела и его общее количество секторов.

    • Запись загрузочной записи раздела, который вы изменяете, должна соответствовать MBR (в моем случае это не так). Для NTFS общий размер раздела в секторах должен быть смещен на 40 от начала раздела. Я не думаю, что NTFS записывает, каково смещение раздела относительно начала диска.

  7. Запустите chkdsk в режиме только для чтения , то есть без аргументов командной строки, кроме имени диска, чтобы убедиться, что он может найти все файлы в раздел. Если не удается проверить индексы файлов, НЕ продолжайте . Не беспокойтесь, если он жалуется на файл $ Bitmap, содержащий ошибки.

  8. Если и только если шаг 5 выполнен успешно, запустите chkdsk /f, чтобы исправить, например, файл $ Bitmap. Если вы запустите это, пока файловые индексы все еще не работают, это может привести к их удалению, что значительно усложнит вам задачу.

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

* На самом деле я слишком высокомерен - мы не дураки. А если серьезно - делайте резервные копии!

0
ответ дан 26 November 2013 в 20:51

Другие вопросы по тегам:

Похожие вопросы: