Случайно перезаписал первые 4 ГБ моего HDD

Мне пришлось скопировать образ диска из файла на внешнюю карту. К сожалению, Ubuntu переключал диски во время перезагрузки - sda был hdd для ноутбука, sdb был картой; после перезагрузки sda была картой, а sdb была hdd. Я сделал dd if=image.dd of=/dev/sdb, как в прошлый раз это было правильно. Размер изображения был 4 ГБ, поэтому я полагаю, что я перезаписал первые 4 ГБ моего жесткого диска. Изображение содержит минимальное убунту.

Теперь я застрял в не отвечающей системе. Ноутбук включен, терминал включен, у меня тоже открылся наутилус, но он разбился; перед этим я проверил, что мои данные в /home нетронуты (по крайней мере, я надеюсь, что они нетронуты, но мои файлы там есть). Сколько данных я потерял? Только ОС?

У меня нет образа Ubuntu прямо сейчас. Мне нужно восстановить данные из /home. Что я могу сделать прямо сейчас? Чего следует избегать - я знаю, что не должен выключать или перезагружать ноутбук, но могу ли я его приостановить? Могу ли я выйти из системы (заблокировать)?

Я могу взять ноутбук домой и снова установить Ubuntu, но мне нужны эти /home файлы. Можно ли как-нибудь перестроить таблицу разделов? У меня есть информация о разделах до и после аварии.

1
задан 8 September 2017 в 14:34

2 ответа

Предполагая (когда вы можете загрузиться, скажем, с Live media), что вы обнаружите, что раздел /home имеет тот же размер, что и раньше, вы должны иметь возможность воссоздать раздел / на том же месте, которое он занимал перед этим переустановите Ubuntu с помощью опции «сохранить / домашняя папка», переустановите добавленные пакеты и выберите, где вы остановились.

В качестве дополнительной страховки вы можете установить другое имя пользователя, которое создаст новую папку пользователя в / home. После этого вы можете скопировать скрытые файлы и папки из старой пользовательской папки в новую.

Если таблица разделов на самом деле перезаписана, вам предстоит более сложная работа - вам нужно использовать программное обеспечение для восстановления файлов , прежде чем переустанавливать Ubuntu , чтобы восстановить файлы из прежней пользовательской папки. Данные все еще должны быть неповрежденными, но «дорожная карта» для их чтения была потеряна, и вам придется воссоздать эту карту. Это сомнительная перспектива в наилучших условиях, но первое правило таково: выключите компьютер и оставьте его выключенным до тех пор, пока вы не будете готовы перезагрузиться с Live media (или извлеките жесткий диск и подключите его к другому компьютеру), чтобы начать восстановление процесс. С вашей проблемой маловероятно, что работающий компьютер перезапишет все, что осталось на диске - но если он выключен, он не сможет .

Цитата из комментариев:

Обычно каждый раз, когда я устанавливаю Unix-систему, я создаю отдельный раздел для / home / - я не могу вспомнить, почему я не сделал этого в этот раз. [ 118]

Учитывая, что вы установили эту систему без отдельного / home, то, будут ли ваши личные данные смешаны с файлами ОС, сильно зависит от того, сколько раз вы обновляли Ubuntu с момента его установки. Каждый раз, когда файл в операционной системе заменяется, новый файл записывается в свободном месте перед удалением старого. Затем другие файлы могут быть записаны в свободное место, удалив старый файл ОС. Это означает, что ваши файлы будут смешиваться с ОС все больше и больше, чем дольше вы продолжаете установку.

Учитывая ситуацию, в которой я ее сейчас понимаю, я бы посоветовал вам использовать инструменты криминалистического восстановления, чтобы иметь какой-либо шанс восстановить файлы, которые могут быть смешаны с системными файлами - и они, как правило, выходят за рамки обычных пользователей.

0
ответ дан 8 September 2017 в 14:34

