
Я просто использовал 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
команде.