Вопрос или проблема
Последний абзац Заметок о выпуске SliTaz 3.0 говорит следующее о liveCD:
ISO-образ теперь использует «гибридную» систему: его можно также скопировать на USB-накопитель без его форматирования (с помощью dd).
Кто-нибудь знает, как это сделать?
Попробуйте это (обновлено согласно предложению @Kimvais и @Kelly Bang):
dd if=/path/to/your/isofile of=/your/usb/disk bs=8M status=progress
Если вы хотите видеть прогресс или получить приблизительное время завершения, вы можете использовать Pipe View (pv), например:
dd if=<путь к входному файлу> | pv -s <размер, например 1377M> | dd of=<путь к целевому устройству>
Это даст вывод типа:
850MiB 0:05:18 [6.44MiB/s] [===================> ] 61%
ETA 0:03:16
Примечание: Это универсальный подход, который должен работать почти на любой системе *nix. Если у вас возникли проблемы с другими рекомендациями, попробуйте этот способ.
Если вы хотите запустить dd (уничтожитель диска), сначала появление вашего устройства блока, затем cat /proc/partitions, затем снова подключите устройство и снова cat /proc/partitions. Разница покажет ваше целевое устройство. Если различий нет, значит, у вас нет нужного драйвера для его распознавания или возникли аппаратные проблемы.
Вот как это выглядит на моем ноутбуке, до и после, соответственно:
jcholsap@T430s:~$ cat /proc/partitions
major minor #blocks name
8 0 117220824 sda
8 1 117219328 sda1
11 0 1048575 sr0
253 0 109109248 dm-0
253 1 8077312 dm-1
jcholsap@T430s:~$ cat /proc/partitions
major minor #blocks name
8 0 117220824 sda
8 1 117219328 sda1
11 0 1048575 sr0
253 0 109109248 dm-0
253 1 8077312 dm-1
8 16 30670848 sdb
Используйте третий столбец, размер в килобайтах, чтобы проверить ваше устройство блока. Если вы нервничаете, и это справедливо, вы можете дополнительно проверить ваше устройство с помощью dmesg. Вот так это выглядит на моем ноутбуке:
jcholsap@T430s:~$ dmesg | tail -30
[ 10.197383] thinkpad_acpi: EC reports that Thermal Table has changed
[ 34.599234] random: crng init done
[ 35.133277] rfkill: input handler disabled
[ 9737.190954] usb 4-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 9737.211756] usb 4-2: New USB device found, idVendor=0781, idProduct=5580
[ 9737.211762] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9737.211765] usb 4-2: Product: Extreme
[ 9737.211768] usb 4-2: Manufacturer: SanDisk
[ 9737.211770] usb 4-2: SerialNumber: AA010507161254310422
[ 9737.244492] usb-storage 4-2:1.0: USB Mass Storage device detected
[ 9737.245540] scsi host6: usb-storage 4-2:1.0
[ 9737.245746] usbcore: registered new interface driver usb-storage
[ 9737.247465] usbcore: registered new interface driver uas
[ 9738.259485] scsi 6:0:0:0: Direct-Access SanDisk Extreme 0001 PQ: 0 ANSI: 6
[ 9738.260340] sd 6:0:0:0: Attached scsi generic sg2 type 0
[ 9738.260698] sd 6:0:0:0: [sdb] 61341696 512-byte logical blocks: (31.4 GB/29.3 GiB)
[ 9738.260919] sd 6:0:0:0: [sdb] Write Protect is off
[ 9738.260925] sd 6:0:0:0: [sdb] Mode Sense: 53 00 00 08
[ 9738.261142] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 9738.267727] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 9738.496445] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.496450] UDF-fs: Scanning with blocksize 512 failed
[ 9738.505586] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.505589] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.519311] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.519324] UDF-fs: Scanning with blocksize 512 failed
[ 9738.528153] UDF-fs: warning (device sdb): udf_load_vrs: No anchor found
[ 9738.528157] UDF-fs: Scanning with blocksize 1024 failed
[ 9738.533493] UDF-fs: INFO Mounting volume 'UDF Volume', timestamp 2011/04/12 09:38 (1000)
[10100.854101] perf: interrupt took too long (2519 > 2500), lowering kernel.perf_event_max_sample_rate to 79250
Вот все детали моего флеш-накопителя. А, теперь я убежден, что у меня правильное устройство!
Но мое подключенное устройство могло автоматически монтироваться. Для dd это проблема. Чтобы быть уверенным, давайте размонтируем его с помощью umount (обратите внимание на разницу в написании). Я выполню команду дважды, потому что сообщение об ошибке указывает, что оно выполнено успешно:
jcholsap@T430s:~$ sudo umount /dev/sdb
jcholsap@T430s:~$
jcholsap@T430s:~$ sudo umount /dev/sdb
umount: /dev/sdb: не смонтировано.
Теперь, поскольку в Linux все считается файлом, dd называет целевое устройство блока, в моем случае /dev/sdb, выходным файлом. Итак, чтобы использовать dd с этим устройством, вы хотите использовать of=/dev/sdb. Вам нужно сделать это правильно, иначе dd может стать для вас уничтожителем диска. Вот как это выглядит на моем ноутбуке:
jcholsap@T430s:~$ sudo dd of=/dev/sdb if=/home/jcholsap/centos7.iso bs=4M
От работающей команды dd нет вывода. Вы просто получите мигающий курсор, пока процесс не завершится, что может занять длительное время. Если вы прервете процесс, у вас будет частичное копирование образа – вероятно, не то, что вы хотели.
СМОТРИТЕ ТАКЖЕ
Полная документация доступна по адресу: http://www.gnu.org/software/coreutils/dd
или доступна локально через: info ‘(coreutils) dd invocation’
Привет, это помогло!
- Размонтировать
- Просто это!
Выполните одну из следующих команд, заменив /dev/disk/by-id/usb-My_flash_drive
на ваше устройство, например, /dev/disk/by-id/usb-Kingston_DataTraveler_2.0_408D5C1654FDB471E98BED5C-0:0
НЕТ! НЕТ! НЕТ! это – /dev/sdb
т.е. используйте более простое /dev/sd<letter>
https://wiki.archlinux.org/title/USB_flash_installation_medium
Использование основных утилит командной строки
Этот метод рекомендуется из-за его простоты и универсальной доступности, поскольку эти инструменты являются частью coreutils (входят в базовый мета-пакет).
Узнайте имя вашего USB-накопителя с помощью ls -l /dev/disk/by-id/usb-*
и проверьте с помощью lsblk
, чтобы убедиться, что он не смонтирован.
Выполните одну из следующих команд, заменив /dev/disk/by-id/usb-My_flash_drive
на ваше устройство, например, /dev/disk/by-id/usb-Kingston_DataTraveler_2.0_408D5C1654FDB471E98BED5C-0:0
. (Не добавляйте номер раздела, не используйте что-то вроде /dev/disk/by-id/usb-Kingston_DataTraveler_2.0_408D5C1654FDB471E98BED5C-0:0-part1
или /dev/sdb1
)
-
используя cat(1):
# cat path/to/archlinux-version-x86_64.iso \ > /dev/disk/by-id/usb-My_flash_drive
-
используя cp(1):
cp path/to/archlinux-version-x86_64.iso \ /dev/disk/by-id/usb-My_flash_drive
-
используя dd:
dd bs=4M if=path/to/archlinux-version-x86_64.iso \ of=/dev/disk/by-id/usb-My_flash_drive conv=fsync \ oflag=direct status=progress
-
используя tee:
tee < path/to/archlinux-version-x86_64.iso \ > /dev/disk/by-id/usb-My_flash_drive
-
используя pv:
pv path/to/archlinux-version-x86_64.iso \ > /dev/disk/by-id/usb-My_flash_drive
Ответ или решение
Копирование образа ISO на USB-накопитель с помощью dd
— это надежный метод, особенно когда требуется создание загрузочного USB-накопителя. Этот процесс может показаться сложным для новичков, но он довольно прямолинеен и универсален для любых систем на базе Linux или Unix. Рассмотрим детально, как это осуществить, следуя методу TEA (Теория, Пример, Применение).
Теория
Образы ISO — это компактный способ хранения структуры данных CD или DVD-дисков в виде файла. Очень часто ISO используется для распространения операционных систем или других больших программных пакетов. Гибридные ISO позволяют использовать записи с USB-накопителями, что упрощает создание загрузочных носителей.
Команда dd
в Linux используется для низкоуровневого копирования данных. Это мощная утилита, способная копировать и конвертировать данные между разными типами носителей. Ключевые аспекты dd
:
if
— input file, или входной файл. Здесь указывается путь к ISO-образу.of
— output file, или выходной файл. Это цель, куда записывается образ, в данном случае — USB-накопитель.bs
— block size, размер блока, который определяет, сколько данных читается и записывается за один раз. Обычно устанавливается в 4M для быстрой обработки.status=progress
— выводит прогресс выполнения на экран.conv=fsync
иoflag=direct
— обеспечивают корректную запись данных, избегая использования кэша.
Эти опции делают dd
мощным и опасным инструментом, особенно если вы ошибочно укажете неверное целевое устройство, что может привести к потере данных.
Пример
Докажем надежность и простоту метода на примере конкретного использования.
sudo dd if=/путь/к/вашему/isofile of=/ваш/usb/диск bs=4M status=progress conv=fsync oflag=direct
Шаги:
-
Идентификация USB-устройства:
- Подключите USB-накопитель и выполните
sudo lsblk
илиsudo fdisk -l
, чтобы определить, какое устройство является USB-диском, например,/dev/sdb
.
- Подключите USB-накопитель и выполните
-
Размонтируйте устройство:
- Убедитесь, что устройство не смонтировано:
sudo umount /dev/sdb
.
- Убедитесь, что устройство не смонтировано:
-
Выполните
dd
:- Используйте команду
dd
, предоставив корректные пути для входного (ISO-файл) и выходного (USB) устройства.
- Используйте команду
Проверка результата
После завершения, используйте sync
, чтобы удостовериться, что все данные сброшены на диск:
sudo sync
Теперь у вас есть USB-накопитель с записанным ISO-объектом, который можно использовать для загрузки системы.
Применение
Применение dd
для записи ISO на USB открывает возможности для быстрого разворачивания различных операционных систем, будь то установка на сервер или эксплуатация live-версий.
- Универсальность: Этот метод работает на всех *nix системах, включая Linux и MacOS, и не требует установки дополнительных пакетов.
- Надежность:
dd
обходит высокоуровневые файловые системы, гарантируя точную байт-в-байт запись. - Гибкость: Можно использовать для создания разных типов загрузочных накопителей — от простых установочных дисков до сложных наборов утилит.
Однако, при всей своей мощи, dd
требует осторожности. Ошибка при выборе устройства назначения может привести к повреждению данных. Всегда перепроверяйте путь к выходному устройству, используя команды lsblk
и dmesg
, чтобы избежать нежелательных последствий.
Заключение: Использование dd
для записи ISO-образов безопасно и эффективно при соблюдении осторожности и правильности выполнения описанных этапов. Это оправданный выбор для IT-специалистов, требующий минимальных системных ресурсов и дающий гарантированный результат, одновременно оставаясь простым и доступным средством даже в условиях ограниченного окружения.