Linux CentosゲストとESXI 5で実行されているWindowsゲストの大容量データを、USBエンクロージャに取り付けられた1TBハードドライブにバックアップしました。 USBシェルはESXI 5ハイパーバイザーを介してゲストに直接接続されます。
データのコピーが完了したら、USBディスクを正しく切断し、サーバーを再フォーマットした後、Centosディストリビューションで実行されているKVMハイパーバイザーにアップグレードしました。
その後、Linux Centosゲストを作成し、KVMハイパーバイザーを介してUSBディスクを直接接続しました。 Linuxパーティションのデータをゲストにコピーするのに問題はありません。コピー後、ディスクの接続が正しく切断されました。
しばらくして、LSI RAIDコントローラを搭載したIBM x3200 M3サーバーに同じディスクをそのまま挿入し、元のLinuxバックアップからいくつかのデータを取得しました。ディスクはRAIDなしで単一のデバイスで構成されています。
IBM で実行されている Centos Linux はディスクを正しく表示できます。
fdiskは2つのパーティションを正しく表示します。
fdisk -l /dev/sda
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 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 label type: dos
Disk identifier: 0x7ca397d5
Device Boot Start End Blocks Id System
/dev/sda1 63 128005919 64002928+ 7 HPFS/NTFS/exFAT
/dev/sda2 128006144 244190645 58092251 83 Linux
gdiskも同様です。
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory.
***************************************************************
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8AE1EC87-71EF-4340-8D94-E0EFC30FB4E4
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 8-sector boundaries
Total free space is 1709334742 sectors (815.1 GiB)
Number Start (sector) End (sector) Size Code Name
1 63 128005919 61.0 GiB 0700 Microsoft basic data
2 128006144 244190645 55.4 GiB 8300 Linux filesystem
それでも2番目のパーティションをマウントできませんでした(ここにはWindowsがないため、最初のパーティションでは試していません)。
エラーメッセージは次のとおりです。
mount /dev/sda2 /mnt/usb/
mount: /dev/sda2 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
-o ro オプションを使用して読み取り専用マウントを試みても、結果は変更されません。
fsckを試してみると、次の結果が表示されます。
[root@localhost ~]# fsck -N /dev/sda2
fsck from util-linux 2.23.2
[/sbin/fsck.ext2 (1) -- /dev/sda2] fsck.ext2 /dev/sda2
[root@localhost ~]# fsck.ext4 -n /dev/sda2
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sda2
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
答え1
これはおそらくほとんど重複するでしょう。これは別の質問です。何が起こっているのかを理解するには、私の答えを読んでください。これは、ほぼ物理セクタサイズが512であると報告しているディスクで同様の問題が発生すると疑われないためです。
したがって、RAIDコントローラが現在の値を歪めている可能性があり、ESXIが一部の変換を実行するのと同じように、USBエンクロージャが干渉する可能性があります。わかりません。
とにかく、512対4096くらいだと思います。この場合、4096バイトセクタで計算するときにオフセット(開始セクタ)が有効であることを確認する必要があります。
実際のコマンドの実行を開始する前に、最後のパーティションの終了セクタが大きな手がかりであることに注意してください。ディスクは512バイトの論理セクタ1953525168を報告しますが、セクタが4096バイトの場合、0から244190645までの番号付き244190646(つまり、8倍少ない)セクタがあります。 244190645はまさに最後のパーティションパーティションの終了セクタであるため、このパーティションテーブルのエントリは4096バイトセクタで有効になる可能性があります。
この試み:
mount -o ro,offset=$((128006144*4096)) /dev/sda /some/mountpoint
ro
場合に。