Делаем загрузочную флешку из ISO образа на Unix/Linux
Хочу рассказать несколько способов как можно сделать загрузочную флешку из ISO образа на Unix или Linux. Приведу в своей статье «Делаем загрузочную флешку из ISO образа на Unix/Linux» готовые примеры.
1. Способ (Использования утилиты — unetbootin).
Очень простой способ. Скачиваем с официального сайта данную программу и устанавливаем ее. После чего, можно пользоваться. Я не буду приводить подробную инструкцию т.к очень проста в использовании. Но скриншот приведу, данной утилиты:
2. Способ (использования стандартных утилит в ОС Unix/Linux).
Вставляем вашу флешку в ПК и открываем терминал для дальнейшей работы.
Для начала, нужно знать какие устройства и с какими ID они хранятся в системе, по этому, выведу список всех дисков:
$ 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» завершена.