USB経由でデータセンターの外部エンクロージャに新しい4TBドライブを接続しました。ドライブ全体を使用するために、デフォルトのパラメーターを使用してパーティションを作成するためにリモートでディスクを使用しました。次にmkfs.ext4を実行します。大量のデータをコピーした後、ドライブが出荷されました。
自宅のコンピュータに接続している場合(内蔵SATA経由)、ドライブをマウントできません。
ファイルシステムの種類が正しくありません。スーパーブロックエラーが発生しました。これに関するエラーの質問がたくさん表示されます。違いは、ext4を使用してフォーマットしたことがわかっていることです。
パーティショニングが早すぎるということについて言及した質問を見ました。これは私のfdisk -l出力です。
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
42 heads, 63 sectors/track, 2953150 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xfb4c8856
Device Boot Start End Blocks Id System
/dev/sda1 256 976754645 488377195 83 Linux
データの損失を防ぐためにできることはありますか?それとも、再配送して最初から再配送を受ける必要がありますか?
答え1
迅速な回答
データの損失を防ぐためにできることはありますか?
はい。インストール後、次のデータにアクセスできます。
mount -o ro,offset=((256*4096)) /dev/sda /path/to/mountpoint
(ro
もしそうであれば、ファイルが正しく見えたらremountを使うことができます-o rw
。)
説明する
この回答何が起こったのか説明してください:
シェルはドライブを高度なフォーマットの4Knデバイスとしてコンピュータに公開し、MBRを使用するWindows XPシステムとの互換性を可能にします。論理セクタの種類を変更すると、ドライブがシャーシから削除されたときにパーティションテーブルが無効になる可能性があります。
ドライブはそれぞれ512バイトの7814037168個の論理セクタ容量を報告します。キャビネットにはそれぞれ4096バイトの論理セクタが976754646個あります。
現在のパーティションエントリは4096バイトセクタで有効です。これは、セクタ番号256から最後のセクタである976754645までのパーティションを表します。セクタは0から始まり番号が付けられ、Nセクタは0からN-1まで番号が付けられる。
これがMBR(DOS)パーティションテーブルであることがわかります。 GPTでは、バックアップテーブルのためにデバイスの端に非常に少ないセクタが必要です。未使用セクタがないためMBR
ただし、すべてのツールは512バイトの論理セクタを持つデバイスを表示できるようになりました。パーティションテーブルには、唯一のパーティション範囲がセクタ番号256から976754645までのものとして再表示されますが、これは間違っています。
これで正しい値は次のとおりです。
- 256*8 = 2048
- (976754645+1)*8-1 = 7814037167
後者が最後のセクターであることに注意してください(fdisk
7814037168セクターがあると言われました)。
これで、MBRパーティションテーブルはセクタを多すぎるため、回復できません。何を比較するのかウィキペディア説明する:
ブロックアドレスとサイズは32ビットを使用してMBRのパーティションテーブルに格納されるため、512バイトセクタ(実際またはシミュレーション)を持つドライブと最高の開始アドレスを使用するパーティションの最大サイズは2TiB -512バイト(2,199,023,255,040バイト)超過できません。または4,294,967,295セクタ×セクタあたり512バイト)。これらの容量制限を緩和することは、GPT開発の主な動機の1つです。
デバイスの末尾にセカンダリ(バックアップ)パーティションテーブル用のスペースがないため、GPTへの完全な変換は容易ではありません。 MBRはデバイスの先頭にのみ存在します。 GPTは開始と終了の両方にスペースが必要です。
ファイルシステムが起動したオフセットがまだわかりますmount
。これが私のコマンドがやっていることです。オフセットは256 * 4096バイト(または2048 * 512バイト、同じ数字)です。上記のコマンドはシェルを使用してオフセットを計算します。オフセットはデバイス全体の先頭から計算されるため、このコマンドはそれを/dev/sda
代わりに使用します/dev/sda1
。
私のテストでは、ext4は基本デバイスの論理セクタサイズに依存しないため、この方法でインストールできます。
今、「返却し、再起動し、返送すること」が役に立たないことが明らかになりました。エンクロージャは、論理セクタサイズを再変換し、ファイルシステムがどれだけうまくマウントされるかを驚かせます。一方、ディスクを消去してGPTパーティションテーブルとファイルシステムを再作成してからドライブを出荷する場合は、同じエンクロージャを介して接続してもデータセンターにインストールされません。
ヒント
ディスクを前後に出荷する必要がある場合は、パーティションテーブル(例mkfs.ext4 /dev/sda
:)なしでデバイス全体のファイルシステムであるスーパーフロッピーを検討してください。mount /dev/sda /path/to/mountpoint
干渉シャーシの有無にかかわらず、これらのファイルシステムをマウントできます。
答え2
私は使用しますテストディスク。 (確実になるまでドライブに書き込まないでください。)これは、ドライブにアクセスするためのさまざまなオプションを試すのに役立ちます。成功すると、ドライブのデータ(コピー可能)を別のディスクに表示することもできます。バックアップ後に見つかったディスク構造データを作成し、テストディスクなしでコンピュータのドライブにアクセスできることを試してみましょう。
このツールを慎重に使用してください。しかし、このような状況では役に立ちます。