Ос linux на дискете

Linux на Дискете.

1.Предисловие.
2. Права и отказ от обязательств.
3. О чем мужик шумит.
4. Минимальные требования.
5. К барьеру.
5.1 Файловая система.
6. Что на диске твоем.
7. Как быть дальше.
8. Обработка напильником.
9. Автор.
10. Литература.

1.Предисловие.
В первую очередь хочется сказать, что на отработку данного материала я лично потратил уйму времени. Этот материал представляет собой краткую информацию о создании специализированных загрузочных дисков. А не тех, которые вы можете сделать выполнением команды

mkbootdisk -device /dev/fd0 2.4.21

или с помощью утилиты rawrite из под Windows или MS-DOS.
2. Права и отказ от обязательств.
Вся содержащаяся в этом тексте информация предназначеная для Linux и Intel платформ, но так же может быть использована и для других процессоров. Все написанное здесь написано лишь с целью оказаться полезной информацией, но не является непосредственной инструкцией к действию.
3. О чем мужик шумит.
Загрузочным диском в данном конкретном случае я хочу назвать «полноценную Linux — систему в миниатюре», т.е мы будем говорить о загрузочном диске самодостаточном для самостоятельного старта и работы. Наверное, вы уже встречали такие Linux — системы. Например, мне первое, что попало в руки это дискета на 3,5″ с помощью которой поднимался роутер (freesco), все ПО для запуска и конфигурирования было на нем, и было самодостаточным. Честно говоря никода бы не полез в эти дебри, если бы не старое ядро. Я не буду здесь говорить о типах загрузочных дисков, все это в полной мере вы можете прочитать в Boot Disk-How-To.
4. Минимальные требования.
Для работы нам потребуется флопповод (/dev/fd0 хотя бы).
Поддержка петлевого интерфейса ядром. Проверить наличие поддержки можно набрав команду

Нам понадобятся исходники ядра и четкое представление о том, что должен делать диск, а так же положительный опыт сборки ядра.
5. К барьеру.
Я никого не хочу пугать, но если ваша рабочая Linux — система живет как минимум на 600 Мб (приблизительный размер RedHat 7.2 в режиме разработчика без X-oв). То здесь нам придется немного попотеть, что бы запихнуть все, что нам понадобится как минимум на 1400 Кб. Почувствуйте разницу.

И так без чего никак не обойтись:
1.минимальный набор каталогов: /bin; /proc; /lib; /dev; /etc; /usr; /tmp;
2.минимальный набор утилит: mv; cp; ls; sh и прочих
3. минимальный набор конфигурационных файлов: rc; inittab; fstab и прочих
4. /dev/hd*; /dev/tt*; /dev/fd0 и прочие

5.1 Файловая система.
Сформировать файловую систему для загрузочного диска можно двумя способами:
1.Используя RAM — диск, если ваша базовое ядро поддерживает RAM — диски.Поддерживается по умолчанию линейкой 2.4.хх.
2.Используя петлевое устройство (loopback device), если ваше базовое ядро поддерживает loopback devices.
Поддержка RAM — дисков понадобится нам и для работы нашего загрузочного диска. Так как я не прибегал к первому способу формирования файловой системы, то как следствие мы будем действовать по второму.
Для начала сформируем файл заполненный 0, в котором мы будем создавать файловую систему нашего загрузочного диска.

Читайте также:  Source code editor linux

#dd if=/dev/zero of=/tmp/fsfile bs=1k count=4000

Таким образом, мы получим файл размером 4096 Кб, этого нам будет вполне достаточно для корня файловой системы, но об этом позже.
Теперь мы его отформатируем. Есть несколько вариантом mke2fs, mkfs.ext3, mkfs.xfs и mkfs.raiserfs. Здесь выбор за вами я пользовался mke2fs преследуя только свои интересы.

#mke2fs -m 0 -N 2000 /tmp/fsfile

По правилам использования этих и других опций читайте # man mke2fs и прочии маны.

#mkdir /mnt/rootfs
#mount -o loop /tmp/filefs /mnt/rootfs

6. Что на диске твоем.
Поймите меня правильно, но я не стану сейчас описывать в какой директории, что у вас лежит или, что должно лежать это займет несколько страниц и полностью отвлечет от темы. Подробности все в том же Boot-Disk-How-To.
Создаем каталоги /bin; /sbin; /dev; /var; /usr; /proc; /etc; /lib; /mnt;на нашей файловой системе.

