[Перевод] Создание Live USB-дисков в Linux с помощью команды dd

Существует несколько программ с графическим интерфейсом, предназначенных для создания Live USB-дисков. Вероятно, в Linux самой популярной из них является Etcher. В Ubuntu есть собственный инструмент для решения этой задачи — Startup Disk Creator.

Но продвинутые пользователи Linux, ради удобного и быстрого создания Live USB-дисков, постоянно обращаются к команде dd.

image-loader.svg

Это — CLI-инструмент, который даёт тому, кто его выбирает, мощные возможности по копированию и конвертированию файлов.

Обычно dd используют для того, чтобы записывать ISO-файлы на внешние носители информации, вроде USB-дисков. Потом такой носитель информации можно использовать, например, для установки записанного на него Linux-дистрибутива на обычный компьютер или на ноутбук.

Тут я расскажу о создании загрузочных USB-дисков с помощью dd. В частности, разберу команды, которые нужны для того, чтобы сначала найти в системе нужный диск, а потом записать на него ISO-файл.

Создание Live USB-дисков на основе ISO-файлов с помощью команды dd


Прежде чем я покажу вам пошаговый план работы с dd — хочу в двух словах рассказать об этой команде и продемонстрировать пример её использования.

Вот как выглядит вызов команды dd для записи ISO-файла на USB-диск:

dd if="./filename.iso" of="/dev/sdb" status="progress" conv="fsync"


Разберём эту команду.

3Ybr_SLA9ZxnfGOjOvGtp0OTtRW8MOv2Y38T7LEo

Разбор команды dd

Сначала в командной строке вводят dd. Это, как и должно быть, просто имя команды, которую мы собираемся запустить.

Далее указывают следующее: if=»./filename.iso». Имя опции if расшифровывается как input file — входной файл. Тут мы сообщаем dd о том, какой именно ISO-файл хотим записать на USB-диск.

После этого вводят путь к USB-диску. В данном случае это выглядит как of=»/dev/sdb». Здесь of означает output file, то есть — выходной файл.

При работе с dd стоит помнить о том, что то, что указывают в опции of, необязательно должно представлять собой файл в системе, используемой для работы. Тут можно указывать нечто вроде пути к внешнему устройству (именно так и сделано в нашем примере). И хотя выглядит этот путь как путь к обычному файлу, он, на самом деле, символизирует устройство, подключённое к компьютеру.

Опция status может принимать одно из трёх значений: none, noxfer и progress.

Если она установлена в значение progress — это приведёт к тому, что dd будет периодически сообщать нам о том, сколько данных из ISO-файла уже перенесено на диск, и о том, сколько времени, приблизительно, осталось до завершения операции.

Если использовать тут значение none, то dd ничего не будет сообщать о ходе процедуры, но, если в процессе записи образа на диск возникнут ошибки, программа об этом сообщит.

Вариант noxfer позволяет скрыть некоторые сведения, выводимые после того, как перенос данных на USB-диск завершён. Например — сведения о том, сколько времени заняла процедура копирования ISO-файла.

И, наконец, мы воспользовались вариантом fsync опции conv. Это приводит к тому, что dd не сообщит об успешном завершении операции до тех пор, пока весь ISO-файл не будет записан на USB-диск.

Если эту опцию не указывать, dd, всё равно, правильно запишет данные (и при этом может показаться, что команда работает быстрее, чем с этой опцией), но может оказаться так, что системе понадобится некоторое время на то, чтобы, при попытке безопасно извлечь USB-диск, сообщить о том, что это возможно. Дело в том, что без этой опции завершение записи образа проводится в фоновом режиме, что позволяет пользователю в это время заняться какими-то другими делами.

Теперь, когда мы разобрали команду dd, рассмотрим весь процесс записи ISO-файлов на USB-диски.

Но, прежде чем мы продолжим, хочу вас кое о чём предупредить. Командная строка — это палка о двух концах. Будьте очень осторожны, выполняя команды наподобие dd. А именно — тщательно проконтролируйте то, что в этой команде используется правильный выходной файл. Ошибка при указании опции of может привести к форматированию главного системного диска и к уничтожению файлов операционной системы, установленной на компьютере.

Шаг 0. Загрузка ISO-файла


Само собой разумеется то, что для того, чтобы записать на USB-диск ISO-файл, этот файл сначала надо где-то раздобыть.

Я, испытывая команду dd, буду записывать на диск образ Ubuntu 20.04, который можно скачать отсюда.

Шаг 1. Выяснение метки USB-диска


Сначала подключим USB-диск к компьютеру.

В вышеприведённом примере я, настраивая опцию of, ввёл /dev/sdb. Обычно USB-диски, подключённые к системе, доступны именно по этому пути, но это — не некое железное правило, которое справедливо абсолютно всегда.

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

image-loader.svg

Поиск USB-диска с помощью средств командной строки

Если вы предпочитаете для решения подобных задач использовать программы с графическим интерфейсом — можете найти путь к нужному диску с помощью чего-то наподобие GNOME Disks.

image-loader.svg

Поиск USB-диска с помощью инструмента с графическим интерфейсом

Теперь, когда нам известен путь к нужному носителю информации, можно создать Live USB-диск.

Шаг 2. Запись ISO-файла на USB-диск


Откроем терминал в директории, в которой находится загруженный ISO-файл, и запустим следующую команду (запуская эту команду у себя — замените, если нужно, /dev/sdb на путь к вашему USB-диску):

sudo dd if="./ubuntu-20.04.2.0-desktop-amd64.iso" of="/dev/sdb" status="progress" conv="fsync"


После выполнения этой команды нужно будет некоторое время подождать и dd создаст Live USB-диск.

image-loader.svg

Создание Live USB-диска

Итоги


После завершения работы dd в вашем распоряжении окажется USB-диск, с которого можно загрузиться. Но, пожалуй, важнее то, что теперь вы лучше узнали инструменты командной строки Linux, освоили кое-что новое, позволяющее ускорить и упростить решение некоторых задач.

Чем вы пользуетесь для создания Live USB-дисков в Linux?

image-loader.svg

© Habrahabr.ru