理由:/bootファイルシステムが破損している:起動可能な2つのハードディスクの接続ケーブルが起動時に誤ってマザーボードから外れ、ハードディスク/bootファイルシステムがクラッシュする可能性があります。オペレーティングシステム7LVM2 でミラーリングされる起動可能な 2 x 320 GB フルドライブ(/dev/mapper/cl-root、/dev/mapper-cl-home、およびスワップ)インストール中。
CD-ROMから起動して破損したルートパーティションのスーパーブロックを修復しようとしましたが、成功しませんでした。これで、SATA->USBで接続されたドライブを別のCentOS 7サーバーのUSBポートに接続しましたが、次のように表示されます。
[root@localhost ~]# fdisk -l
..... (**ignore the current server internal drivers info here**)
--- below is the external USB SATA 320GB corrupted /boot drive -----
......
Disk /dev/sdg: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disk label type: dos
Disk identifier: 0xe9e67578
Device Boot Start End Blocks Id System
/dev/sdg1 * 2048 2099199 1048576 83 Linux
/dev/sdg2 606116385 625137344 9510480 7 HPFS/NTFS/exFAT
/dev/sdg3 2099200 606115839 302008320 8e Linux LVM
私の主な目的は、破損したブートディスクからホームディレクトリデータを回復することです。これを達成するために、次のいずれかを支援しています。
- 破損したハードドライブからデータをコピーします。
- 以前のようにスーパーブロックが起動するように変更します。 (この質問をできるだけ短くするには、これが1よりも簡単であると思われる場合はお知らせください。ここで貼り付けることができるより長いトラブルシューティングコードがあります。)
1)で行った作業の詳細は次のとおりです。
- 破損したハードドライブからデータをコピーします。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2.7T 0 disk
......(ignore the internal disk, below is the USB HDD)....
sdg 8:96 0 298.1G 0 disk
├─sdg1 8:97 0 1G 0 part
├─sdg2 8:98 0 9.1G 0 part
└─sdg3 8:99 0 288G 0 part
sr0 11:0 1 4.1G 0 rom
3つのスライスをすべてマウントポイントにマウントしましたが、/dev/sdg3は次のエラーで失敗します<---主な質問は次のとおりです。ホームデータを表示するには、このスライスをどのようにマウントしますか? (明らかにデータはsdg1とsdg2にはありません)。
[root@localhost ~]# mount /dev/sdg1 /media/1
[root@localhost ~]# mount /dev/sdg2 /media/2
[root@localhost ~]# mount /dev/sdg3 /media/3
mount: unknown filesystem type 'LVM2_member'
[root@localhost ~]# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
......
/dev/sdg2 9510476 8211864 1298612 87% /media/2
/dev/sdg1 1038336 300072 738264 29% /media/1
testdiskを使ってsdg3からデータをダンプし、image.ddファイルを出力してみました。しかし結局、私はこのimage.ddファイルがまだLVM2_memberでラップされていることを発見しました。
[root@localhost home-gwu-old]# ls -l
total 302008328
-rw-r--r--. 1 root root 309256519680 Jan 5 19:34 image.dd
[root@localhost]# mount -o loop image.dd /media/3
mount: unknown filesystem type 'LVM2_member
あなたのどんな助けにも感謝します!ゴードン
ベストアンサー1
一般に、LVM対応のLinuxシステムでは、表示されるすべてのLVMボリュームグループを自動的に検出して有効にできますが、データ復旧状況ではVG / LVを手動で有効にする方法を知る必要があります。
状態が不確実なLVMボリュームグループを処理するときに、vgscan
最初のステップとしてマニュアルを使用するのは悪いことではありません。エラーメッセージが返されると、ボリュームグループが何らかの理由で破損していることがわかります。
まず、vgscanを試してみてくださいvgchange -ay --activationmode degraded
。ほとんどのディストリビューションではこれがデフォルトの自動アクティベーションモードになりますが、ディストリビューションではデフォルトでより制限的なアクティベーションモードになることcomplete
があります。
それでも問題が解決しない場合は、以下を試してくださいvgchange -ay --activationmode partial
。このコマンドは成功し、前のコマンドは失敗した場合にアクティブな一部のLVの一部が欠落する可能性があることに注意してください。
VGを有効にすると、各LVのデバイスノードも表示されます。ただし、一部の特別なケースでは、明示的なデバイスノード作成を使用する必要がありますvgscan --mknodes
。
VGが正常に(部分的に)アクティブになったら、出力にLVを表示する必要がありますlvs
。その後、通常どおりスキームを使用するか、/dev/VGname/LVname
命名方式を使用して/dev/mapper/VGname-LVname
LVをインストールできます。