Использование команды 'dd' для создания загрузочной флешки

11

Почему ISO-образы некоторых разновидностей Ubuntu могут быть помещены на USB-накопитель с помощью команды dd и успешно загружены, а другие - нет? Кроме того, похоже, что это зависит от конкретной флешки. Я пробовал со стандартным Ubuntu:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

И это работает как шарм, я имею в виду: загрузиться и установить или запустить живую Ubuntu. Но когда я использую другой USB-накопитель, подготовленный таким же образом, он не загружается с ошибкой BIOS операционной системы не найдена .

Когда я пробую Ubuntu GNOME, он просто не загружается с той же ошибкой, что и в предыдущем примере, независимо от того, какой USB-накопитель я использую.

Я знаю, что в Ubuntu есть приложение Startup Disk Creator , но я был убежден, что это всего лишь графический интерфейс для простой команды dd , и я всегда могу использовать dd для создания загрузочной флешки, по крайней мере для Linux. Я ошибся?


источник
Я лично использую Unetbootin, и у меня никогда не было проблем.
Тим

Ответы:

5

Если вы запустите Startup Disk Creator, вы заметите, что он выполняет три (четыре) вещи:

  1. Форматировать диск
  2. Скопируйте данные из ISO на диск
  3. (Добавьте дополнительный файл casper 1 для сохранения, если он выбран. ddНе дает сохранения.)
  4. Установить загрузчик

Это не GUI для dd(есть GUI для dd, но SDC не один из них). Вы можете думать об этом как о том, что делаете эквивалентные ручным методам Arch Linux или Gentoo . Вы должны быть в состоянии создать загрузочный USB-диск, используя установочные ISO-образы большинства (достаточно популярных) дистрибутивов в настоящее время. Это было не так три или четыре года назад, когда я посмотрел на Арка. Только в 2010 году все Arch ISO получили эту функцию (где вы могли записать ее непосредственно на USB-накопитель) - с 2008 по 2010 год у них были специальные образы USB.

Кроме того, если вы ddработаете непосредственно с диском, этот диск эффективно доступен только для чтения, пока вы не отформатируете его или каким-либо образом не используете оставшееся пространство. Созданный SCD диск по-прежнему может использоваться в качестве USB-накопителя, даже несмотря на то, что его содержимое нелегко получить из реальной среды. Таким образом, если у вас ddISO 1 ГБ до 8 или 16 ГБ USB-накопителя, вы фактически оставляете оставшееся пространство без дополнительных шагов.


1 Как правило, большинство живых изображений используют файл SquashFS для корневого раздела. SquashFS доступна только для чтения, поэтому для сохранения создается casper-rwфайл в /casper. Я не уверен в происхождении casper. Из того, что я понимаю, при загрузке с boot=casperопцией ядро ​​накладывает файл casper (создавая его, если его не существует) поверх squashfs, чтобы получить возможность записи. casperне обязательно должен быть файлом, он также может быть разделом .

Мур
источник
Что такое "файл Каспера"? Пожалуйста, объясни.
@ MikołajBartnicki Я не очень уверен в себе, но я обновил ответ.
Муру
Каспер это призрак (который вы все знаете). Как вы сказали, он перекрывает некоторые папки в файловой системе ro. Изучение файловой системы из работающего живого образа с включенным постоянством показывает некоторые каталоги «верхний» и «нижний», которые существуют как в системах «только для чтения», так и в системах записи, но в операционной системе выглядят как каталоги, несколько похожие на монтирование поверх уже существующая папка
oneindelijk
2

попробуйте сначала:

su -c 'mkfs.vfat /dev/sdc -I'

Чтобы сделать загрузочный USB-диск из iso-файла с помощью команды dd , на диске не должно быть разделов, подобных / dev / sdc1 (один из четырех возможных основных разделов диска / dev / sdc ). Вы не можете клонировать блоки iso-файла в основной раздел, потому что на дисках dvd или cd его тоже нет. Вот почему вы должны создать файловую систему именно на диске / dev / sdc , а не в основном разделе.

Кроме того, вы сделали несколько ошибок, набрав команду dd .

Попробуй это:

su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'

Ваша команда не корректируется без mkfs.vfat в первую очередь. может быть, если вы тоже установите загрузчик и сделаете раздел активным. Другие usb-накопители не работают, возможно, потому что ваш usb-порт может использоваться совместно с другим вашим usb-портом или у вас нет питания для работы с живыми usb-ОС, возможно, работает жесткий диск и другие usb-диски, которым требуется больше энергии, чем обычно. Чем среднее энергопотребление этого типа устройств (например, жестких дисков во внешнем корпусе с USB от адаптера SATA)

gr8b8
источник
2

Вы даже можете создать загрузочную флешку с USB-накопителем cp(мне кажется, это гораздо проще, чем ddс графическим интерфейсом):

sudo cp path/to/ISO /dev/sdX


Помните, что /dev/sdXследует заменить имя вашего блочного устройства (например /dev/sdb, /dev/sdc).

Луис Лавэр
источник
1
Это было действительно новым для меня. Вместе с progress unix.stackexchange.com/a/301329/87264 он также показывает прогресс
Джонас Эберле