Неправильный размер USB после записи ISO-образа dd

Неправильный размер USB после записи ISO-образа dd

Я просто использовал ddдля того, чтобы поместить файл Kali Linux ISO на мой USB. Затем я попытался установить Kali Linux через USB, но не смог, так как установочный образ был поврежден. Я загрузился обратно в свою другую ОС Linux (antergos) и попробовал ddснова. Мой USB-накопитель теперь показывает, что его размер составляет 32 КБ, и fdisk не может его обнаружить.

Изначально это был накопитель USB 2.0 емкостью 8 ГБ.

Чтобы переопределить 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,82ГиБ).
Затем найдите допустимую комбинацию CHS, ведущую к C * H * S = 62545920
Или, если вам лень, с размером блока 512 байт это должно сработать: C=30540(размер в МиБ!), H=64иS=32

Наконец, запустите sudo fdisk -C 30540 -H 64 -S 32и запишите новую таблицу разделов для исправления.
Перезагрузите, если изменения не были обнаружены правильно.

решение3

Я знаю, что это место о unix, но когда у меня возникает эта проблема, я нахожу windowsмашину и использую diskpart(требуется доступ администратора). Потому что когда fdiskне получается, это просто работает; может быть, это поможет кому-то.
Я не могу попробовать инструкции прямо сейчас, но это должно быть что-то вроде : list disk, select disk i, clean, create partition primary, format fs=fat32 quick, active, assign, exit.
И размер вашего USB-накопителя теперь в порядке (но, конечно, вы потеряли свои данные).
Мне также интересен эквивалентный способ добиться этого с Linux.

NB: Я не уверен, что неправильный размер указывает на то, что ddпроизошел сбой. В любом случае, не забудьте добавить && syncк своей ddкоманде.

Связанный контент