Во-первых, поймите различие между разделами и файловыми системами. В этом ответе я использую эти термины очень точно, таким образом, я захочу быть уверенным, что Вы понимаете различие:

  • Раздел описывает ряд секторов на Вашем жестком диске. Таким образом, раздел может быть секторами 2 048 - 1 126 439 или секторами от 4198440 до 15628053134. Разделы определяются в таблицах разделов, которые являются простыми структурами данных, которые содержат те номера секторов и несколько других частей метаданных раздела, тех, которые вводят коды, и возможно называет. Двумя общими типами таблицы разделов является Главная загрузочная запись (MBR) и Таблица разделов GUID (GPT). Первый был доминирующим типом таблицы разделов до приблизительно четыре или пять лет назад; но с введением Windows 8 и быстрым сдвигом с основанного на BIOS на основанные на EFI компьютеры, GPT повысился существенно в популярности. Какая таблица разделов, которую Вы использовали, является критической для Вашего вопроса, как описано вскоре.
  • Файловая система является намного более сложной структурой данных, которая обычно находится в разделе (или иногда другой контейнер, такой как логический том в установке LVM или даже файл, как в загруженном .iso файл изображения). Файловые системы позволяют компьютеру расположиться, читать, записать и иначе управлять отдельными файлами. Общие файловые системы на Ubuntu включают ext2/3/4fs, Btrfs, XFS и JFS. Некоторые другие, как FAT, часто используются в межплатформенных целях. NTFS является собственной файловой системой для Windows и HFS + для macOS (хотя Apple переходит к APFS). Если Ваши загрузки компьютера в режиме EFI, возможности являются первым разделом, сохраненным файловой системой FAT; но та файловая система также была бы маленькой и будет поэтому полностью перезаписана и не будет восстанавливаемой. (К счастью, воссоздавание этого Системного Раздела EFI, как это называют, возможно.)

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

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

  • Используйте данные резервного копирования GPT - И GPT и MBR хранят данные таблицы разделов в начале диска, который стер Ваш несчастный случай; но GPT также хранит резервное копирование этих данных в конце диска. Таким образом необходимо смочь использовать резервное копирование GPT для восстановления всей таблицы разделов. (Обратите внимание, что это не восстановит остальную часть данных, которые Вы перезаписали; вероятно, что по крайней мере одна файловая система будет повреждена.) AFAIK, лучший инструмент Linux для этого типа восстановления является моим собственным gdisk, который прибывает стандарт с Ubuntu. Посмотрите эту страницу для деталей. Короче говоря, Вы запуститесь gdisk на диске и, если это спрашивает Вас, говорят этому использовать GPT. gdisk мог бы восстановить все в той точке, но Вы, возможно, должны ввести r ввести меню восстановления и преобразования и затем использовать b и/или c считать метаданные резервных копий и таблицу разделов, соответственно. Можно использовать p просмотреть таблицу разделов как gdisk в настоящее время видит его. Когда Вы убеждены, что это восстанавливается, ввести w сохранить изменения. Будьте осторожны, хотя! После того как Вы вводите w, gdisk перезапишет обоих основное и скопирует данные GPT, поэтому если Вы сделаете это перед восстановлением корректных разделов то Вы не получите второй шанс при восстановлении! Если Вы не уверены, завершены из программы, не сохраняя изменения путем ввода q. Можно затем провести больше исследования и попробовать еще раз.
  • Используйте данные раздела Linux в оперативной памяти - Пока Вы не перезагружаете или используете определенные команды, связанные с разделами, ядро Linux ведет список разделов, включая их стартовые точки и размеры. Можно считать эту информацию из /sys/block/{disk}/{part}/ каталог в start и size файлы. Например, /sys/block/sda/sda1/start имеет стартовую точку /dev/sda1 и /sys/block/sda/sda1/size имеет размер /dev/sda1. Можно использовать эту информацию для воссоздавания таблицы разделов. Вы извлекли бы информацию обо всех своих разделах (скажите, cat /sys/block/sda/sda*/start и cat /sys/block/sda/sda*/size получить стартовые точки и размеры всех разделов на /dev/sda), затем используйте fdisk, gdisk, или parted воссоздать разделы, которые соответствуют тому, что записало ядро. (Осторожность: Некоторые инструменты разделения, такие как GParted, создают новые файловые системы, когда новые разделы создаются. Обязательно, чтобы Вы не сделали это; Вы хотите создать новые разделы, не изменяя единственный байт содержания разделов, которые Вы создаете.) Отмечают, что необходимо будет все еще заполнить метаданные, которые не записывает ядро, такие как раздел вводят коды. Также обратите внимание, что ядро записывает стартовую точку и размер (длина) каждого раздела, но много инструментов разделения просят стартовую точку и конечную точку, последнее существо стартовая точка плюс размер минус 1. Обязательно поймите то, что хочет Ваш инструмент разделения, и подайте его правильные значения.
  • Используйте TestDisk - Если Ваш компьютер использует MBR, и Вы перезагрузили, или если предыдущие подходы перестали работать, можно использовать TestDisk для восстановления разделов, которые соответствуют файловым системам. TestDisk работает путем сканирования всего диска для структур данных файловой системы. Это может затем изменить Вашу таблицу разделов или создать новую таблицу разделов с разделами, которые соответствуют файловым системам, которые это находит. Обратите внимание, что TestDisk, вероятно, перестанет работать для Вашего первого раздела или два; однако, этот подход может работать на восстановление разделов, которые начинаются вне конца области, которую Вы случайно перезаписали.
  • Сделайте это вслепую - первый раздел на диске обычно начинается в довольно предсказуемом местоположении. В частности, сектор 2048 является общей начальной точкой для дисков, разделенных недавно (за прошлые четыре или пять лет). Более старые диски обычно имели первый раздел, который начался на секторе 63. Некоторые диски, особенно разделенные в macOS с GPT, имеют первый раздел, который начинается на секторе 40. Таким образом, если Вы знаете достаточно, Вы смогли правильно предполагать, где первый раздел начался. Учитывая, что Вы вытерли первых 4 ГБ своего диска, тем не менее, это знание может быть бесполезным; много дисков имеют маленький (1 МиБ к 1 ГиБ) первые разделы, таким образом, Вы, возможно, полностью перезаписали весь первый раздел, и хорошо во второй. Если Вы знаете, что первый раздел был определенным размером, который был намного больше, чем это, тем не менее, или если он заполнил весь диск, зная, что стартовая точка может позволить средствам восстановления уровня файловой системы восстановить некоторые данные файловой системы; или можно затем смочь восстановить неповрежденный второй раздел. Этот подход, очевидно, один, это очень опасно, но если Вы являетесь достаточно отчаянными, Вы могли бы стать удачливыми с ним.