#cp -dpR /dev/fd0* /mnt/rootfs/dev/
#cp -dpR /dev/ram? /mnt/rootfs/dev/
#cp -dpR /dev/tty4 /mnt/rootfs/dev/
#cp -dpR /dev/hd[a-c]* /mnt/rootfs/dev/

Ну и все иные устройства, поддержка которых необходима, но не перестарайтесь.
На самом деле можно и не копировать все эти устройства, а можно заставить rc скрипт выполнять mknod для необходимых устройств. Но не забудьте, что console; mem; kmem; null; ram0 должны быть обязательно.
Заполняем /etc
Здесь все согласно ваших намерений, могу только указать то, что необходимо на 100%
1.rc
2.inittab
3.fstab
На самом деле здесь большое поле для исследовательской деятельности и все остальное, что вы внесете сюда зависит только от вашей задачи.

#!/bin/sh
/bin/mount -av
/bin/hostname Diskotech
/bin/sh

/dev/ram0 / ext2 defaults 1 1
/proc /proc proc defaults 0 0

id:2:initdefault
si::sysinit:/etc/rc
1: 2345: respawn: /sbin/getty 9600 /dev/tty1
2: 23: respawn: /sbin/getty 9600 /dev/tty2

Заполняем /bin
Тут Начинается самое веселое, столько всего, а места на диске практически и нет, без паники! Все лечится! Берем пакет busybox, собираем у себя и читаем мануал. В зависимости от версии «полной коробочки» у вас будут различное и ее наполнение.

# cp -R /bin/busybox /mnt/rootfs/bin/

И создаем все возможные софтлинки.
Заполняем /lib
Ну тут все совсем просто

