Случайно сделал dd /dev/sda
Я записал ISO-образ на свой жесткий диск, используя sudo dd if=image.iso of=/dev/sda
, я имел в виду /dev/sdc
и сейчас работает sudo fdisk -l
возвращает только один раздел в /dev/sda, хотя должно быть 6. Возможно ли восстановить мои данные?
Я еще не выключил (перезагрузил) мой компьютер.
6 ответов
Поскольку ваш компьютер все еще включен, у вас есть хорошие шансы на сохранение.
Первый, sysfs
предоставляет ядру в памяти представление таблиц разделов. Прямо сейчас ваше ядро не перечитало таблицу диска и запоминает ваше разбиение на разделы. внутри /sys/block/sda/
, должен быть один каталог для каждого раздела. Каждый такой подкаталог содержит файл start
и файл size
, которые представляют расположение и размер раздела, в секторах. Бежать fdisk
а затем воссоздать каждый раздел (по порядку!) с информацией в его sysfs
каталог. Обратите внимание, что вам также придется создать новую таблицу разделов. Убедитесь, что ваша новая таблица разделов такая же, как и предыдущая. Вы можете проверить это в /sys/block/sda
, Если ты видишь sda1
вплоть до sda7
в то время как у вас есть только 6 разделов, у вас, скорее всего, была MBR, а в остальном, вероятно, GPT Вам также необходимо установить флаги и типы для этих разделов. смотреть на /etc/fstab
и попробуйте собрать информацию о типах разделов, которые у вас есть, затем просмотрите Википедию, чтобы преобразовать их в коды для вашей схемы разбиения.
Поскольку вы, похоже, можете использовать свою файловую систему, вполне вероятно, что ваш dd
не удалось перезаписать ничего из этого, так как большинство важных битов файловой системы находятся спереди. Проверьте /etc/fstab
чтобы увидеть, какие разделы соответствуют какой части вашей системы, а затем использовать объем данных dd
скопировал, чтобы получить оценку того, сколько вы нючили. Если вы перезаписали только часть файловой системы, fsck
может быть в состоянии исправить это немного (но вы потеряли хороший кусок данных).
Скорее всего, вы переписали /boot
, Вам придется переустановить ядро (с aptitude
) и переустановите GRUB2 (с помощью grub-install
) (который уничтожил как свою первую, так и вторую стадию). GRUB2 настроен с файлами в /etc
так что вам не придется ничего воссоздавать вручную.
Извините, что прочитал о вашей неудаче
Я думаю, что у вас нет текущей резервной копии, и мне жаль читать о вашей неудаче, используя
sudo dd if=image.iso of=/dev/sdx
где вы использовали букву диска x
знак равно a
так что вы перезаписывали начало вашего жесткого диска, где вы хранили много ценных данных.
Вы не первый человек, и я боюсь, что не последний человек, затронутый этой проблемой. dd
Рекомендуется на многих веб-сайтах, чтобы использовать как это. Это мощный, но опасный метод, потому что он делает то, что вы говорите, делать без вопросов. По этой причине его часто называют "разрушитель данных".
@marcelm комментирует, что это прозвище несправедливо. Он прав, что запись непосредственно в файл устройства от имени root создает риск. Поэтому имейте в виду, что вы можете легко перезаписать диск и уничтожить ценные данные, записав в соответствующий файл устройства /dev/sdx
, (Более безопасные инструменты перечислены в конце этого ответа.)
Восстановить таблицу разделов, файловые системы и / или содержимое файла
Делайте с диском как можно меньше, и, прежде всего, ничего на него не пишите, потому что это может ухудшить ситуацию, переписав данные, которые все еще можно восстановить.
Если ваши данные ценны, вы должны работать с клонированной копией, а не с оригинальным (частично перезаписанным) диском. Посмотрите эту ссылку, прокрутите вниз до пункта "Расширенное восстановление таблицы разделов, файловой системы и / или восстановление файлов".
Если у вас была таблица разделов GUID, GPT, в конце диска есть резервная копия таблицы разделов.
/dev/sda
и вы можете восстановить основную таблицу разделов из этой резервной таблицы, используя инструментgdisk
, См. Руководствоman gdisk
для деталей.Вы можете восстановить таблицу разделов и файловые системы, используя Testdisk из
Прочитайте инструкции на веб-сайте CGSecurity, а также ссылку, предоставленную @ElderGeek, разделы исчезли после потери питания при установке
Вы также можете восстановить таблицу разделов и файловые системы, используя gpart/gparted по ссылке, предоставленной @CSM,
HOWTO: Восстановление потерянных разделов в таблицу удаленных или поврежденных разделов
PhotoRec: Если вам не удалось восстановить таблицу разделов и файловые системы, вы все равно можете восстановить некоторые данные файла. Файлы в головной части, возможно, 1-1,5 ГБ, перезаписываются и теряются, но файлы, находящиеся за этой частью диска, все еще там. PhotoRec с http://cgsecurity.org/ - это инструмент, который может восстанавливать данные "с поверхности диска" без файловой системы. Типичные данные в начале распространенных типов файлов используются для идентификации.
Следующая ссылка содержит подробную информацию о PhotoRec,
https://www.cgsecurity.org/wiki/PhotoRec
Вы должны сохранить файлы в раздел на отдельном диске.
Невозможно восстановить структуру каталогов и, как правило, невозможно восстановить имена файлов (а не разрешения и права собственности), и возникают проблемы, когда файлы фрагментированы, но многие файлы могут быть восстановлены PhotoRec (не только фотографии, а также многие другие распространенные типы файлов). Но, и это большая, но это большая и тяжелая работа, чтобы пройтись по огромному количеству несортированных файлов, чтобы определить, какие действительно важные файлы нужно переименовать в значимые имена файлов.
Более безопасные инструменты для создания загрузочных USB-накопителей с Ubuntu
В будущем, пожалуйста, используйте инструмент, который поможет вам определить и выбрать правильное целевое устройство и который имеет конечную контрольную точку, чтобы вы могли дважды проверить, что вы будете клонировать из iso-файла на правильное целевое устройство, например
- В Ubuntu: Ubuntu Startup Disk Creator (в Ubuntu 16.04 LTS и более новых версиях),
В Linux:
- Диски псевдоним
gnome-disks
, - mkusb,
- Диски псевдоним
В Windows: Win32DiskImager.
Вы также можете использовать инструменты извлечения, которые обеспечивают конечную контрольную точку, например
- В Windows: Руфус,
- В Ubuntu, Windows, MacOS: Unetbootin.
По вашему dd
В этой команде вы перезаписали таблицу разделов / dev / sda и все данные до размера image.iso.
Поэтому лучшее, что вы можете достичь - это восстановить таблицу разделов (с точными размерами), чтобы восстановить хотя бы разделы в конце /dev/sda.
Если не считать восстановления из резервной копии, полного восстановления не существует. DD переписал таблицу разделов и некоторые данные устройства.
Если вы диск разделен на отдельные /
а также /home
перегородки, а /home
раздел был после /
раздел, то вы можете восстановить свои данные. MBR, в которой указано, где находится большинство разделов, был перезаписан. Тем не менее, gparted может восстановить ваши /home
раздел.
Этот пост на форумах Ubuntu дает некоторые идеи о том, как это сделать; Я обнаружил, что в поиске "gparted recovery раздел".
Как только вы нашли потерянный раздел (может быть внутри расширенного раздела), вы должны добавить его как единственный раздел в таблице разделов.
После того, как вы это сделаете, вам придется переустановить Linux, указав сохранить восстановленный раздел как /home
,
Тестдиск на помощь
Я могу лично поручиться за Testdisk, который сохранил мои данные после того, как я неоднократно копировал и вставлял инструкции для /dev/sdb
и изменив его на /dev/sdd
который был моим USB. Только один раз я забыл его поменять и туда поехал /dev/sdb
в мусорный ящик.
Настройте свою систему, чтобы никогда не писать в /dev/sda
Я настоятельно рекомендую создать скрипт-обертку: не допускать разрушения `dd` SSD или HDD. Это обеспечивает dd
никогда не пишет /dev/sda
или возможно /dev/sdb
или любой другой из ваших запоминающих устройств.