В целом, Ваш лучший выбор состоит в том при использовании GPT; в этом случае Ваши резервные данные GPT должны быть неповреждены, и необходимо смочь восстановить всю таблицу разделов. Даже в этом случае, тем не менее, данные файловой системы могут быть частично или полностью вытерты, по крайней мере, для первого раздела или два. Восстановление любых данных в первых 4 ГБ (область Вы случайно вытерли) будет невозможно. Если раздел начинается в той вытертой области, но значительно расширяется вне ее, Вы смогли использовать fsck (или подобные инструменты в других Ose) для восстановления файловой системы или по крайней мере большей части из него. Там совершенствуются fsck опции, которые могли бы помочь Вам с этой задачей, но я не эксперт по их использованию. Отметьте также это fsck действительно фронтенд к определенным для файловой системы инструментам такой как e2fsck, и определенные для файловой системы опции для этих инструментов могут быть важными в восстановлении Вашей файловой системы (систем).

Если Вы не перезагрузили, Вы могли бы попытаться создать резервную копию безотносительно файловой системы (систем) большинство подверженных риску, с помощью обычных команд уровня файла такой как tar или cp. Существует риск, что Linux попытается считать данные файловой системы с перезаписанного раздела диска, станет запутанным, и полностью подвесит компьютер. В худшем варианте беспорядок мог бы даже вызвать записи поврежденных данных вне поврежденной области, таким образом усугубив положение. Таким образом этот подход не без его рисков. Несмотря на это, это могло бы стоить рискнуть для резервного копирования важных пользовательских данных к внешнему диску.

Другой подход восстановления данных должен использовать PhotoRec. Этот инструмент ищет диск, во многом как TestDisk, но PhotoRec ищет типы общего файла. Таким образом это может использоваться для восстановления файлов, даже если структуры данных файловой системы плохо повреждены. Этот инструмент мог бы быть полезным, если бы раздел начался в поврежденных первых 4 ГБ Вашего диска, но расширяет кроме того область. Если fsck не может восстановить файловую систему достаточно хорошо, чтобы быть смонтированным, PhotoRec мог бы, по крайней мере, восстановить некоторые файлы с нее. Знайте, тем не менее, что PhotoRec делает плохое задание восстановления имен файлов и структур каталогов. Вас оставят с насыпью плохо названных файлов, которые необходимо будет искать вручную для выяснения то, что Вы имеете.

Если Вы загрузились в режиме EFI, Вашего ESP почти наверняка не стало. Если можно восстановить таблицу разделов, можно создать новую файловую систему FAT на ESP и затем использовать Восстановление Начальной загрузки для возврата Ubuntu bootability. Концептуально подобные процедуры восстановления возможны для Windows, но я не знаком с ними. Если Вы загруженный двойным образом с Windows, необходимо спросить об этом на форуме Windows. Я рекомендую восстановить загрузчик Windows сначала и затем использовать Восстановление Начальной загрузки в Ubuntu. Если Вы сделаете это наоборот, то компьютер закончит тем, что загрузился прямо к Windows. Эта проблема может быть устранена, но лучше не иметь его вообще.

Если Вы загрузились в режиме BIOS, Ваш загрузчик также уничтожается. Восстановление начальной загрузки может восстановить GRUB, после того как Ваш раздел (разделы) Ubuntu восстанавливается. В зависимости от местоположения Windows (если Вы загруженный двойным образом это), Вы, возможно, должны восстановить его загрузчик с помощью методов и инструментов Windows.

3
ответ дан 3 December 2019 в 06:53

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

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