仲良くして欲しい。
私はIT企業でWindowsシステムとクラウド技術を担当する技術者として働いているので、残念ながらLinuxの知識は非常に限られています。だから愚かな質問があればご了承ください。しかし、助けてくれるよう努力します。そして、ここに初めて投稿するので、間違った点があれば教えてください。
物語は次のとおりです。新しい顧客が電話をかけて自分のサーバーにアクセスできないと言いました。 - >サーバーが故障しました(新しいPSを使用しても電源装置とマザーボードが故障し、POSTビープ音も聞こえませんでした)。彼の以前のIT会社は1人放送だったが、残念ながら世界を去ったので、何の助けも受けられなかった。
サーバーは、LSI論理RAIDを内蔵した15年の富士通です。内部には、MBに接続された2つの2TB SATA HDDがあります。彼のすべてのデータとソフトウェアデータベースファイルはこのサーバーにあります。もちろん、バックアップはありません。すべてがミラーリングされているので、バックアップは必要ありません。顧客はまた、サーバーオペレーティングシステムをインストールしてから2〜3年前だと述べました。
だから私はDiskinternals RAID Recoveryのようないくつかの回復ツールを使い始めましたが、実際には動作しませんでした。単一のファイルだけをインポートしますが、その一部は機能ドキュメントなのでディスク自体は問題ないようですが、フォルダなどはインポートされません。お客様のソフトウェアを別のシステムに復元するには、完全なフォルダ、サブフォルダ、ファイルが必要です。
しかし、ファイルとフォルダはLinuxシステムにのみ存在することがわかりました。したがって、以前の技術者がLinux OSをインストールし、顧客のためにネットワーク共有を確立したと仮定します。
そのため、RAIDメンバーディスクの1つから別のHDDにダンプファイルをインポートし、さらにテストするためにDebianシステムをセットアップしました。彼がlinux / mdadm Raidを設定したのか、それともオンボードLSI Raidコントローラを使ってこれを行ったのかはまだわかりません。
これまでディスクの取り付けや再組み立ては行われませんでした。どんな助けでも大変感謝します。
- mount /dev/sdb /mnt/mountpointでエラーが発生しましたFSエラー、オプションエラー、スーパーブロックの破損
- ディスクは/ dev /にmdとして表示されません。
lsblk:
sdb 8:16 0 1,8T 0 disk
├─sdb1 8:17 0 240G 0 part
└─sdb2 8:18 0 1,6T 0 part
fdisk -l
Festplatte /dev/sdb: 1,82 TiB, 2000398934016 Bytes, 488378646 Sektoren
Festplattenmodell: EFAX-68FB5N0
Einheiten: Sektoren von 1 * 4096 = 4096 Bytes
Sektorgröße (logisch/physikalisch): 4096 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x87c99aec
Gerät Boot Anfang Ende Sektoren Größe Kn Typ
/dev/sdb1 * 2048 62916607 62914560 240G fd Linux RAID-Autoerkennung
/dev/sdb2 62916608 3897729167 3834812560 14,3T fd Linux RAID-Autoerkennung
/dev/sdb3 3897729168 3907029167 9300000 35,5G fd Linux RAID-Autoerkennung
mdadm --query /dev/sdb
/dev/sdb: is not an md array
mdadm - アセンブリ - スキャン
mdadm: No arrays found in config file or automatically
mdadm --/dev/sdbの確認
mdadm: No md superblock detected on /dev/sdb
どんな助けやヒントでも事前に感謝します。 KofftheHoff
編集1:
使用後
losetup --find --show --read-only --sector-size 512 --partscan /dev/sdb
そして
mdadm --examine /dev/loop*
私はこれが有望に見えると思います。
/dev/loop0:
MBR Magic : aa55
Partition[0] : 62914560 sectors at 2048 (type fd)
Partition[1] : 3834812560 sectors at 62916608 (type fd)
Partition[2] : 9300000 sectors at 3897729168 (type fd)
/dev/loop0p1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 7e3b9767:71d0e46d:6fe589d3:47671ff3
Name : schobert-fs:0
Creation Time : Wed Mar 27 18:49:49 2019
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 62881792 (29.98 GiB 32.20 GB)
Array Size : 31440896 (29.98 GiB 32.20 GB)
Data Offset : 32768 sectors
Super Offset : 8 sectors
Unused Space : before=32680 sectors, after=0 sectors
State : clean
Device UUID : 34f9240c:3f35c4a9:b20f6259:5a6a295e
Update Time : Fri Dec 2 16:10:26 2022
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 9882cebb - correct
Events : 430
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/loop0p2:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 1c73d398:e5404786:1cba7820:fb5e4cd5
Name : schobert-fs:1
Creation Time : Wed Mar 27 18:50:09 2019
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 3834550416 (1828.46 GiB 1963.29 GB)
Array Size : 1917275200 (1828.46 GiB 1963.29 GB)
Used Dev Size : 3834550400 (1828.46 GiB 1963.29 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=16 sectors
State : clean
Device UUID : 038f5d97:741a9a29:c4803eec:d5502d4b
Internal Bitmap : 8 sectors from superblock
Update Time : Wed Nov 30 10:19:49 2022
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 5dcb018a - correct
Events : 12662
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/loop0p3:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 00bd818b:55eed0df:3ad0c7d3:0c7a3a97
Name : schobert-fs:2
Creation Time : Wed Mar 27 18:50:31 2019
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 9291808 (4.43 GiB 4.76 GB)
Array Size : 4645888 (4.43 GiB 4.76 GB)
Used Dev Size : 9291776 (4.43 GiB 4.76 GB)
Data Offset : 8192 sectors
Super Offset : 8 sectors
Unused Space : before=8104 sectors, after=32 sectors
State : clean
Device UUID : 1577f59e:d2022fbc:d0b79765:f127efbc
Update Time : Wed Nov 30 00:01:49 2022
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : dc81c5d0 - correct
Events : 92
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
mdadm: No md superblock detected on /dev/loop1.
mdadm: No md superblock detected on /dev/loop2.
mdadm: No md superblock detected on /dev/loop3.
mdadm: No md superblock detected on /dev/loop4.
mdadm: No md superblock detected on /dev/loop5.
mdadm: No md superblock detected on /dev/loop6.
mdadm: No md superblock detected on /dev/loop7.
mdadm: cannot open /dev/loop-control: Invalid argument
@frostschutzと画像のインポートに関するヒントに感謝します。これでダンプされたディスクが使用されており、元のディスクは変更されていません。
@gabor.zedこの別の名前schobert-fs:0 /schobert-fs:1 /schobert-fs:2はあなたの仮説を証明しますか?または:その後の数字はマーカーにすぎず、レイドのどのドライブですか?
lsblkは次のようになります。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1,8T 1 loop
├─loop0p1 259:0 0 30G 1 part
├─loop0p2 259:1 0 1,8T 1 part
└─loop0p3 259:2 0 4,4G 1 part
fdiskも今合理的に見えます。
Festplatte /dev/loop0: 1,82 TiB, 2000398934016 Bytes, 3907029168 Sektoren
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0x87c99aec
Gerät Boot Anfang Ende Sektoren Größe Kn Typ
/dev/loop0p1 * 2048 62916607 62914560 30G fd Linux RAID-Autoerkennung
/dev/loop0p2 62916608 3897729167 3834812560 1,8T fd Linux RAID-Autoerkennung
/dev/loop0p3 3897729168 3907029167 9300000 4,4G fd Linux RAID-Autoerkennung
これで、/dev/に3つのMDデバイスがリストされています。
MD125 MD126 MD127
mdadm --query --detail /dev/md126
/dev/md125:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : schobert-fs:2
UUID : 00bd818b:55eed0df:3ad0c7d3:0c7a3a97
Events : 92
Number Major Minor RaidDevice
- 259 2 - /dev/loop0p3
mdadm --query --detail /dev/md126
/dev/md126:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : schobert-fs:1
UUID : 1c73d398:e5404786:1cba7820:fb5e4cd5
Events : 12662
Number Major Minor RaidDevice
- 259 1 - /dev/loop0p2
mdadm --query --detail /dev/md127
/dev/md127:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : schobert-fs:0
UUID : 7e3b9767:71d0e46d:6fe589d3:47671ff3
Events : 430
Number Major Minor RaidDevice
- 259 0 - /dev/loop0p1
mdデバイス自体はマウントできませんか?奇妙なことは、mdデバイスがRaid0だったということです。今何をすべきかわかりません。
少なくとも私が試したときは:
mount -o ro -t auto /dev/md125 /mnt/raid1
私は得る:
mount: /mnt/raid1: Der Superblock von /dev/md125 konnte nicht gelesen werden.
スーパーブロックを読むことができません
近づく前に何とか攻撃隊を集めるべきだと思いますか?
編集2:@frostschutzリクエストに応じて実行しました。
file -s /dev/md*
/dev/md125: empty
/dev/md126: empty
/dev/md127: empty
そして
blkid
/dev/sda1: UUID="ae7d369d-cf6b-4f84-a010-5d8a4c6fac80" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="248a7be6-01"
/dev/sda5: UUID="e49af320-e5fc-45fa-91b4-528b231f0bbd" TYPE="swap" PARTUUID="248a7be6-05"
/dev/sdb1: PARTUUID="87c99aec-01"
/dev/loop0p1: UUID="7e3b9767-71d0-e46d-6fe5-89d347671ff3" UUID_SUB="34f9240c-3f35-c4a9-b20f-62595a6a295e" LABEL="schobert-fs:0" TYPE="linux_raid_member" PARTUUID="87c99aec-01"
/dev/loop0p2: UUID="1c73d398-e540-4786-1cba-7820fb5e4cd5" UUID_SUB="038f5d97-741a-9a29-c480-3eecd5502d4b" LABEL="schobert-fs:1" TYPE="linux_raid_member" PARTUUID="87c99aec-02"
/dev/loop0p3: UUID="00bd818b-55ee-d0df-3ad0-c7d30c7a3a97" UUID_SUB="1577f59e-d202-2fbc-d0b7-9765f127efbc" LABEL="schobert-fs:2" TYPE="linux_raid_member" PARTUUID="87c99aec-03"
編集3:
だから私はすべてのデータが次のmd126にあると思ったので、私は以下を実行しました。
mdadm --stop /dev/md126
mdadm: stopped /dev/md126
その後、自動組み立てを試み、md126を再組み立てしてみました。
mdadm --assemble --scan
mdadm: /dev/md/schobert-fs:1 has been started with 1 drive (out of 2).
その後、インストールしようとしましたが読み取り専用なのでインストールできないというメッセージが表示されます。ループデバイスが読み取り専用モードなので、これは意味があります。しかし、-o roオプションを使用して読み取り専用モードでインストールした場合は実行できませんか?
mount -o ro /dev/md/schobert-fs\:1 /mnt/raid1
mount: /mnt/raid1: /dev/md126 konnte nicht im Lese-Schreib-Modus eingehängt werden, (Medium) ist schreibgeschützt..
編集4:
万歳、わかりました!
マウントマニュアルで最後のヒントを見つけてください。
-r, --読み取り専用
ファイルシステムを読み取り専用でマウントします。同義語は-o roです。
ファイルシステムのタイプ、状態、およびカーネルの動作に応じて、システムはまだデバイスに書き込むことができます。たとえば、ファイルシステムが汚れている場合、Ext3またはext4はそのログを再生します。このような書き込みアクセスを防止するには、ro,noloadマウントオプションを使用してext3またはext4ファイルシステムをマウントするか、ブロックデバイスを読み取り専用モードに設定する必要があります。 blockdev(8) コマンドを参照してください。
[… ]
回復なし/ロードなし
インストール時にジャーナルをロードしないでください。ファイルシステムが完全にマウント解除されていない場合、ログの再生をスキップすると、ファイルシステムに不整合が含まれ、多くの問題が発生する可能性があります。
だから私は以下を実行しました。
mount -o ro,noload /dev/md/schobert-fs\:1 /mnt/raid
ジャジャン、すべてのファイルがそこにあります!
助けてくれた@frostschutzと@gabor.zedに感謝します!
良い一日になってください。
答え1
ここで最大の問題は、RAIDではなく、偽のパーティションテーブルです。パーティションテーブルは512バイトセクタ用に作成されましたが、ドライブは4Kベースセクタとして検出されました。したがって、すべてのパーティションオフセットとサイズが完全に間違っています。
この問題を解決するにはlosstupを使用できます。
losetup --find --show --read-only --sector-size 512 --partscan /dev/sdb
次に、ループデバイスに有効なパーティションとmdadmメタデータがあることを確認してください。
mdadm --examine /dev/loop*
それからそこに進むなら、もう質問がないことを願っています。
ドライブに障害がある場合は、ddrescue
まず画像の抽出を検討することもできます。イメージファイルもデフォルトで通常512バイトセクタで処理されます。
すべてを読み取り専用に設定または使用記録中にコピーを上書きする。