- Linux live kit как пользоваться
- How to build a Live distro?
- Step 1
- Step 2
- Step 3
- Step 4
- Step 5
- Step 6
- Built for developers
- Создайте собственный Live Linux дистрибутив с Linux Live Kit
- Настройка машины
- Установка Linux
- Забота о зависимостях
- Обрезка жира
- Пользовательская настройка
- Скачать Linux Live Kit
- Генерация вашей Live OS
- Запуск вашего Live Distro
- Создание операционной системы на базе ядра linux. С нуля
Linux live kit как пользоваться
is a set of shell scripts which allows you to create your own Live Linux from an already installed Linux distribution. The Live system you create will be bootable from CD-ROM or USB Flash Drive
How to build a Live distro?
Step 1
Install your favourite distro to disk partition, or into a folder on your existing system.
Debian is recommended but not required.
Step 2
Make sure that squashfs and either aufs or overlayfs kernel modules are supported by your kernel. Chaces are your distribution supports them automatically.
Step 3
Remove all unnecessary files, to make your Live Linux system as small as possible (this step is optional). It is recommended to remove udev’s persistent net rules and other settings of your distro, which may prevent it from functioning correctly on different hardware.
Step 4
Download Linux Live Kit from GitHub and put it in /tmp. Read files in ./DOC/ to learn how it works (this step is optional). Edit .config file if you need to modify some variables.
Step 5
Finally log in as root and run the ./build script. Your Live Kit ISO image will be created in /tmp.
Step 6
To make bootable USB, unpack the generated TAR archive (also from /tmp) to your USB device and run bootinst.sh from the boot sub-directory.
Built for developers
Linux Live Kit is the most innovative toolkit available. AuFS provides better stability compared to old unionfs, squashfs with XZ support provides great compression ratio and amazing decompression speed. What’s new compared to old Linux Live scripts (last released in 2011)?
- aufs or overlayfs is used instead of unionfs, brings great stability and features
- squashfs supports XZ compression including BCJ filters for incredible compression
- CD tree is simplified, you may call your distro as you like, eg. slax, knoppix, etc.
- support for booting from USB device as well as CD/DVD discs
- persistent changes storage DynFileFS provides dynamic-size filesystem
- support for writing persistent changes even to VFAT or NTFS
- support for loading your LiveKit data from different directory or even from an iso file
- an install script to make your device boot in Linux and Windows
Read current changelog
Источник
Создайте собственный Live Linux дистрибутив с Linux Live Kit
Linux, это слово, которое заставляет многих незнакомых глаз почти мгновенно глазеть. Тем не менее, предложения Linux для настольных компьютеров в настоящее время практически не уступают таким громким именам, как Windows и MacOS.
Благодаря десятилетиям общественной работы и поддержки со стороны таких организаций, как Canonical, вы можете загрузить что-то вроде Ubuntu Linux сегодня и делать практически все, что вы можете с Windows. Все без необходимости получения степени в области компьютерных наук. Современные настольные дистрибутивы Linux выглядят хорошо, работают хорошо и подходят для обычных пользователей.
Тем не менее, они имеют одну огромную разницу
по сравнению с коммерческими операционными системами — Open Source лицензирование.
Это означает, что у нас есть полный доступ ко всем
внутренняя работа Linux. Вам не нужно платить, чтобы использовать его, и вы можете настроить
это примерно так, как вам нравится. Это отлично подходит для опытных пользователей, которые любят
возиться с гайкой и болтами, но что делать, если вы просто хотите сохранить свой собственный
подправили кастомную установку Linux?
На самом деле вы можете создать новую установку Linux, настроить ее так, как вам нужно, и затем превратить ее в оперативную загрузочную установку. Это очень полезно по нескольким причинам. Прежде всего, это означает, что у вас не будет простоев, если вам придется переустанавливать операционную систему.
Все ваши настройки и программное обеспечение будут ждать с самого начала. Это также упрощает создание пользовательских установок для распространения. Допустим, вам нужно установить Linux на всю компьютерную лабораторию, полную компьютеров, а затем установить образовательные пакеты. Использование специального инструмента распространения означает, что вам нужно выполнить эту настройку только один раз, а затем просто установить как обычно.
Один из самых простых инструментов там называется
Linux Live Kit, и мы рассмотрим, как именно вы можете изменить
существующая установка Linux обратно в пользовательский дистрибутив.
Настройка машины
Чтобы использовать Linux Live Kit, вам нужно
установка Linux для настройки. Хотя вы можете пойти дальше и сделать это с
ваша основная установка, это не самый практичный подход, если вы хотите
создавать собственные дистрибутивы для чего-то другого, кроме вашего основного компьютера.
Итак, что мы будем делать, это установить Ubuntu
Linux на виртуальную машину VirtualBox. Это дает нам чистый, контролируемый
среда установки. Это также означает, что вы можете создавать собственные дистрибутивы Linux из
машина Windows, если хотите. Наконец, это хороший способ проверить дистрибутив
Вы только что создали, чтобы убедиться, что он работает правильно.
Мы собираемся использовать следующие компоненты:
- Windows 10
- VirtualBox
- Ubuntu 18 LTS
Помните, процесс работает точно так же
если вы используете Linux Live Kit на установке Linux, которая работает как обычно на
компьютер, а не в виртуальной машине.
Установка Linux
Первое, что нужно сделать, это установить Linux.
Очевидно, что если вы хотите использовать существующую установку, вы можете пропустить этот шаг.
Установка Linux обычным способом просто требует
что вы загружаетесь с установочного диска DVD или USB. Потому что мы используем
VirtualBox, мы просто должны создать новую виртуальную машину, а затем указать ее
в сторону образа диска Ubuntu, который мы скачали. Вот шаги, которые вам нужно
следовать.
Забота о зависимостях
Так как Linux Live Kit просто умный
коллекция скриптов, для этого нужны определенные другие программные пакеты
на вашей машине Linux. Во многих случаях они уже будут частью по умолчанию
версию Linux вы выбрали, но вам придется проверить это в любом случае.
Вы должны убедиться, что AUFS поддерживается ядром, используемым выбранным вами дистрибутивом Linux. Вы можете проверить, какие версии ядра поддерживают aufs Вот, Если выбранное вами ядро не поддерживает aufs, вам нужно поискать альтернативное решение для Linux Live Kit.
Теперь нам нужно убедиться, что Squashfs
установлен в системе. Это технология сжатия, используемая Linux Live
Комплект. Чтобы установить его, вот что нужно сделать.
Сначала откройте Терминал. В Ubuntu вы можете сделать это, нажав кнопку «Показать приложение» в левом нижнем углу экрана. Это вызовет панель поиска. Найдите «Терминал» и щелкните по нему, когда он появится.
Теперь в терминале введите следующее:
Судо
apt-get update && sudo apt-get install squashfs-tools
Если все пойдет хорошо, пакет будет
установлены. Если у вас возникнут проблемы, вам придется обратиться к вашей версии
Документация по ОС. Решение проблем с хранилищем и установкой
вне нашей области для этого урока.
Обрезка жира
Так как ваш живой дистрибутив будет иметь все
тот же контент, что и установленный вами, вы должны удалить все файлы, которые вы не
нужно от вашей установки. Вам не нужно делать это, и хранение дешево
в эти дни, если вы используете флешку. Если вы не знаете, что безопасно удалить,
пропустите эту часть сейчас.
Пользовательская настройка
Теперь вы можете пойти дальше и внести изменения, которые вы
хочу для вашего живого дистрибутива. Устанавливать приложения, подправлять настройки и так далее. однажды
с этим покончено, мы можем перейти к самому Live Kit.
Скачать Linux Live Kit
Теперь пришло время скачать нужные нам скрипты.
Вы можете найти его на GitHub, Обратите особое внимание на советы в
README здесь. Некоторые из них могут иметь отношение к вашим потребностям или ситуации. За
Например, есть конкретные инструкции, если вы хотите создать загрузочный лайв
КОМПАКТ ДИСК.
Сохранить
скачанные файлы в / tmp. В загрузке вы будете
найдите папку с именем «/ DOC /. Это заполнено дополнительной информацией readme
чтобы помочь вам в случае, если вы попали в препятствие.
Генерация вашей Live OS
Теперь, когда файлы сценария находятся там, где они
должно быть, мы хотим запустить скрипт. Для этого нам придется переключиться
от обычного пользователя до суперпользователя. В Ubuntu откройте терминал и введите следующее:
Это переключит вас в папку TMP, где мы
распаковал файлы Live Kit.
Последнее, что нам нужно сделать, это запустить скрипт, поэтому введите:
Теперь просто подождите, пока скрипт не будет готов!
Запуск вашего Live Distro
Итак, как вы получаете ваш живой дистрибутив? Сценарий
генерирует две версии в папке / TMP. Есть образ ISO, который вы можете
записать на диск или загрузить в виртуальную машину для тестирования. Большинство людей однако
собирается позаботиться о загрузочных файлах USB. Они также находятся в папке / TMP.
Скопируйте их на флешку, не забудьте
распакуйте их в процессе. Как только они там, используйте терминал и
перейдите в каталог / boot. Затем запустите сценарий «bootinst.sh», чтобы сделать это
флешка загрузочная.
Если все пойдет хорошо, теперь у вас будет свой
живая ОС!
Источник
Создание операционной системы на базе ядра linux. С нуля
Рано или поздно каждый пользователь Линукса задумывается над созданием собственного дистрибутива. Некоторые аргументируют это тем, что можно «все настроить под себя». Другие сетуют на то, что среди уже представленных дистрибутивов в Ветке нет идеального. А у них, якобы, есть суперконцептуальные идеи для собственной системы. Зачем я всю эту психологию затеял? Для того, чтобы сразу перекрыть кислород играющимся с Линуксом новичкам, которым делать нечего. Если уж задумались над созданием ОС, думайте до конца. Итак,
Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный. ) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.
Шаг 1. Выбор носителя
Вариантов немного: либо ваша ОС запускается с LiveCD, либо с жесткого диска, либо с флеш-устройства. Сразу оговорюсь: не скажу в посте ни слова про жесткий диск, потому что гораздо удобнее создавать гибкий дистрибутив из серии «все свое ношу с собой», либо залоченный дистрибутив на оптическом диске. Если вы научитесь создавать LiveCD или LiveUSB систему, с установкой на жесткий диск проблем не будет.
На всякий случай, приготовьте чистую флешку, CD-диск, и установите, наконец, Virtualbox.
Шаг 2. Компиляция ядра
По поводу выхода третьего ядра Linux, этот шаг воодушевляет на дальнейшие разработки… Итак, нам нужны исходники ядра. Каждый пользователь знает, что их можно достать на сайте kernel.org. Ни в коем случае, слышите?, никогда не прикручивайте к своей системе постороннее ядро, скомпилированное не вами!
Поскольку лень моя зашкаливала, я создал папку /linuxkernel и распаковал туда архив с исходниками. Залогинившись под рутом, я сделал следующее:
cd /linuxkernel
make menuconfig
В принципе, ядро можно конфигурировать тремя способами: make config (диалоговая конфигурация), make menuconfig (псевдографическая конфигурация через ncurses), а также make xconfig (графическая конфигурация). Суть в том, что make config испортит вам настроение надолго, т.к. он задаст все возможные вопросы по всем аспектам всех тем. Проблема с make xconfig встречается не у всех, но вот у меня встречалась и встречается. Если приспичило сделать через X, разбирайтесь сами. Оптимальный вариант — make menuconfig. Эта штука откроет вам псевдографический интерфейс, через который вы сможете настроить ядро на свой лад. Штука требует библиотеки ncurses, которая легко устанавливается.
В принципе, если ваш мозг хоть сколько понимает Линукс, вы разберетесь с конфигурированием. Процесс это интересный, вариантов действительно много, а справка, хоть и на английском языке, но все же радует своей доступностью и простотой.
Однако, направить вас все же придется. Перейдите по адресу File Systems —> и поставьте необходимые звездочки. Буква M означает, что поддержка того или иного драйвера осуществляется с помощью подключения к ядру внешнего модуля (ненавижу их!). Нам понадобится также поддержка isofs, для чтения дисков. File Systems —> CD-ROM/DVD Filesystems —> ISO 9660 CDROM file system support. Можно еще поддержать древнедосовские системы.
Чмошные разработчики Mandriva забыли разрешить File systems —> DOS/FAT/NT Filesystems —> NTFS write support, и на одном из их дистрибутивов я мучился с доступом к древневиндовскому разделу.
Посмотрите Processor type and features —> Processor family, мне порекомендовали выбрать Pentium-MMX.
Еще поройтесь в Device Drivers, полезно. Можете шутки ради понавыбирать там все и скомпилировать ядро весом > 50 Мб.
Далее. Ядро после загрузки себя должно загружать, собственно, систему. Либо из скомпилированных в себе файлов (используются во встраиваемых системах), либо из CPIO архива, сжатого чем-нибудь, либо из Initrd. Здесь вам не DOS, здесь не получится сразу сослаться на какой-нибудь init’овый файл в корневом каталоге диска или флешки. На самом деле получится, не слушайте дядю Анникса! Неправильно это, хоть в Интернете по этому поводу уже нехилая полемика ведется. В своей системе мы будем использовать initrd, т.к. это удобно, и не вызовет нецензурных выражений от сторонних разработчиков, в отличие от CPIO архива.
Ах, да, скомпилируйте ядро командой
Если у вас x86, найдете его по адресу /linuxkernel/arch/x86/boot/bzImage.
Для суровых челябинских программистов можно использовать Кросс-компайлинг…
Теперь нам нужен initrd с установленной там простейшей оболочкой. Мы будем использовать busybox, потому что эта няша может все. Способ мы украдем у Роберто де Лео, создателя Movix (я бы даже уважать его начал, если бы не запредельная любовь к Perl):
dd if=/dev/zero of=/dev/ram0 bs=1k count=5000 — Создаем Ramdisk в оперативной памяти нашего компьютера.
mke2fs -m0 /dev/ram0 5000 — Форматируем Ramdisk в системе Ext2
mkdir /distro — Создаем папку
mount /dev/ram0 /distro — Монтируем в папку /distro
Все, теперь у нас есть Ramdisk, емкостью в 5 Мб. Можно и больше, только не нужно. В отличие от Томаса Матеджисека, я не собираюсь пичкать initrd модулями в Squashfs, сжатыми LZMA. Все, что необходимо, будет скомпилировано вместе с ядром. Да, это не очень логично и правильно, но мороки в сто раз меньше. А специально для тех, кто осуждает такой подход, можно разрешить опцию модульности в ядре: Enable loadable module support.
В нашем Ramdisk’е, смонтированном в /distro, есть такая папка, lost+found. Это потому, что мы отформатировали его в ext2. Ни в коем случае нельзя ее удалять, хоть она здесь вряд ли поможет, образ-то фиксированный. Нам бы busybox сначала поставить…
Установка Busybox
Вот почему у таких классных проектов такие отстойные сайты? Хотя… это уже не суть важно, если исходники скачаны и успешно распакованы в папку /busybox.
Сконфигурировать busybox можно так же:
cd /busybox
make menuconfig
Если вы еще не поняли, что это, объясню. Busybox заменяет тонны UNIX приложений, хранящихся в папках /bin, /sbin, /usr/bin, /usr/sbin. Вместо этого, создается только одно приложение: /bin/busybox, а на него создается куча ссылок в указанных выше папках. Установим busybox следующей командой:
make CONFIG_PREFIX=/distro install
Еще Busybox создаст файлы /sbin/init и зачем-то /linuxrc, чтобы ваша система корректно запустилась. Но не все необходимые папки были созданы. Так что завершаем все руками и создаем:
/distro/etc
/distro/lib
/distro/dev
/distro/mnt
distro/proc
/distro/root
/distro/tmp
/distro/root
Если что забыл — вспомните, т.к. директории эти забыть сложно.
Все бы хорошо, вот только busybox для работы требует библиотеки, которые нужно скопировать в наш дистрибутив. Очень легко узнать, какие:
Программа покажет нам библиотеки, требуемые для нашей оболочки. Сразу говорю: linux gate создается ядром и скопирован быть не может.
При копировании библиотек можно отсекать отладочную информацию (так Роберто советует):
objcopy —strip-debug откуда куда
Делаем из Линукса Линукс
Надо создать несколько системных текстовых файлов:
Нам нужен /etc/inittab. Удивлю вас: в начале жизни система даже не знает, что такое Root. У нас даже пользователь безымянный, но вот файл общесистемных низкоуровневых фич (ОНФ) должен присутствовать. Пилотное содержание файла следующее:
# Запустить оболочку в консоли.
::respawn:-/bin/sh
# Перезагрузка по нажатии на Ctrl+Alt+Del.
::ctrlaltdel:/sbin/reboot
# Команды, выполняемые перед выключением и перезагрузкой.
::shutdown:/sbin/swapoff -a >/dev/null 2>&1
::shutdown:/bin/umount -a -r >/dev/null 2>&1
Следующий файл — /etc/fstab. Это таблица, в которой описано, что и куда монтировать при загрузке. Вещь бесполезная! Нам нужно обязательно смонтировать proc, иначе вообще ничего работать не будет, так что в файле пишем:
none /proc proc defaults 0 0
Для mount нужен также файл /etc/mtab. Создайте его и оставьте пустым.
Но mount сделает все необходимое только тогда, когда мы явно его об этом попросим. А просить мы будем в том самом первозагрузочном файле /etc/rc.d/rc.S (rc.d — папка). Вежливо попросим:
/bin/mount -av -t nonfs
Еще нам необходим файл профиля (b)(a)sh, тут вообще раздолье для фантазии. Создаем файл /etc/profile и заполняем следующим:
PATH=»$PATH:/bin:/sbin:/usr/bin:/usr/sbin:»
LESS=-MM
TERM=linux
HOME=/root
PS1=’> ‘
PS2=’> ‘
ignoreeof=10
export PATH DISPLAY LESS TERM PS1 PS2 HOME ignoreeof
Понадобится также файл /etc/shell, в котором указано, что есть оболочка:
Вот собственно и все. Можно записывать наш Ramdisk в файл.
mkdir /os — папка для «готового».
umount /dev/ram0 — размонтируем кусочек оперативной памяти.
dd if=/dev/ram0 of=/os/initrd bs=1k count=5000 — создаем файл.
gzip /os/initrd — сжимаем файл initrd
Создание загрузочной флешки
«Финишная прямая» нашей маленькой разработки. Берем флешку, вставляем, форматируем в vfat (можно и в ext, но не забывайте, что еще не все пользователи Windows застрелились).
На флешке создаем папку boot, в ней папки initrd и kernel.
Из папки /os копируем сжатый Ramdisk в папку boot/initrd на флешке, называем «main.gz». Из папки с исходниками ядра копируем bzImage в папку boot/kernel на флешке, называем «main.lk». Достаем файлы загрузчика Syslinux (в Интернете, либо из другого дистрибутива: тут не принципиально), а именно syslinux.bin, syslinux.boot, syslinux.cfg. Копируем их в корневой каталог нашей флешки. В файле syslinux.cfg пишем что-то подобное:
default mm
prompt 1
timeout 100
label mm
kernel /boot/kernel/main.lk
append initrd=/boot/initrd/main.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label mc
kernel /boot/kernel/main.lk
append initrd=/boot/initrd/custom.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label cm
kernel /boot/kernel/custom.lk
append initrd=/boot/initrd/main.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label cc
kernel /boot/kernel/custom.lk
append initrd=/boot/initrd/custom.gz load_ramdisk=1 ramdisk_size=5000 rw root=/dev/ram0
label hd
localboot 0x80
Тем самым мы поддержали кастомные initrd и ядро, которые, эксперимента ради, можно подключить к нашему дистрибутиву.
Узнаем, каким девайсом в системе является наша флешка (можно запустить mount без параметров и посмотреть). Это либо /dev/sdb1, либо /dev/sdc1, либо /dev/sdd1. Стоит отмонтировать флешку перед началом установки.
Устанавливаем syslinux (если пакета в системе нет, apt-get install syslinux):
syslinux -d путь_к_устройству
В корневом каталоге флешки должен появиться файл ldlinux.sys. Если он есть, значит syslinux.bin, syslinux.boot больше не нужны.
Как настроить BIOS на загрузку из флешки, я вам рассказывать не буду — это легко. Скажу только, что очень удобно создать папку /boot/initrd/init, в которую можно будет смонтировать /boot/initrd/main, для последующей работы с ним. Только не забудьте разжимать и сжимать его gzip’ом.
Как-бы я только что рассказал вам, как создать с нуля систему на Linux. Легко, не правда ли? Далее вы можете редактировать скрипт /sbin/init, ведь у вас еще много работы! Вы должны будете написать скрипт для монтирования флешки, который делает chroot в корневой каталог. В противном случае, вы вынуждены будете работать с ReadOnly разделом, величиной в 5 Мб. Но это уже совсем другая история.
Томас Матеджисек — создатель Slax и Linux Live Scripts.
Роберто де Лео — создатель Movix.
Источник