LINUX.ORG.RU
решено ФорумAdmin

Восстановить Volume

 ,


0

1

Сломал volume /u01 с базой при попытке увеличить размер. В vmware админ увеличил диск с 500 до 800. Далее по инструкции из инета я всё сломал.

  1. сделал rescan диска sdb. fdisk -l показал новый размер.
  2. далее fdiskом удалил партицию и создал новую с новым размером (потом только подумал что надо было parted использовать для увеличения)
  3. указал type 8e (LVM), нажал w. появилась ошибка что kernel uses old table. partprobe не помог, отправил в ребут.
  4. машина не запустилась, не смогло примонтировать u01_LV в /u01 . закоментил в fstab. запустился.
  5. в /etc/lvm/backup и в /etc/lvm/archive есть бэкап конфига и архив моей VG.
  6. пробовал vgcfgrestore –test -f /etc/lvm/backup/u01_vg u01_VG пишет ошибку couldnt find device with uuid ..
  7. Значит надо pvcreate . выполняю pvcreate –test –uuid «xxxx-xxxx-xxx» –restorefile /etc/lvm/backup/test_vg /dev/sdb1 пишет successfully created

команды pvcreate и vgcfgrestore без –test ещё не выполнял. Всё верно? Такими шагами восстановится раздел?


Ответ на: комментарий от bigbit

Что-то злой я стал.

@flint1: fdisk’ом удалять партицию можно, я сто раз так делал. «kernel still uses the old partition table» - норма. Единственное - надо убедиться, что свежесозданный раздел будет начинаться с того же самого сектора, что и старый. Видимо, ты этого не сделал, из-за этого проблемы.

Я бы тебе не рекомендовал продолжать теми командами, которые ты написал, чтобы не ухудшать ситуацию. Единственное, что ты пока запорол - первый сектор диска. Данные целы. Пока еще.

Вместо этого я бы посоветовал определить первоначальный адрес раздела и воссоздать его.

Покажи текущий вывод команды fdisk -l, может быть я тебе подскажу бывшее правильное начало раздела.

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

добрый день.

было: Disk /dev/sdb: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001735e Device Boot Start End Blocks Id System /dev/sdb1 1 65271 524287999+ 8e Linux LVM

стало: Disk /dev/sdb: 859.0 GB, 858993459200 bytes 255 heads, 63 sectors/track, 104433 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001735e Device Boot Start End Blocks Id System /dev/sdb1 1 104433 838858041 8e Linux LVM

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

Пока pvcreate не делал. поэтому тут и спросил. сделал в fdisk команду d , потом сразу n . Смещения не указывал, делал по умолчанию. думаю что с 1 сектора он и создал.

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

Раздел на правильном месте, возможно fdisk затёр ему что-то когда ты его заново создавал. Он иногда спрашивает вопросы вида «там где ты хочешь создать раздел уже есть фс, затереть её сигнатуру?», но затирание касается максимум нескольких секторов. Не помнишь таких вопросов?

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

Любую потенциально опасную процедуру неплохо бы проверять на виртуалке. Особенно если копипастишь команды из гугла без понимания, что они делают. Но ТС и так мучал ВМ, мог бы заснапшотить предварительно.

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

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

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

действия в fdisk: d - n - 1 - p - t - 8e - w . Fdisk ничего лишнего не написал. После w «the partition table has been altered! calling ioctl … warning:… error 16: device busy… kernel uses old table..» далее ребут, фс не примонтировалась. ну и всё, больше пока ничего не делал. запускал команду vgcfgrestore и pvcreate с ключом –test.
fdisk -l у диска показывает стартовый сектор 1 до и после увеличения размера.

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

Мне – нет, я такое уже делал, и знаю, как правильно. Но ТС явно впервые, причем не на уровне LVM накосячил, а как раз ранее, с классической разметкой — до LVM он не добрался, когда уже все сломал.

Собственно, вся проблема из-за того началась, что вместо диска целиком в LVM, как обычно делают, зачем-то сверху ещё и MBR с одним разделом сделали. И именно его ресайз был неправильным.

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

Всё нормально у него с этим, при увеличении увеличивается общее количество цилиндров, а сами цилиндры одинаковые. Неудобно конечно что единицы измерения странные, но ломаться там нечему. Проблема скорее всего именно в том что fdisk затёр какие-то метаданные lvm при создании нового раздела.

firkax ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Если хочешь ему помочь - создай в виртуалке диск с его старой геометрией (он её тут приводил), сделай на ней такой же раздел и lvm на нём, и потом сравнивай hexdump-ы метаданных правильных и тех что у него сейчас там (скорее всего у него там занулённый первый сектор). Вполне возможно что можно просто скопировать правильный сектор на место удалённого. Проверив, разумеется, что где-то ещё метаданные не затёрлись.

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

Попробуй пересоздать раздел, указав 2048 сектор (не цилиндр!) в качестве начала. Это типичное смещение начала раздела. Хуже ты этим не сделаешь, зато есть хороший шанс угадать.

Если при записи раздела fdisk тебе скажет «/dev/sdb: device contains a valid LVM signature», это значит, что ты угадал. Главное - не отвечай «y» на его предложение затереть эту сигнатуру.

Если не хочешь угадывать, то сдампь первые 10Mb /dev/sdb и выложи куда-нибудь.

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

Было:

[root@bi11-db ~]# fdisk -l Disk /dev/sda: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000e7761

Device Boot Start End Blocks Id System

/dev/sda1 * 1 64 512000 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 64 6528 51915776 8e Linux LVM

Disk /dev/sdb: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001735e

Device Boot Start End Blocks Id System

/dev/sdb1 1 65271 524287999+ 8e Linux LVM

Стало:

[root@bi11-db ~]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000e7761

Device Boot Start End Blocks Id System

/dev/sda1 * 1 64 512000 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 64 6528 51915776 8e Linux LVM

Disk /dev/sdb: 859.0 GB, 858993459200 bytes 255 heads, 63 sectors/track, 104433 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001735e

Device Boot Start End Blocks Id System

/dev/sdb1 1 65271 524287999+ 8e Linux LVM

flint1
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Да, ребят. Сейчас эти потуги не должны быть напрасными.

перед всеми работами я сделал оракловый полный бэкап БД би. но весь раздел долго восстанавливать.. софт оракловый с нуля ставить и далее рестор рманом. Сделать снапшот или копии виртуалки не было возможности, прав нет, админ не был доступен, а я торопился/меня торопили.

сейчас я сделал снапшот, и копирую полностью виртуалку перед тем как что-то пытаться реанимировать …

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

Не нормально. 63 сектор в качестве начала раздела - это вообще ужас. Все выравнивание идет нахрен.

Современные версии fdisk выравнивают начало на 2048 сектор. Это какой-то очень старый fdisk, раз он до сих пор цилиндрами оперирует. В таких древних версиях fdisk при создании раздела приходилось входить в expert mode, чтобы указывать смещение.

bigbit ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

прошу прощения, буфер обмена не работает через мой путь к рабочей консоле. тут интернет, а рабочая машина через wireguard-rdp-rdp.
поэтому пытался хоть как-то текст заредактировать …. через текст из письма три апострофа сначали и с конца как-то не сработали.

flint1
() автор топика