Чому "dd" не працює для створення завантажувального USB?


36

Нещодавно мені хотілося створити завантажувальний USB-накопичувач Linux. Я виявив, що було багато суперечливих порад / досвіду щодо того, чи можна команду 'dd' використовувати для створення завантажувального USB. Я вирішив завантажити ISO і спробувати. Хоча dd напевно помістила зображення на USB-накопичувач, воно не завантажувалося. Отже, моє запитання - який магічний інгредієнт змусить цю роботу чи чому цей підхід зберігається, якщо він не працює?

Це команда, яку я використав,

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

@sawdust, коли ви заявляєте, що опубліковані відповіді "не йдуть", ця стаття ( community.linuxmint.com/tutorial/view/744 ) вказує, що це правильна процедура.
Дейв Г

1
@DaveG - Цікаво, що, мабуть, "dd" є корисною командою, якщо вихідним файлом є "гібридне зображення ISO". Але це не загальна процедура для кожного ізо . Можливо, саме ця відмінність є причиною конфліктних порад Jdowner.
тирса

@sawdust дякую за додаткові роз'яснення з цього приводу.
Дейв Г

У вас може бути система "на-палиці", яка буде використовуватися в системі завантаження EFI - але ваш апарат налаштований на використання "класичного" завантаження. Так видно із USB-накопичувачем Linux Mint.
Девід Тонхофер

Ось просте / геніальне рішення для непокірних ISO-зображень (заснованих на Ubuntu Live ISO): 1) Форматируйте палицю так, щоб у файлі була система (скажімо) "/ dev / sdX1", 2) Mount stick як "/ mnt / usb "наприклад, 3) Встановіть grub2 на stick : grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX, 4) Скопіюйте раніше завантажене зображення ISO (наприклад," Linuxinux.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 of = / dev / rdisk3 bs = 1m та його не завантажуємо, будь-які ідеї?
Юсуфк

Я б rdisk3 розділ або необроблений диск? Ви намагаєтесь записати зображення на певний розділ
Dave G

1
Я роблю / dev / sdb, і це все ще не завантажується
holms

rdisk3 - це 3-й диск на mac afaik. У мене те саме питання, що і Юсуфк. Потрібно перевірити, чи пов’язано це з UEFI.
гавіт

11

Ви скопіювали зображення в перший розділ. Спробуйте скопіювати в / dev / sdb, а не в / dev / sdb1.

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


Я зауважу, що замість того, щоб спробувати скопіювати весь ISO знову на інший розділ, достатньо просто встановити прапор завантаження на розділ, який ви спочатку скопіювали зображення (як натякає на це відповідь)
GrayedFox

2

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

Дивіться також цей пошук у Google .


1

Можливо, вам доведеться записати BPB у завантажувач. Дивіться допис Dex від пт. 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
Це питання, про яке я задумався, тим більше, що працював на старому комп’ютері. Тож, коли це не працювало на моїй цільовій машині, я встановив порядок завантаження на своєму ноутбуці Wife (так, не кажіть їй), і він також не завантажився з цього.

0

Я також кілька разів стикався з цим питанням.

Що я виявив, що працює для мене більшу частину часу, - це спочатку заповнити накопичувач.

  1. Змініть X на букву або номер диска, щоб знайти його:

    • Мак: diskutil list
    • Linux: lsblk
  2. Нульовий привід

    • Мак: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. додайте ваше зображення знову

(Розміри блоків 4 мега здаються для мене найшвидшими)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.