Делаем загрузочную флешку из ISO образа на Unix/Linux

Делаем загрузочную флешку из ISO образа на Unix/Linux

Хочу рассказать несколько способов как можно сделать загрузочную флешку из ISO образа на Unix или Linux. Приведу в своей статье «Делаем загрузочную флешку из ISO образа на Unix/Linux» готовые примеры.

1. Способ (Использования утилиты — unetbootin).

Очень простой способ. Скачиваем с официального сайта данную программу и устанавливаем ее. После чего, можно пользоваться. Я не буду приводить подробную инструкцию т.к очень проста в использовании. Но скриншот приведу, данной утилиты:

 

<img aria-describedby=»caption-attachment-5345″ src=»http://linux-notes.org/wp-content/uploads/2015/02/unetbootin-na-mac-os.jpg» alt=»unetbootin на mac os» width=»521″ height=»383″ srcset=»https://linux-notes.org/wp-content/uploads/2015/02/unetbootin-na-mac-os.jpg 521w, https://linux-notes.org/wp-content/uploads/2015/02/unetbootin-na-mac-os-300×221.jpg 300w» sizes=»(max-width: 521px) 100vw, 521px» />

unetbootin на mac os

2. Способ (использования стандартных утилит в ОС Unix/Linux).

Вставляем вашу флешку в ПК и открываем терминал для дальнейшей работы.

Для начала, нужно знать какие устройства и с какими ID они хранятся в системе, по этому, выведу список всех дисков:

sh
1 lines
$ diskutil list
<img aria-describedby=»caption-attachment-5279″ loading=»lazy» src=»http://linux-notes.org/wp-content/uploads/2015/01/diskutil-list.jpg» alt=»diskutil list» width=»764″ height=»539″ srcset=»https://linux-notes.org/wp-content/uploads/2015/01/diskutil-list.jpg 764w, https://linux-notes.org/wp-content/uploads/2015/01/diskutil-list-300×212.jpg 300w» sizes=»(max-width: 764px) 100vw, 764px» />

diskutil list

Находим вашу флешку, а в моем случае это был  раздел с именем/dev/disk4.

Отмонтируем ее для записи образа:

sh
3 lines
$ diskutil unmountdisk /dev/disk4
Unmount of all volumes on disk4 was successful

Но и собственно, можно сейчас скопировать образ на флешку с помощью утилиты dd:

sh
1 lines
$ sudo dd if=/Users/captain/Install/OS/CentOS/CentOS-6.6-x86_64-bin-DVD1.iso of=/dev/disk4 bs=10m
sh
5 lines
204+1 records in
204+1 records out
2147485095 bytes transferred in 318.293161 secs (6746878 bytes/sec)

if=/Users/captain/Install/OS/CentOS/CentOS-6.6-x86_64-bin-DVD1.iso  — это путь где лежит мой образ CentOS на macOs,

of=/dev/disk4 — это диск на который нужно записать образ ( у меня CentOS 6.5).

bs=10m — Это количество mb, которые будут записаны за раз.

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

Можно посмотреть, есть ли процесс команды «dd»:

sh
3 lines
$ pgrep -l '^dd$'
82494 dd

Другие полезные команды по dd.

Можно создать образ диска для этого нужно выполнить:

sh
1 lines
# dd if=/dev/cdrom of=image.iso

Данная команда считает из устройства  cd-rom  все данные и запишет в файл постепенно со всего устройства. Бывает такое, что диск иногда оказывается битым,  то вы можете попробовать его прочитать и игнорировать  все ошибки чтения с помошью:

sh
1 lines
# dd if=/dev/cdrom of=image.iso conv=noerror

Параметр «conv» дает возможность подключить несколько фильтров,  которые относятся к потоку данных. Фильтр «noerror» отключает остановку работы утилиты, когда находит ошибку чтения и иногда некоторые данные с диска возможно еще будет прочитать.
Подключить, такие образы можно с использованием команды mount и с параметром «-o loop»:

sh
1 lines
# mount -o loop image.iso /mnt/image

Если что-то идет не так,  то этот процесс разбивается на 2 уровня:

sh
2 lines
# losetup -e /dev/loop0 image.iso
# mount /dev/loop0 /mnt/image

Если и так не работает, то файловая система данного образа слетела.

Работа с носителями информации

Очень простое, хоть и не всегда правильное решение склонировать HDD:

sh
1 lines
# dd if=/dev/sda of=/dev/sdb bs=4096

Тут такае же побайтовое копирование с размером буфера который можно изменить ( пока стоит 4 Кб). Есть минус этого метода в том, что при любом заполнении разделов копироваться будут все биты, а это не выгодно при копировании разделов с маленькой заполненностью. Чтобы снизить время копирования при манипуляции с большими объемами данных, стоит просто перенести MBR на новый носитель и после чего необходимо перечитать таблицу разделов ядра с помощью fdisk (как пример), создать файловые системы и просто скопировать файлы (не забываем сохранять права доступа к файлам).

Как пример, вы можно делать бекап раздела по сети по расписанию . Положив ключи ssh, можно использовать такую схему:

sh
1 lines
# dd if=/dev/DEVICE | ssh user@host "dd of=/home/user/DEVICE.img".

Чтобы на ХДД ничего нельзя было восстановить — можно забить его нулями:

sh
1 lines
# dd if=/dev/zero of=/dev/DEVICE

Надеюсь, понятно на что вам необходимо заменить DEVICE. Проверим что вышло, можно тем же dd, но нужно преобразовать данные в hex:

sh
1 lines
# dd if=/dev/sda | hexdump -C

Должны показаться нули.

Операции с MBR

MBR записана на первых 512 байтах на ХДД и состоит из таблицы разделов, загрузчика и пары дополнительных байт. Иногда, ее нужно бекапить а потом восстанавливать и т.д. Бекап можно выполнить так:

sh
1 lines
# dd if=/dev/sda of=mbr.img bs=512 count=1

Восстановить можно:

sh
1 lines
# dd if=mbr.img of=/dev/sda

Генерация файлов

С программой dd вы можете так же генерировать файлы, а потом использовать их как контейнеры других файловых систем даже в зашифрованном виде. Сейчас покажу как можно это сделать.

С помощью dd создается файл, забитый нулями (случайными числами забивать не рационально: долго и бессмысленно):

sh
1 lines
# dd if=/dev/zero of=image.crypted bs=1M count=1000

Этой командой будет создан файл размером в 1 Гб. После этого необходимо сделать этот файл блочным устройством и, при этом, пропустить его через механизм шифрования ядра linux. Я выбираю алгоритм шифрования такой какblowfish. Подгружаем модули:

sh
2 lines
# modprobe cryptoloop
# modprobe blowfish

Выполняем ассоциацию образа с блочным устройством со включенным шифрованием:

sh
1 lines
# losetup -e blowfish /dev/loop0 image.crypted

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

Создадим файловую систему и монтируем ее:

sh
2 lines
# mkfs.ext2 /dev/loop0
# mount /dev/loop0 /mnt/image

Образ уже готов к записи данных. По завершению работы с ним, нужно обязательно его отмонтировать и отключить от блочного устройства loop :

sh
2 lines
# umount /dev/loop0
# losetup -d /dev/loop0

Теперь шифрованный образ готов.

Статья «Делаем загрузочную флешку из ISO образа на Unix/Linux» завершена.

Было ли это полезно?

0 / 0