Почему «dd» не работает для создания загрузочного USB?

36

Недавно я хотел создать загрузочный USB Linux Mint. Я обнаружил, что было много противоречивых советов / опыта о том, можно ли использовать команду dd для создания загрузочного USB. Я решил скачать ISO и попробовать. Хотя dd определенно поместил образ на флешку, он не был загрузочным. Поэтому мой вопрос в том, что является магическим компонентом, который сделает эту работу, или почему этот подход сохранился, если он не работает?

Это команда, которую я использовал,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 
jdowner
источник
@sawdust, в то время как вы заявляете, что опубликованные ответы - «нет», эта статья ( community.linuxmint.com/tutorial/view/744 ) указывает, что это правильная процедура.
Дейв Г
1
@DaveG - Интересно, что «dd» - это полезная команда, если исходный файл представляет собой «Гибридный ISO-образ». Но это не общая процедура для каждого iso . Возможно, именно это различие является причиной противоречивого совета, с которым столкнулся jdowner.
опилки
@sawdust спасибо за дополнительные разъяснения по этому вопросу.
Дейв Г
У вас может быть система «на палочке», которая должна использоваться в загрузочной системе EFI, но ваша машина настроена на «классическую» загрузку. Так видно с флешки Linux Mint USB.
Дэвид Тонхофер,
Вот простой / гениальный обходной путь для непокорных изо-образов (на основе Ubuntu Live ISO): 1) Отформатируйте флешку так, чтобы на (скажем) "/ dev / sdX1" была файловая система, 2) Смонтируйте флешку как "/ mnt / usb «Например, 3) Установите grub2 на флешку:, grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX4) Скопируйте ранее загруженный ISO-образ (например,« foolinux.iso ») на флешку: cp foolinux.iso /mnt/usb/5) Создайте файл« /mnt/usb/boot/grub2/grub.cfg », который загружает Linux с ISO-образа, представленного на
флешке

Ответы:

32

Вы пишете изображение в раздел 1 из / dev / sdb

Измените это на следующую команду:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

эта информация была получена отсюда

Дэйв Дж
источник
2
Я делаю: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso из = / dev / rdisk3 bs = 1m и не загружается, есть идеи?
Юсуфк
Я бы rdisk3 раздел или сырой диск? Вы пытаетесь записать образ в определенный раздел
Дэйв Дж.
1
я делаю / dev / sdb и он все еще не загружается
holms
rdisk3 - это 3-й диск на macaaik. У меня та же проблема, что и у Юсуфка. Необходимо проверить, связано ли это с UEFI.
Гавит
11

Вы скопировали изображение в первый раздел. Попробуйте скопировать в / dev / sdb, а не в / dev / sdb1.

Фактический механизм немного варьируется в зависимости от типа образа, который вы используете, но для простых изображений DOS / MBR вам необходимо получить правильную таблицу разделов (с загрузочным разделом, помеченным как загрузочный, а MBR - частью начальные 512 байт, которые не являются таблицей разделов и содержат начальный загрузочный код.

Кристоф Провост
источник
Я хотел бы заметить, что вместо того, чтобы пытаться снова скопировать весь ISO в другой раздел, достаточно просто установить флаг загрузки для раздела, на который вы изначально скопировали образ (как намекает в этом ответе)
GrayedFox
2

Из моего опыта работы с другим дистрибутивом Linux все, что вам нужно сделать, это изменить файл загрузчика syslinux и изменить его для загрузки с USB. Более подробную информацию об этом можно найти на вики-сайте syslinux .

Смотрите также этот поиск Google .

Джейкоб Джей Дэниелс
источник
1

Возможно, вам понадобится записать BPB в ваш загрузчик. См. Сообщение Декса от Пт 24 апреля 2009 г. 9:06 на http://f.osdev.org/viewtopic.php?f=1&t=19681

Суть в том, что «если [ваша прошивка usb] пользователей эмулирует дискету и у вас нет BPB, она НЕ будет загружаться»

Вооружившись этим советом, я смог решить эту проблему. Я использую Linux, поэтому моя команда dd была:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Вы захотите заменить SDB на ваше USB-устройство. Вы можете найти его, запустив

ls -l /dev/ | grep sd

до и после вставки вашего USB во время работы Linux. Если вы получаете, например, sdb1 и sdb, выберите неиндексированный вариант.

определять
источник
0

Вы убедились, что ваша материнская плата настроена на загрузку с USB-устройства, прежде чем она попытается загрузиться с вашего жесткого диска? Я полагаю, что это может быть вашей единственной проблемой - ddкак вы можете видеть, использовать не так уж и много .

Эли Санд
источник
1
Я думал об этой проблеме, особенно потому, что работал на старом компьютере. Поэтому, когда это не сработало на моей целевой машине, я установил порядок загрузки на своем ноутбуке с жёнами (тссс, не говорите ей), и он тоже не загрузился.
0

Я также сталкивался с этой проблемой несколько раз.

То, что я обнаружил, что работает для меня большую часть времени, это сначала заполнить диск нулем.

  1. Измените X на букву или номер вашего диска, чтобы найти его:

    • Mac: diskutil list
    • Linux: lsblk
  2. Ноль заполнить диск

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. дд ваше изображение снова

(Мне кажется, самый быстрый размер блока в 4 мг)

Андре Хельберг
источник