Коротко о том, что вы уже должны знать. Для запуска Linux с флешки на любом компьютере необходимо записать образ системы на USB накопитель. Некоторые дистрибутивы «умеют» сохранять загруженные/изменённые данные для следующих запусков. Но их для этого предварительно нужно настроить.

Цель написания данной статьи заключается в том, что нет (или я не нашёл) полной инструкции как сделать Linux live usb без помощи Windows, да ещё и с persistence разделом.

 

Инструментарий:

• Рабочий Linux с установленными программами fdisk, dd, mkfs и доступом к root
• ISO образ Linux’а, который мы хотим запускать с флешки (у меня например Parrot OS)
• USB накопитель 4Gb или более
• Прямые руки и немного времени

 

Предупреждения:

• /dev/sdb — путь к файловой системе устройства (USB накопителю), у вас он может быть другим, например sdc, sdd и т.д., поэтому будьте внимательны.
• sdbn, где n — число от 1, это нумерация разделов вашего запоминающего устройства.
• Иногда при изменении структуры файловой системы флешки её нужно будет перевставить в компьютер, чтобы тот или иной раздел появился в /dev.

 

Ход работы Порядок действий:

Во-первых, с помощью fdisk удаляем все разделы, которые есть на флешке. В моём случае их было 4, потому что все последующие действия я уже совершал, пока пробовал сделать live usb в первый раз.

Как сделать [Kali/Parrot] Live USB persistence без Windows

Разумеется, чтобы лучше понять, что происходит на скриншотах, вам нужно прочесть описания используемых инструментов.
Не обращайте внимания на такие предупреждения красного цвета.
Проверим, всё ли получилось командой fdisk /dev/sdb -l. Она покажет, что разделов на флешке не осталось.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-19-18

Теперь можно нужно записать наш образ, делается это командой dd if=/<путь_к>/linux.iso of=/dev/sdb status=progress (очень полезная вещь, советую отдельно про неё почитать):

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-23-26

Несмотря на огромную скорость, этот процесс займёт несколько минут, после чего проверяем, что у нас получилось.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-37-19

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


Набираем команду codeby webinar

Набираем команду для организации и проведения вебинаров Подробнее ...

На самом деле, нашу «живую» флешку уже можно использовать по назначению. Можете перезагрузить компьютер и в качестве загрузочного диска выбрать usb накопитель. Однако я поступил немного проще и загрузился с флешки на Virtual Box.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-40-54

Подсказка: для создания usblive.vmdk нужно вбить в терминале VBoxManage internalcommands createrawvmdk -filename /home/<ваш_username>/usblive.vmdk -rawdisk /dev/sdb

Теперь, чтобы было где хранить все изменённые/созданные/установленные файлы и программы, нужно создать один логический раздел и в нём один подраздел (в дальнейшем sdb3 и sdb5). Снова используем fdisk

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-42-47

И проверяем что получилось

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-43-20

Следующим действием в разделе sdb5 мы создадим файловую систему ext4, в которой и будут храниться наши файлы и программы.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-45-22

Должен заметить, что параметр после опции -L обязательно должен быть persistence.

Осталось указать системе на persistence раздел следующими действиями:

sudo su
mkdir -p /mnt/pers
mount /dev/sdb5 /mnt/pers
echo «/ union» > /mnt/pers/persistence.conf
umount /dev/sdb5
exit

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-49-43

Я специально сделал немного по-другому, чтобы показать, для чего нужно переключаться на пользователя root, иначе нам не удастся записать файл persistence.conf.

Вот и всё! Осталось загрузиться с флешки, и проверить, сохраняются ли изменения. Например, поставить aircrack-ng, создать любой файлик, и перезагрузиться снова, чтобы убедиться, что всё осталось на месте.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-57-43

 

P.s: При загрузке и выключении в логах можно наблюдать некоторые ошибки относительно persistence и разделов флешки. Вроде бы на работе это никак не сказывается, но немного напрягает, поэтому, если вы знаете в чём дело, можете подсказать в комментариях.

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-13-59-11

%d1%81%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-%d0%be%d1%82-2017-01-08-14-00-29

 


Требуются разработчики и тестеры для проекта codebyOS

Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...