случайно сделал fdisk -u /dev/vg00/db1

вообщем случайно не тот взял надо было db2 на виртуальной машине а сделал fdisk -u /dev/vg00/db1
ахтунг там боевая база
выдал
Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

ПРЕДУПРЕЖДЕНИЕ: Перечитывание таблицы разделов завершилось неудачей с ошибкой 22: Недопустимый аргумент.
Ядро все еще использует старую таблицу.
Новая таблица будет использована при следующей перезагрузке.

Диск /dev/vg00/db1: 4294 МБ, 4294967296 байт
24 heads, 24 sectors/track, 14563 cylinders, всего 8388608 секторов
Единицы = секторы по 1 * 512 = 512 байт

        Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/vg00/db11            2048     8388607     4193280   83  Linux

Команда (m для справки): d
Выбранный раздел 1

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый сектор (24-8388607, по умолчанию 24): 2048
Последний сектор или +size или +sizeM или +sizeK (2048-8388607, по умолчанию 8388607): 
Используется значение по умолчанию 8388607
Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

ПРЕДУПРЕЖДЕНИЕ: Перечитывание таблицы разделов завершилось неудачей с ошибкой 22: Недопустимый аргумент.
Ядро все еще использует старую таблицу.
Новая таблица будет использована при следующей перезагрузке.

щас всё работает
вопрос после перезагрузки виртуалки всё слетит у меня??

Вот скрипт:#!/usr/bin/perl

Вот скрипт:

#!/usr/bin/perl -w
for ($sector = 0; ; $sector++)
{
$offset = $sector * 512;
$cmd = "mount /dev/sdb /mnt/tmp -t xfs -o ro,offset=$offset > /dev/null";
`$cmd`;
print "sector: $sector offset: $offset\n";
die "partition found @ offset $offset!" if ($? == 0);
} 

Поможет найти границы файловых систем (разделов).

Вместо /dev/sdb укажите /dev/vg00/db1 вместо xfs укажите тип файловой системы на удалённых разделах (записях из partition table).

Основываясь на данных из /proc/partitions

grep db1 /proc/partitions

можете расчитать вторую границу удалённых разделов (записей из partition table).

Если записей (разделов) было несколько то указывая другое значение $sector = 0 и тип файловой системы продолжайте поиск границ удалённых записей (разделов).

Затем с помощью всё того же fdisk запишите новую старую таблицу разделов.

спасибо..я так понимаю я там

спасибо..я так понимаю я там точно повредил всё?

Ну по вашим словам вы только

Ну по вашим словам вы только затёрли таблицу разделов. Вам достаточно найти границы разделов (файловых систем) и заново создать таблицу разделов, скрипт вам поможет.

Если вы ни чего не скрываете то данные целы.

Ну а создание / редактирование с помощью fdisk таблицы разделов не затрагивает данные и не приводит к созданию файловых систем, так что найдя границы разделов и сделав правильные записи с помощью fdisk вы восстановит всё до прежнего состояния без потерь.

а разве я не сделал те же

а разве я не сделал те же самые границы??

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/vg00/db11            2048     8388607     4193280   83  Linux

Команда (m для справки): d
Выбранный раздел 1

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый сектор (24-8388607, по умолчанию 24): 2048
Последний сектор или +size или +sizeM или +sizeK (2048-8388607, по умолчанию 8388607): 
Используется значение по умолчанию 8388607
Команда (m для справки): w

как было 2048 и 8388607 так и осталось?

Проверьте: mkdir

Проверьте:

mkdir /mnt/tmp
mount /dev/vg00/db11p1 /mnt/tmp -t ext4 -o ro,offset=$((2048*512))

Или какая там у вас файловая система.

ext4

ext4

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".