Мне удалось запустить fdisk не на том диске. Однако мне удалось сохранить журнал сеанса терминала.
Fdisk перед авария:
~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 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: 0x72fc82e8
Device Boot Start End Blocks Id System
/dev/sda1 * 1 36473 292969341 8e Linux LVM
/dev/sda2 36474 38913 19599300 b W95 FAT32
Позже в журнале я обнаружил:
$ sudo fdisk -u /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c').
Command (m for help): p
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x72fc82e8
Device Boot Start End Blocks Id System
/dev/sda1 64 550000000 274999968+ 83 Linux
/dev/sda2 550000001 625142447 37571223+ 83 Linux
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x72fc82e8
Device Boot Start End Blocks Id System
/dev/sda1 64 550000000 274999968+ 8e Linux LVM
/dev/sda2 550000001 625142447 37571223+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Das Gerät oder die Ressource ist belegt.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Система продолжала работать нормально. Я разделил / dev / sdb так, как хотел, и, наконец, запустил kpartx на / dev / sdb. Полагаю, поэтому тома на sda вели себя корректно до перезагрузки.
Заметил ошибку и попытался восстановить таблицу разделов на / dev / sda
Однако мне не удалось восстановить исходную таблицу разделов. Количество блоков, отображаемых для / dev / sda1, всегда равно 292969348, т.е. +7 по сравнению с исходным. Я помню, как обновлял fdisk перед разбиением sdb, может это из-за более новой версии?
Тем не менее, я считал систему безопасной, так как не возражал против неиспользуемого раздела fat32. После перезагрузки lvm находит физический том, но не находит группы томов. Я определил одну группу томов, состоящую только из sda1 и нескольких логических томов в этой группе.
Текущее состояние системы:
~# fdisk -c -l /dev/sda
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 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: 0x72fc82e8
Device Boot Start End Blocks Id System
/dev/sda1 * 1 36473 292968348+ 8e Linux LVM
/dev/sda2 36474 38913 19599300 b W95 FAT32
~# pvdisplay
"/dev/sda1" is a new physical volume of "279,40 GiB"
--- NEW Physical volume ---
PV Name /dev/sda1
VG Name
PV Size 279,40 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ur3J4Y-cwvC-lji2-RPk0-39xb-ltzW-ogN4Sd
~# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
~# pvck -v /dev/sda1
Scanning /dev/sda1
Found label on /dev/sda1, sector 1, type=LVM2 001
Found text metadata area: offset=4096, size=192512
Found LVM2 metadata record at offset=168448, size=28160, offset2=0 size2=0
Found LVM2 metadata record at offset=67584, size=100864, offset2=0 size2=0
Почему я не могу восстановить исходную таблицу разделов с точным количеством блоков? Почему lvm не находит группы томов? Какие у меня варианты сейчас? Могут ли множественные метаданные lvm помочь? Как мне их использовать?
Я не гарантирую, что все ваши данные вернутся, но вы можете попробовать переделать метаданные LVM. В любом случае, в HPUX это вообще не касается области данных, но вам нужна информация о том, как был создан LVM.
Опять же, я успешно использовал этот тип процесса в системах HP / UX LVM, и он может сработать в вашем случае.
Вам также может потребоваться переустановить диск, если это загрузочный / загрузочный диск.
НО, если вы не хотите потери данных, обязательно сделайте резервную копию диска, прежде чем попробовать мои предложения.
Вы должны разбить резервную копию своей таблицы разделов и dd
его обратно на место. Или запустите инструмент для восстановления разделов (интересно первое попадание в Google по запросу «восстановление разделов Linux»). Но я бы придерживался резервной копии таблицы разделов.
Восстановление таблицы разделов из выходных данных было ключом к успеху. Обратите внимание на небольшую разницу в приведенных выше дампах терминала между исходной и восстановленной таблицей разделов: хотя значения цилиндров совпадают, фактическое количество секторов не будет.
Дополнительная помощь пришла от тестовый диск который, наконец, правильно обнаружил и восстановил информацию о разделе. Во время процедуры восстановления я заметил на своих резервных копиях следующие белые пятна: