ISO イメージの DD 書き込み後に USB サイズが間違っている

ISO イメージの DD 書き込み後に USB サイズが間違っている

dd私は、Kali Linux ISO ファイルを USB に置きました。その後、USB 経由で Kali Linux をインストールしようとしましたが、インストール イメージが壊れていたためできませんでした。別の Linux OS (antergos) で再起動し、もう一度使用してみましたdd。USB スティックのサイズが 32KB と表示され、fdisk で検出できません。

元々は8GBのUSB2.0スティックです。

MBR とパーティション テーブルを上書きするために、次の操作を試しましたが失敗しました:

dd if=/dev/zero of=/dev/sdx bs=512 count=1

答え1

USB スティックが故障しました。

一部のドライブは故障時に異なるサイズを返しますが、これについては、より複雑なコントローラを持つ「SSD」に関してのみ読んだことがあります。

ドライブ全体のサイズを再確認するには、lsblkカーネルログを使用するか、カーネルログを確認しますdmesg。(パーティションのサイズ内でデバイスはパーティション テーブルによっては完全に偽物になる可能性があります。ハードウェア障害がなくてもこれを実現できます。

サイズが問題なければ、重要なデータを回復する方法がいくつかあります。しかし、そうする必要はないようです。Kali ISO ファイルにはまだアクセスできます。

シンプルな USB スティックには、追加のハードウェア診断機能は組み込まれていません[*]。ハードウェアに障害が発生したことが分かれば、それで終わりです。ドライブ全体のサイズが間違っているか、ドライブに書き込んだデータが返されない (の障害によって示唆されるfdisk) のいずれかが、そのような障害を示すのに十分です。

[*] フラッシュ ストレージの最大予想書き換えサイクルが問題になるような用途向けには設計されていないと思います。壊れたり、紛失したりする可能性の方がはるかに高いです。

答え2

これは仮想ディスクジオメトリ誤って検出されました。続行する前に、まず再起動を試みてください。

警告 :これは USB キーに悪影響を与えることはないと思いますが、リスクを負いたくない場合は、まず Windows でフォーマットをテストしてください。

このガイドでは、ドライブが であると想定しています/dev/sdbが、必要に応じて変更してください。
ターミナルで、 の出力dmesgで次のような行を検索しますsd 5:0:0:0: [sdb] 62545920 512-byte logical blocks: (32.0 GB/29.8 GiB)
。これは次のことを示しています。

  • セクター数(論理ブロック):62545920
  • セクターサイズ:512バイト
  • 実際のメディアサイズ:32.0 GB/29.8 GiB

次に、正確なメディアサイズをバイト単位で計算します: 62545920 * 512 = 32023511040 bytes = 30540 MiB(29.82GiB)。
次に、有効なCHSの組み合わせを見つけますC * H * S = 62545920
。または、面倒な場合は、512バイトのブロックサイズで、次のようにします: C=30540(サイズはMiB単位です!) H=64S=32

最後に、sudo fdisk -C 30540 -H 64 -S 32修正するために新しいパーティション テーブルを実行して書き込みます。
変更が正しく検出されない場合は再起動してください。

答え3

この場所は に関するものだとわかっていますunixが、この問題が発生した場合、私はwindowsマシンを見つけて を使用しますdiskpart(管理者アクセスが必要)。fdiskが失敗した場合、これはうまく機能するため、誰かの役に立つかもしれません。今
すぐに手順を試すことはできませんが、次のようになるはずです: list disk、、、、、、、、。これで、 USB スティックのサイズは正常になりました (ただし、もちろん、データは失われています)。Linuxでこれselect disk iを成功させる同等 の方法にも興味があります。cleancreate partition primaryformat fs=fat32 quickactiveassignexit

注意: サイズが間違っていることが失敗を示しているかどうかはわかりません。とにかく、コマンドにdd追加することを忘れないでください。&& syncdd

関連情報