ランダムデータで上書きされた2TBディスクがあります。fdisk
デバイスに認識されたパーティションテーブルがないことを確認してください。ただし、ディスクには次の5つのデバイスファイルが表示されます。 /dev/sdc{,1,2,3,4}
つまり
# for i in /dev/sdc{,1,2,3,4} ; do fdisk -l -u $i ; done
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 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 /dev/sdc1: 555.1 GiB, 595985804288 bytes, 1164034774 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 /dev/sdc2: 1.6 TiB, 1781956913152 bytes, 3480384596 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 /dev/sdc3: 928.5 GiB, 997001973760 bytes, 1947269480 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 /dev/sdc4: 1 TiB, 1153125198336 bytes, 2252197653 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
繰り返しますが、デバイスにはパーティションテーブルはありません。
# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x56b93c1d.
Command (m for help): p
Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 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
Disklabel type: dos
パーティションデバイスがあるのはなぜですか?つまり、/dev/sdcだけでなく/dev/sdc{1,2,3,4}もあるのはなぜですか?また、パーティション化されたデバイスのサイズが最大1.8 TiBまで追加されないのはなぜですか?
答え1
partx
Linuxは、起動(またはディスク接続)中または明示的に指示しない限り(fdiskを介してパーティションテーブルを使用または書き込みした後などblockdev --rereadpt
)、パーティションテーブルを再読み込みしません。したがって、これらのいずれかを実行するまで、sdc[1-4]
その項目は存在し続けます。
最も簡単な修正は、partprobe
カーネルコマンドを呼び出して、すべてのデバイスまたはpartprobe /dev/sdc
そのディスクからのみパーティションテーブルを再読み込みすることです。あるいは、fdiskを使用して空のパーティションテーブルに書き込むこともできますpartprobe
。
また、ディスク(またはそのパーティション)が使用されている場合(たとえば、ファイルシステム、スワップ、LVM PVなど)、カーネルはそれを再読み込みしません。もちろん、使用しているものがある場合は、ただ拭くだけで問題が発生します。
最後に強制的に再読み込みしようとすると、任意のデータがパーティションテーブルの署名と一致する可能性があります。 Linuxはさまざまなパーティションテーブル形式(カーネルをコンパイルするときにリストが選択されます)をサポートしていますが、その一部は1バイトほど小さいパーティションテーブル署名を持っているため、ランダムなデータ一致の可能性は1/256です。他のものは署名が長いため、可能性がはるかに低いです。全体的な可能性がどのくらいあるかはわかりませんが、カーネルログをすばやく確認すると、カーネルが認識するパーティションテーブルの形式が表示されます。