Custom Live USB
Содержание
Цель
Получить портативную копию запущенной/установленной ОС ROSA Desktop.Fresh в виде живой (live) системы на USB Flash drive/SD/microSD/HDD/ и т.д. c возможностью сохранения изменений и без, а также с возможностью полноценной установки стандартной программой-инсталлятором из live режима.
Средства
Для достижения цели вам понадобятся:
- урезанная версия или полная версия сборки MagOS на пакетной базе ROSA Desktop.Fresh 2012
- наличие в системе установленного пакета squashfs-tools версии 4.х
- если нужна возможность установки вашей системы с live usb, то нужно установить пакет draklive-install.
- носитель, который будет использоваться в роли загрузочного. Необходимую емкость вы сможете определить в процессе подготовки.
Процесс
- проверяем наличие всех необходимых пакетов.
- делаем файл-слепок системы в виде модуля к MagOS с расширением .xzm командой (из-под root):
mksquashfs / /media/папка_назначения/10-имя_файла-слепка.xzm -e /etc/fstab /media /mnt /sys /dev /proc /run /tmp /var/tmp /var/log
(цифра "10-..." в начале имени файла соответствует порядку загрузки модулей в MagOS. Параметром -e /etc/fstab /media ... исключаются папки и файлы, которые не нужны для копирования).
Вместо одного целого файла можно сделать несколько модулей, содержащих слепки отдельных частей системы. Например, можно выделить /home раздел в отдельный модуль или же выделить в отдельные модули каждую пользовательскую папку. Если существующие пользовательские данные не нужны, то тогда можно создать пустого пользователя и его использовать для включения в домашний модуль, а остальных исключить (есть нюансы, будут описаны позднее). Все зависит от потребностей.
Если вы решили сделать просто живую флешку с единственным "временным" пользователем, который не нужен будет после установки с live usb, то назовите этого пользователя live, тогда после установки на компьютер его там не будет. Если live не нравится, то назовите как угодно, но тогда перед тем как делать слепок в файле /etc/draklive-install.d/run.d/remove-live-user.sh в команде userdel -r live замените (из-под root'а) live на вашего пользователя
- смотрим размер получившегося файла(ов) .xzm и подбираем носитель подходящего размера (плюс место для MagOS).
- распаковываем содержимое архива MyLiveROSA.tgz. там будут папки boot, MagOS и MagOS-Data. Копируем их на носитель. Если вы использовали полную версию сборки MagOS, то из папки /MagOS/base/ удаляете все модули .xzm, кроме 00-kernel.xzm и 01-firmware.xzm. туда же копируете свой(и) файл(ы) .xzm.
- делаете загрузочным носитель. заходите в папку boot/syslinux/install.lin(.win) на носителе и выполняете bootinst.sh(.bat).
- загружаетесь с подготовленного носителя, выбираете "чистый режим" и проверяете работу системы.
Работа ОС в live-режиме осуществляется на ядре 3.6.10-nrj-desktop-pae-1rosa. После установки система работает на том ядре, который был на оригинальной системе
Возможности
Ниже описаны режимы, присутствующие в меню урезанной версии. Если вы используете полную версию MagOS, то меню будет отличаться. В скобках указаны параметры загрузки, который, для соответствия, необходимо добавить к "чистому режиму" полной версии
- Чистый режим. Изменения после выключения не сохраняются. Live-носитель доступен на запись в /mnt/livemedia/.
- Режим "с сохранением только пользовательских данных". (параметр загрузки home=home.img) Сохраняются все изменения, происходящие в пользовательских папках. Необходимо подготовить к работе файл-образ, который будет использоваться в качестве раздела /home (по умолчанию используется файл /MagOS-Data/home.img размером ~750 Мб):
- Загружаетесь в "чистый режим" и в терминале из-под root:
- создаете папку mkdir /mnt/home
- монтируете в нее файл-образ mount /mnt/livemedia/MagOS-Data/home.img /mnt/home
- далее вы должны либо создать папки существующих в системе пользователей mkdir /mnt/home/[user] и поменять владельца и группу chown [user]:[user] /mnt/home/[user], либо скопировать их из текущей /home, если вам нужно все содержимое пользовательских папок.
- чтобы использовать файл home.img другого размера необходимо из архива /MagOS-Data/save.zip распаковать в ту же папку файл save1.img подходящего размера, переименовать его в home.img и подготовить вышеописанным способом.
- Режим "с раздельным сохранением всех изменений". (параметры загрузки home=home.img changes=system.img) Данные пользователя сохраняются в файл /MagOS-Data/home.img (см.выше), а все системные изменения в файле /MagOS-Data/system.img (по-умолчанию отсутствует). Чтобы использовать этот режим необходимо из архива /MagOS-Data/save.zip распаковать в ту же папку файл save1.img подходящего размера и переименовать его в system.img. Данный режим замедляет работу системы на медленных носителях.
- Режим "с сохранением всех изменений в один файл".(параметр загрузки changes=save1.img) Все изменения сохраняются в одном файле /MagOS-Data/save1.img (по-умолчанию отсутствует). Чтобы использовать этот режим необходимо из архива /MagOS-Data/save.zip распаковать в ту же папку файл save1.img подходящего размера. Данный режим замедляет работу системы на медленных носителях.
- Можно использовать разные файлы-образы (например, один для работы, другой для дома или экспериментов) назвав, например, второй файл-образ save2.img и при загрузке в меню Grub выбрать "чистый режим" и добавить праметр changes=save2.img для единовременного использования, либо внести изменения в файл /MagOS/boot/grub4dos/local/menu.lst, например:
title My ROSA - С сохранением всех изменений в один файл (Профиль 1) #find --set-root --ignore-floppies --ignore-cd /MagOS/MagOS.sgn kernel /MagOS/vmlinuz root=/dev/ram0 rw vga=791 slpash=silent changes=save1.img initrd /MagOS/initrd.gz title My ROSA - С сохранением всех изменений в один файл (Профиль 2) #find --set-root --ignore-floppies --ignore-cd /MagOS/MagOS.sgn kernel /MagOS/vmlinuz root=/dev/ram0 rw vga=791 slpash=silent changes=save2.img initrd /MagOS/initrd.gz
В архиве save.zip хранятся файлы-контейнеры разных размеров (от 128Мб до 4Гб). В полной версии сборки MagOS архив называется profiles.7z, а файлы-контейнеры MagOS-save1.img).
Учтите, что пользовательские папки в "чистом режиме", "с раздельным сохранением" и "с сохранением в один файл" не взаимосвязаны и их содержимое будет разным.
- Чтобы создать свой файл-образ нужно:
- создать файл-основу
dd if=/dev/zero of=/путь/имя_файла.img bs=1M count=X
где X - необходимый размер в мегабайтах, либоdd if=/dev/zero of=/путь/имя_файла.img bs=Y count=1
где Y - необходимый размер в байтах (YK - в килобайтах, YM - в мегабайтах, YG - в гигабайтах). - затем отформатировать полученный файл командой
(/sbin/)mkfs.ext3 имя_файла.img
может ругнуться, что это не блочное устройство, не обращайте внимание и смело отвечайте y на Proceed anyway? (y,n). - все. файл готов к употреблению. проверить результат можно командой file имя_файла.img. Ответ должен будет содержать ...Linux rev 1.0 ext3 filesystem data, UUID=...
- создать файл-основу
- для установки своей системы выберете в списке приложений Установщик в режиме live (draklive-install) и пройдите быструю процедуру установки как с обычного официального установочного диска.
В конце установки программа сообщит об ошибке копирования initrd.img в папку /boot - не обращайте внимания - все что надо уже установлено. Далее опять может появиться окно установщика - просто закройте его.
При первом входе в установленную систему он попросит ввести пароль для root и нового пользователя. при этом старые пользователи все уже есть, поэтому если новый пользователь не нужен введите любого не существующего - потом удалите.
В папке /boot установленной системы помимо вашего ядра будут находиться "ядерные" -pae файлы (config-3.6.10-nrj-desktop-pae-1rosa, symvers-3.6.10-nrj-desktop-pae-1rosa.xz, System.map-3.6.10-nrj-desktop-pae-1rosa, пустая ссылка initrd.gz, initrd-3.6.10-nrj-desktop-pae-1rosa.img), доставшиеся в нагрузку от MagOS при установке. Если мешают можете удалить. Только будьте внимательны и не удалите файлы действующего ядра.
Бонус
Примером работы такого способа является сборка Porta ROSA - система установленная с официального iso-образа, обновленная по состоянию на 29 января 2013 года и превращенная в живую флэшку с возможностью нескольких вариантов сохранения изменений. Процесс создания загрузочного носителя аналогичен вышеописанному.
Благодарность
Огромное спасибо всей команде MagOS, особенно Михаилу Зарипову (МихаилZ) и Антону Горошкину (neobht), за отличный проект и полезные советы! И, конечно же, спасибо ROSALAB'у за РОСУ!