間違ったディスクで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を分割し、最後に/ dev/sdbでkpartxを実行しました。これが、sdaのボリュームが再起動するまで正しく動作した理由だと思います。
エラーに気づき、/ dev/sdaのパーティションテーブルを回復しようとしました
しかし、元のパーティションテーブルを回復することはできませんでした。/dev/sda1に表示されるブロック数は、常に292969348であるため、元のブロックと比較して+7です。 sdbをパーティション分割する前にfdiskをアップグレードしたことを覚えています。おそらく、新しいバージョンが原因ですか?
それでも、未使用の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
元の場所に戻す必要があります。または、パーティション回復ツールを実行します(「パーティションLinuxの回復」に対するGoogleの最初のヒットは面白そうです)。しかし、私はパーティションテーブルのバックアップに固執します。
出力からパーティションテーブルを復元することが成功の鍵でした。元のパーティションテーブルと復元されたパーティションテーブルの間の上記のターミナルダンプの微妙な違いに注意してください。シリンダー値は一致しますが、実際のセクター数は一致しません。
追加のヘルプは testdisk から来て、最終的にパーティション情報を正しく検出して復元しました。リカバリ手順中に、バックアップに次の白い斑点があることに気づきました。