Ние правим най-малката Linux със собствените си ръце (полезни за изучаване на системата), с отворен код в

Ние правим най-малката Linux със собствените си ръце (полезно за изучаване на системата)

Кой от нас в детството не направи от играчка, за да видите какво има вътре. Аз не правеше изключение. Това са минали само няколко години, и един от играчките, се превърна в Linux. От абстрактно желание да "пробие и да видим", е оформен в няколко много конкретни задачи, една от които е да се намери някаква отправна точка - минималния нещо, което ще даде на Грузия и черупка. Няколко пъти аз започнах да се съберат НРС, но в края не е пристигнал. Четох няколко статии за развитието на вградения, но всичко е твърде сериозно и възрастен: след представяне на предложения за изграждане на средата за кръстосано съставяне на различни архитектури и дистанционно отстраняване на грешки в паника отсече интернет. Прегледах няколко мини-LiveCD, но всички от тях или megadrevnie (ядро 2.4 и по-долу), или задължително с графики и DE, тъй като тя не се вписва в представата ми за перфектната minidistre за експерименти.
И не толкова отдавна, аз се случи да се знае, че това, което търся, е наречен initramfs и се намира точно под носа ми.

HOWTO-част

Нека се запитаме за задача да се получи малко, uyutnenky и за предпочитане нещо полезно разпределение, без никакви специални усилия. Като цяло, ние се нуждаем от буутлоудъра, ядрото и изображението на initramfs. Най-лесният начин да ги вземем - да се оттегли от готова дистрибуция. За да го направи все пак малко по-полезно да се BusyBox вложка и конфигуриране на множество мрежови услуги. Аз ще ви покажа как да го направя с CentOS, но по принцип можете да използвате всеки. Да започваме:

Разопаковайте някъде initrd:

защитен режим / корен / myimage
CD / корен / myimage
софтуерна -d

Инсталирайте и копирайте BusyBox на нашите minilinuks (BusyBox с нищо Линке, така че не се колебайте да копирате)

Yum инсталирате BusyBox
CP-а / sbin / BusyBox / корен / myimage / бин

Init в резерв само необходимия минимум: на sysfs и procfs създават, основните файлове на устройства, заредете правилния драйвер (за моята мрежа имах нужда да ги копирате от / ИЪ основното разпределение на) и да пуснете няколко услуги. Ето:

монтиране -t Proc / Proc / Proc
монтиране -t sysfs / сис / сис
монтиране -o режим = 0755 -t tmpfs / сътрудничество / сътрудничество
защитен режим / сътрудничество / точки
монтиране -Т devpts -о GID = 5, режим = 620 / сътрудничество / т / сътрудничество / точки
защитен режим / сътрудничество / SHM
mknod / сътрудничество / нула в 03 Януари
mknod / сътрудничество / нула в 01 Май
mknod / ррт / systty в 4 0
mknod / ррт / йу в 5 0
mknod / сътрудничество / конзола в 1 май
mknod / сътрудничество / ptmx в 02 май
mknod / сътрудничество / РТК в 10135
mknod / ррт / tty0 в 4 0
mkblkdevs
insmod /lib/libphy.ko
insmod /lib/tg3.ko
mkblkdevs
ехо добре дошли.
/ Bin / BusyBox LN -s / хамбар / BusyBox / хамбар / пепел
/ Bin / BusyBox LN -s / хамбар / BusyBox / хамбар / telnetd
/ Bin / BusyBox фоп eth0 192.168.1.1 маска 255.255.255.0
/ Bin / BusyBox уеб-
/ Bin / BusyBox inetd /etc/inetd.conf
/ Bin / пепел

23 поток TCP nowait корен / бен / telnetd telnetd -l / бен / пепел

Initramfs събират и връщат на място:

намери. | CPIO -Н newc --create --verbose | софтуерна -9> /boot/initrd-2.6.18-128.el5

Voila. Нашите minilinuks готов. Можете да разруши всичко, освен директорията / обувка и рестартиране. Но за по-голяма надеждност, ние да го прехвърля на USB флаш устройство:

Да приемем, fleshka определя като ядро ​​/ сътрудничество / SDB. На него - само една мазнина сечение. Използвайте Fdisk, за да го стартиращ

Ние проверяваме дали не звездичката в колоната за зареждане. Ако не, ние натиснете, а след това вата

Монтирайте пръчката някъде и да го копирате в / обувка

монтиране / сътрудничество / sdb1 / MNT
CP-а / обувка / MNT
демонтирате / сътрудничество / sdb1

С помощта на плюскане презапишете сектора за начално зареждане на пръчката

кльопам
> Find (hd1,0) / обувка / ровя / stage2
> Root (hd1,0)
> Setup (hd0)
> откажат

След това направих предположението, че изкоренят «трион" на флаш-памет, диска 2. Ако не, намерете да генерира грешка (не може да се намери / зареждане). Вижте резултатите от находка (hd2,0) ... намери (hd3,0) ... и т.н. докато не се намери пръчката.