#ldd /sbin/mke2fs
libext2fs.so.2 => /lib/libext2fs.so.2 (0x40025000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x4003c000)
libe2p.so.2 => /lib/libe2p.so.2 (0x4003e000)
libuuid.so.1 => /lib/libuuid.so.1 (0x40043000)
libc.so.6 => /lib/libc.so.6 (0x40046000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000

С помощью команды ldd мы выясним все необходимые нам библиотеки и скопируем их в
/mnt/rootfs/lib используя ключ -R дабы софтлинки были скопированы без нарушений.

Читайте также:  Airmon ng kali linux install

Заполняем /lib/modules
В этом нам поможет modules.conf или lsmod кому, что нравится. Самое главное не забыть модулей файловой системы с которой придется работать если она отлична от файловой системы загрузочного диска. Не забудте vfat.o мне это стоило больших неприятностей, когда заказчик не смог примонтировать саму дискету. Что лежит у меня? Дрова CD_ROM. Дрова мультипортовки, и прочее.

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

#umount /mnt/rootfs
#gzip -v9 /tmp/fsfile

И так образ нашей корневой файловой системы готов. В сжатом виде составляет, что-то вроде 650 Kb. Переходим к следующему этапу, формированию самого диска.

8. Обработка напильником.
Что ж переходим к этапу формирования ядра. Первоначально дабы не озадачиваться персональной сборкой ядра. Предлагаю самое простое это просто выполнить

#cd /usr/src/linux
#make bzImage

И посмотреть какого размера получится ядро. Если те же 650-800 Kb, то вполне приемлемый размер. Если ядро всетаки большое, то придется потратить часок другой на удаление лихних компонентов. Хочу напомнить, что ядро должно поддерживать в обязательном порядке RAM- диски, размер RAM диска по умолчанию 4096 байт, можно и больше в описываемом случае в этом нет необходимости. Так же в ядро должна быть вкомпилированная поддержка корневой файловой системы.
Теперь маленькая хитрость, что бы не выполнять десяток операций по созданию загрузочных записей на диске, выполним всего одну

#mkbootdisk -device /dev/fd0 2.4.21

тем самым сформируем шаблон загрузочной дискеты размером 1,44 Mb, если этого размера изначально не хватает, то сформируем дискетку побольше

#mkbootdisk -device /dev/fd0u1680 2.4.21

По крайней мере мне такого размера хватало за глаза.
Теперь монтируем нашу дискету и заполним ее необходимой информацией. То есть скопируем на нее образ корневой файловой системы

Запускаем любимый текстовый редактор, правим файл syslinux.cfg и пишем что-то вроде приведенного ниже текста.

default update
vga=4
prompt 1
display boot.msg
timeout 100
label update
kernel bzImage
append initrd=fsfile.gz rw root=/dev/ram

Вот собственно и все. Наш корневой загрузочный диск готов.

9. Автор.
Andrew E. Kuznetsoff aka Разгильдяй на обкуренной кошке.
10. Литература.

Источник

Встречайте Floppinux — Linux, помещающийся на дискете, обучение Linux с нуля бесплатно Киев

Встречайте Floppinux — Linux, помещающийся на дискете, обучение Linux с нуля бесплатно Киев

В конце мая стало известно, что появился дистрибутив Линукс, помещающийся на одной дискете — Floppinux. Стоит отметить, что разработал это чудо минимализма программист из Польши Кшиштоф Кристиан Янковски. И известен в узких кругах он, помимо участия в развитии ОС, прежде всего своими инди-играми. К счастью, простое обучение Linux с нуля бесплатно Киев поможет узнать достаточно для выбора дистрибутива. А пока рассмотрим внимательнее творение талантливого польского разработчика.

Что из себя представляет Floppinux, обучение Linux с нуля бесплатно Киев

Прежде всего, при изучении возможностей нового дистрибутива поражает его более чем скромный объем занимаемой памяти. Так в полноценном варианте он занимает менее объема дискеты — до 1,44 мегабайта. Стоит отметить, что помимо компактности установочного образа это также дает еще одно преимущество данному дистрибутиву. А именно — скромные системные требования и возможность работать при самых ограниченных ресурсах техники. При этом установить Floppinux может каждый, кто прошел курс Linux Essentials Киев. По словам создателя, для полноценной работы ОС хватит древнего i486 с 24 мегабайтами ОЗУ. На сегодняшний день это позволяет использовать дистрибутив в целом ряде встраиваемых систем.

Читайте также:  Изменить свой mac адрес linux

Также отдельного внимания заслуживает «начинка» этого представителя семейства GNU/Linux. В частности нужно отметить, что она работает на базе ядра версии 5.13.0-rc2. Однако, как и стоило ожидать от такой крохи, набор предустановленного софта крайне ограничен. По факту пользователю будут доступны лишь самые базовые функции и встроенные приложения. С другой стороны, Кшиштоф Кристиан Янковски обещает в скором времени пополнить этот список такими возможностями:

Скорее всего, Floppinux не станет универсальным решением для всех, однако заявку на захват своей ниши он сделал. Потому в ближайшем будущем мы вполне можем увидеть интересные примеры применения данной системы. А чтобы понимать особенности той или иной сборки или даже создавать свои, нужно совсем немного. Достаточно для начала пройти Linux Essentials на русском Киев и практические занятия с виртуальной средой.

Почему программисты создают такие экстремальные дистрибутивы

Важным отличием ОС на базе GNU/Linux от аналогов является открытый исходный код. Процесс совместной разработки допускает и даже поощряет ветвление семейств дистрибутивов и создание форков. Таким образом, каждый разработчик может создать собственную версию системы для определенных нужд. Потому возникновение интересных и оригинальных сборок в такой среде — лишь вопрос времени.

Важно понимать, что именно гибкость обеспечила творению Линуса Торвальдса такую популярность в профессиональной среде. Понять это очень легко, пройдя курс LPI Linux Essentials Киев или аналогичный ему. И такие широкие возможности для кастомизации позволяют ОС делают ее выбором №1 во многих сферах. Например, в управлении серверами, где ценятся надежность, безопасность и возможность гибкого конфигурирования. Или во встраиваемых системах, нуждающихся в оптимальном использовании ресурсов аппаратного обеспечения. Так или иначе, но в той же сфере интернета вещей (IoT) у Linux нет конкурентов.

Потому создание Floppinux и подобных ему дистрибутивов неизбежно по одной простой и крайне логичной причине. А именно — потому что оно физически возможно и может принести пользу в определенных ситуациях. Так что в будущем подобные проекты неминуемо будут возникать с различными вариациями. И они вовсе не являются простым упражнением для программиста. Как и случаи установки Линукс на различную технику, не предназначенную для этого. Все это в конечном итоге двигает прогресс в сообществе разработчиков и открывает новые возможности пользователям.

Источник

Оцените статью
Adblock
detector