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

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

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

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

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

 

unetbootin на mac os

unetbootin на mac os

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

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

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

$ diskutil list
diskutil list

diskutil list

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

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

$ diskutil unmountdisk /dev/disk4

Unmount of all volumes on disk4 was successful

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

$ sudo dd if=/Users/captain/Install/OS/CentOS/CentOS-6.6-x86_64-bin-DVD1.iso of=/dev/disk4 bs=10m
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»:

$ pgrep -l '^dd$'

82494 dd

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

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

# dd if=/dev/cdrom of=image.iso

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

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

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

# mount -o loop image.iso /mnt/image

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

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

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

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

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

# dd if=/dev/sda of=/dev/sdb bs=4096

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

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

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

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

# dd if=/dev/zero of=/dev/DEVICE

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

# dd if=/dev/sda | hexdump -C

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

Операции с MBR

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

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

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

# dd if=mbr.img of=/dev/sda

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

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

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

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

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

# modprobe cryptoloop
# modprobe blowfish

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

# losetup -e blowfish /dev/loop0 image.crypted

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

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

# mkfs.ext2 /dev/loop0
# mount /dev/loop0 /mnt/image

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

# umount /dev/loop0
# losetup -d /dev/loop0

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.