Випадково зробив dd / dev / sda


35

Я записав образ ISO на свій жорсткий диск за допомогою sudo dd if=image.iso of=/dev/sda. Я мав на увазі /dev/sdc, і тепер запущений sudo fdisk -lвертає лише один розділ на / dev / sda, тоді як їх повинно бути 6. Чи можливо відновити мої дані?

Я ще не вимкнув (перезавантажив) комп’ютер.


24
ddзнову показав своє потворне обличчя "Data Destroyer" :-( Він перезаписав головний диск накопичувача (що відповідає розміру файлу iso). Дані, які там були, втрачені. У вас є досить недавнє резервне копіювання файли, які ви не можете дозволити собі втратити? В іншому випадку ви повинні підготуватися до важкої роботи з ремонту таблиці розділів і файлових систем, найкраще на клонованій копії за допомогою Testdisk , і якщо це не вдасться, ще важче працювати над відновленням даних файлів, які можна знайти "позаду" частина перезаписаного диска. Для цього ви можете використовувати PhotoRec . Дивіться це посилання, cgsecurity.org
sudodus

6
Якщо диск gpt розділений, він має перевагу резервної таблиці розділів на кінці диска. Тільки початок приводу до розміру ISO було повністю перезаписано і втрачено. Залежно від розмірів розділів, можливо, ви зможете відновити деякі або більшість інших розділів.
Олдфред

10
@sudodus "знову ddпоказав своє потворне обличчя" Destroyer Data " - За винятком цього нічого спільного dd, це стосується прямого доступу до дискового пристрою як root. Будь-який інший інструмент міг мати такий же ефект. cat image.iso > /dev/sdaмав би такий самий ефект. Або pv .... Або, певною мірою, навіть vi /dev/sda. Насправді це нагадує мені історію, коли Лінус Торвальдс намагався зайти в мережу за допомогою свого пристрою жорсткого диска, а не пристрою модему, замінивши початок свого приводу рукостисканням набору . Нічого спільного dd.
marcelm

4
Наскільки точно ваш .isoфайл? Ви перебивали dd, чи це закінчилося?
marcelm

4
@marcelm, ти маєш рацію. Але в реальному житті люди використовують ddтаке (для цієї мети), тому я вважаю, що попередження "Destroyer Data" є актуальним, хоча цілком правильне попередження повинно бути довшим: "Не використовуйте командний рядок, як sudo dd if=image.iso of=/dev/sdxклонувати до маси пристрій зберігання. Використовуйте інструмент, який допоможе вам ідентифікувати та вибрати правильний цільовий пристрій, який має кінцеву контрольну точку, щоб ви могли двічі перевірити, чи будете ви клонуватися з ізо-файлу на правильний цільовий пристрій, наприклад, StartupDiskCreator, Disks, mkusb , Win32DiskImager. "
sudodus

Відповіді:


65

Оскільки ваш комп'ютер все ще ввімкнений, у вас є шанс зберегти речі.

По-перше, 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, тому вам не доведеться нічого відтворювати вручну.


15
"Перевірте /sys/block/sda/*/{start,end}та відтворіть ваші розділи за допомогою цієї інформації": ви могли б трохи розширити цю інформацію? Це не тривіальна операція і, здається, є головним моментом вашої інакше чудової відповіді.
terdon

Висновок , що легше розшифровку, введіть їх у запрошенні оболонки з RETURN після кожного ...............: sudo parted, unit s, print all,quit
Ханну

3
Скопіюйте будь-яку цінну інформацію на інший диск (наприклад, USB-накопичувач) під час виявлення. Якщо будь-який з кроків відновлення розділів не іде ідеально, вам потрібно мати запис про те, що було в пам'яті все ще працюючого комп'ютера. Крім того, скопіюйте ваші найцінніші та / або невеликі файли (включаючи такі речі, як .bashrcінші файли з точок, з домашнього каталогу, і все /etc, крім реальних даних), на інший диск, поки ваш робочий комп'ютер все ще працює . tar.gz - це хороший формат для копіювання цілих каталогів (оскільки він зберігає дозволи та ін.).
Пітер Кордес

Ймовірно, йому також доведеться переформатувати те, що було / завантажувати, що є небезпечним, коли існує невизначеність того, що ядро ​​думає про ваш макет розділу ...
rackandboneman

1
@rackandboneman Ядро відмовляється читати таблиці розділів на диску з встановленими розділами. Переформатування /bootподібне цілком є ​​"безпечним" (по модулю буквально все інше про цю ситуацію ), оскільки ядро ​​нічого не впевнене.
HTNW

21

Вибачте, що читаю про вашу нелегку удачу

Я здогадуюсь, що у вас немає резервної копії, і я шкодую, що читаю про вашу жорстку вдачу в користуванні

sudo dd if=image.iso of=/dev/sdx

де ви використовували букву диска x=, aщоб ви перезаписали початок свого жорсткого диска, де ви зберігали безліч цінних даних.

Ви не перша людина, і я боюся не остання людина, яка торкнулася цієї проблеми. ddрекомендується використовувати на багатьох веб-сайтах таким чином. Це потужний, але небезпечний метод, адже він робить те, що ви скажете, без проблем. З цієї причини його часто називають «Знищувач даних».

@marcelm коментує, що це прізвисько несправедливе. Він правий, що запис безпосередньо у файл пристрою як root викликає ризик . Тож майте на увазі, що ви можете легко перезаписати диск та знищити цінні дані, записавши у відповідний файл пристрою /dev/sdx. (Більш безпечні інструменти наведені в кінці цієї відповіді.)

Відновіть таблицю розділів, файлові системи та / або вміст файлу

  • Робіть якомога менше з накопичувачем, і, перш за все, не пишіть на нього нічого, тому що це може погіршити ситуацію, перезаписавши дані, які ще можливо відновити.

  • Якщо ваші дані цінні, вам слід працювати над клонованою копією , а не оригінальним (частково перезаписаним) накопичувачем. Перегляньте це посилання, прокрутіть униз до розділу "Розширений ремонт таблиці розділів, файлової системи та / або відновлення файлів"

    Відновіть таблицю розділів та файлову систему маятника

  • Якщо у вас була таблиця розділів GUID, GPT, в кінці диска є резервна копія таблиці розділів /dev/sda, і ви, можливо, зможете відновити головну таблицю розділів з цієї таблиці резервного копіювання за допомогою інструменту gdisk. man gdiskДеталі див. У посібнику .

  • Ви зможете відновити таблицю розділів і файлові системи за допомогою Testdisk від

    http://cgsecurity.org

    Прочитайте інструкції на веб-сайті CGSecurity, а також посилання, надане @ElderGeek, розділи зникли після втрати електроенергії під час встановлення

  • Ви також можете вдатися відновити таблицю розділів і файлові системи за допомогою gpart / gparted відповідно до посилання, наданого @CSM,

    ЯК: Відновлення втрачених розділів до видаленої або пошкодженої таблиці розділів

  • 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 .

Ви також можете використовувати інструменти для вилучення, наприклад , які забезпечують кінцеву контрольну точку


1
я можу поручитися за тест-диск cgsecurity, працює набагато краще, ніж інші альтернативи, які я намагався в минулому, де Testdisk був єдиним, хто зумів врятувати щось корисне. але будьте обережні, маленький ебать за замовчуванням намагається відновити свій розділ на самому диску! xx
hanshenrik

1
+1. Я також можу поручитися за testdisk. Також сценарій обгортки для запобігання ddнаписання на ваш / sda / sdb / все, що є гарною ідеєю.
WinEunuuchs2Unix

19

За вашою ddкомандою ви перезаписали таблицю розділів / dev / sda та всі дані, наскільки йде розмір image.iso.

Тому найкраще, що ви можете досягти, - це відновити таблицю розділів (із точними розмірами), щоб відновити принаймні розділи до кінця / dev / sda.


1
Якщо ви хочете знати, як отримати точні розміри, дивіться другий параграф цієї відповіді .
wizzwizz4

16

За винятком відновлення з резервної копії, немає можливості повністю відновитись. DD перезаписав таблицю розділів і деякі дані пристрою.


19
Я думаю, я повинен викинути всі свої резервні копії після аварій.
спотикання

23
@Baaing Cow, звичайно, це відповідь, і, звичайно, неможливо відновити дані. Ось що означає, коли ви перезаписуєте дані: його немає.
psusi

22
@ ChaiT.Rex Це, здається, є міфом, принаймні, на будь-якому обладнанні, яке ви, швидше за все, знайдете на ПК, виготовленому протягом останнього десятиліття.
Девід Шварц

19
@ ChaiT.Rex Це стосується лише не повністю перезаписаних дисків, де стирається лише частина диска. Якщо весь диск був стертий або перезаписаний, відновлення даних не існує. Фахівці чи ні.
Thomas Ward

8
@BaaingCow Оскільки ви знаєте, що має бути спосіб відновити дані, будь ласка, просвічіть нас. Багато людей будуть готові платити гроші за вашу техніку!
Тім

9

Якщо ваш диск розділений на окремі /та /homeрозділи, а /homeрозділ був після /розділу, ви можете відновити свої дані. MBR, який перераховує, де більшість розділів перезаписаний. Однак gparted може відновити ваш /homeрозділ.

Цей пост на форумах Ubuntu дає деякі ідеї, як це зробити; Я виявив, що шукаючи "gparted відновити розділ".

Після того як ви знайшли загублений розділ (у його може бути всередині розширеного розділу), слід додати його як єдиний розділ у таблиці розділів.

Після того, як ви зробите це, вам доведеться перевстановити Linux, повідомивши зберегти відновлений розділ як /home.


2

Тестдиск на допомогу

Я особисто можу поручитися за Testdisk, який зберігав мої дані після того, як я неодноразово копіював і вставляв інструкції /dev/sdbта змінював їх на /dev/sddмій USB. Лише один раз я забув її змінити, і там пішов /dev/sdbна смітник.

Налаштуйте вашу систему, щоб ніколи не писати /dev/sda

Настійно рекомендую створити скрипт для обгортки: не дозволяйте `dd` знищувати SSD або HDD . Це гарантує, що ddніколи не записує на будь-які ваші пристрої масового зберігання /dev/sdaабо, можливо, /dev/sdbбудь-які інші.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.