LINUX.ORG.RU
ФорумAdmin

Реанимация после dd


0

1

Хотел восстановить флешку и случайно вместо

sudo dd bs=1M count=1 if=/dev/zero of=/dev/sdb

сделал

sudo dd bs=1M count=1 if=/dev/zero of=/dev/sda

Теперь боюсь перезагружать комп. Запустил sudo update-grub что бы отремонтировать загрузку. Но груб вроде только первые 512 байт диска переписывает. Есть ли способ восстановить систему (ubuntu 12.04 server)?

Сколько данных записалось на диск? Какая разметка диска, какой раздел идёт первым? А так тебе сейчас нужно на основании содержимого /proc/partitions создать заново таблицу разделов и, скорее всего, пересоздать файловую систему на первом разделе.

Ещё здесь на форуме есть скрипт для поиска файловых систем по диску.

kostik87 ★★★★★
()
Ответ на: комментарий от akinator

Видимо записался 1 метр нулей на sda.

После прерывания dd по ctrl+c выводится объём записанных данных.

там был своп раздел и пара разделов ext4

Вы читать умеете?

kostik87

Какая разметка диска, какой раздел идёт первым?

Если swap был первым, то просто «рисуйте» заново таблицу разделов посредством fdisk. Для поиска границ разделов используйте вот этот скрипт: вопрос по dd и mount (комментарий)

Только тип файловых систем указывайте правильно.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

После прерывания dd по ctrl+c выводится объём записанных данных.

Сам-то читать умеешь?

bs=1M count=1

То есть фигня проблема, таблицу из /proc вернуть да загрузчик восстановить.

Автору темы совет на будущее: никогда не использовать имён /dev/sd??

Gotf ★★★
()
Последнее исправление: Gotf (всего исправлений: 1)
Ответ на: комментарий от Gotf

Вот мой /proc/partitions

major minor  #blocks  name

  11        0    1048575 sr0
   8        0  488386584 sda
   8        1    1951744 sda1
   8        2   48828416 sda2
   8        3   97655808 sda3
   8        4  339948544 sda4
   8       16   15428608 sdb
   8       17   15424512 sdb1

Как тут теперь узнать какой раздел primary, а какой extended? Порядок разделов был такой: сначало своп файл на 2гб, затем три раздела ext4: /, /var, /home

akinator ★★
() автор топика
Последнее исправление: akinator (всего исправлений: 2)
Ответ на: комментарий от akinator

Как тут теперь узнать какой раздел primary, а какой extended?

Все primary. Если бы были разделы в extended, они бы начинались с sda5, а сам extended был бы sda4. Что первый своп, действительно, хорошо для данного случая.

AS ★★★★★
()
Ответ на: комментарий от kostik87

заново таблицу разделов посредством fdisk.

Кстати, никогда не задавался вопросом... А fdisk не обнуляет начало каждого раздела при его создании ? Как в старые времена это делал DOS-овский.

AS ★★★★★
()
Ответ на: комментарий от AS

fdisk - это редактора таблицы разделов, с самими разделами он ничего не делает. Если что-то произошло с разделом, то это вина того, кто запускал какие-либо программы после fdisk.

kostik87 ★★★★★
()

fdisk /dev/sda и создавай primary разделы, сохраняй и сверяй /proc/partitions с тем что ты выложил тут

quest ★★★★
()
Ответ на: комментарий от quest
sudo fdisk /dev/sda

Команда (m для справки): p

Диск /dev/sda: 500.1 Гб, 500107862016 байт
255 головок, 63 секторов/треков, 60801 цилиндров, всего 976773168 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 512 байт
I/O size (minimum/optimal): 512 bytes / 512 bytes
Идентификатор диска: 0xb2b8f34e

Устр-во Загр     Начало       Конец       Блоки   Id  Система

Команда (m для справки): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   расширенный
Select (default p): p
Номер раздела (1-4, по умолчанию 1):
Используется значение по умолчанию 1
Первый сектор (2048-976773167, по умолчанию 2048):
Используется значение по умолчанию 2048
Last сектор, +секторы or +size{K,M,G} (2048-976773167, по умолчанию 976773167):

Какой у него последний сектор?

akinator ★★
() автор топика
Ответ на: комментарий от akinator

методом бинарного поиска подбирай) вводи - сохраняй - смотри /proc/partitions и так для sda1 sda2 sda3 sda4

quest ★★★★
()
Ответ на: комментарий от anonymous

да, выбирай он в менюшке ошибиться было бы сложнее

erzent ☆☆
()
Ответ на: комментарий от vxzvxz

пускай пока подбирает, если не с 2048 то последний размер не подберет

quest ★★★★
()
Ответ на: комментарий от vxzvxz

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

erzent ☆☆
()
Ответ на: комментарий от akinator

сначала наверное главное подобрать sda2 чтобы его размер был верный, а положение чтобы понять - можно и sda посканировать. как он подберется размер и можно будет примонтировать его - значит и начало его верное, тогда и все остальные легко подбираются

quest ★★★★
()

В общем я воспользовался простой утилитой для восстановления таблицы разделов testdisk. Всё нашлось и записалось. Перезагружать и тестировать пока не буду.

akinator ★★
() автор топика

только testdisk тебя спасе.

MikeDM ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.