Cum se face un mic livecd - manual - (linux livecd) - diverse - articole

Cuvinte cheie: linux, livecd, (găsiți documente înrudite)

Am făcut al doilea livecd, deși acesta este deja foarte special
misiuni - pentru a implementa sistemul din imagine. Așa că am făcut-o






a dezvoltat un fel de tehnologie pentru producerea unor astfel de micro-distribuții.
Pachetele pe care le iau de la debian etch (precum și multe deja compilate
software-ul). Dar cred că pe un sistem de management al pachetelor liveCD, cum ar fi
apt este complet inutil. Prin urmare, înainte de a instala
Convertesc pachetele deb la tarbale regulate (.tar.gz), beneficiul
este foarte simplu (iată scenariul).

În plus, din ideea unei distribuții minime, urmează imediat discul
trebuie să existe doar ceea ce este necesar în acest caz. prin urmare
începeți crearea livecd cu pachetele cele mai necesare. De exemplu, în
În acest din urmă caz, am scris un program de instalare a scriptului
bash + dialog. Deci, discul are nevoie de: bash, dialog și (greu)
dependență. Scriptul folosește cp împreună cu compania - înseamnă că aveți nevoie de un pachet
coreutils.

Dependențele trebuie să fie urmărite cumva, nu manual? Ca un exterior
(în raport cu sistemul creat) baza de date de dependență I
Folosesc baza de date apt-cache a sistemului meu de lucru.

Toate acestea se fac, desigur, prin scripturi. Iată un scenariu,
care instalează tar.gz în directorul cu sistemul creat. acest
Scriptul găsește pachetul deb, îl convertește la tar.gz (folosind
deb2targz de mai sus) și îl instalează. În cele din urmă, asta
Scriptul stabilește mai întâi dependențele de pachete și apoi pachetul propriu-zis.

Astfel, pachetele sunt puse în sistem cu ajutorul comenzii install-depinde.

Nota 1: script-ul de instalare depinde doar de instalari
dependențe directe ale pachetului. Ie dacă pachetul A depinde de B, și
B depinde de C, depinde de instalare O comandă va furniza pachetele A și B, dar
Nu va livra pachetul C. Aceasta nu trebuie urmărită manual. Din fericire, în
sistemele mici de astfel de cazuri sunt puține. Și pentru un sistem mare, poți și tu
script pentru a repara (și puteți pune, de asemenea, managerul batch normal).

Nota 2: toate scripturile au nevoie de un director alocat noului
sistem, și în el un director numit pachete. Va fi
pachete instalate (deb și tar.gz), și același fișier va fi stocat
install.list cu lista de pachete instalate - astfel încât
setați același lucru de două ori.

Astfel, prin bucăți, în directorul selectat se dovedește
mai mult sau mai puțin o versiune de lucru a sistemului (pe care sunt necesare pachete
puneți-o în ordine pentru ca aceasta sau acea să funcționeze, de exemplu login,
aruncați o privire la LFS - carte utilă). După ce bash este instalat cu
dependente, puteți cronica în sistemul creat (chroot
/ path / to / live / bin / bash) și lucrează deja "din interior".

După instalarea pachetelor, veți avea nevoie de ceva mai mult
sistemul a devenit complet de lucru - scrierea / etc / fstab, / etc / inittab și
chiar și ceea ce este necesar (în programul de instalare, de exemplu, nu am nici inittab, nici
fstab nu este necesar). Aceasta include scrierea scripturilor de pornire
- aici aveți libertate completă, scrieți ce aveți nevoie. Pentru foarte simplu
sisteme, nu puteți seta sysvinit deloc, ci ca init
utilizați scriptul pe bash.

Astfel, se obtine un sistem in care este posibil sa se lucreze atat in
chroot-mediu. Acum trebuie să vă asigurați descărcarea acestuia. Pentru asta, înainte
toate, aveți nevoie de un kernel.

Putem lua un kernel distributiv. Este configurat pentru
încărcați-vă pe orice. El are un dezavantaj - este modular și
Nevoia pentru aceste sau aceste module este determinată de scripturile de la fiecare
încărcare. Scripturile a) sunt realizate relativ lung și b) complexe,






vrei să faci ceva în felul tău - cel mai probabil o vei sparge. totuși
cuplu "kernel de distribuție + script-uri de la sistemul de lucru" Voi sfătui
pentru cei livecd, care ar trebui să fie încărcate pe complet diferite
configurații de fier.

Dacă gama de echipamente este mai bine definită, puteți să o colectați pentru dvs.
nucleul. Acest lucru va fi necesar dacă trebuie să încărcați
Ultimul kernel - kernelul distributiv nu îl acceptă. Asta este
De asemenea, este necesar dacă doriți să aplicați pe patch-uri patch-uri, care nu sunt prezente în kernel.
distribuție kernel. De exemplu, în LiveIDE folosesc SquashFS
să se împrăștie într-un pic mai mult.

Pentru sistemele mici este posibilă asamblarea unui miez monolitic. Acest lucru este bun,
Kernelul însuși va determina toate echipamentele pe care le cunoaște, adică
scripturile pentru definirea echipamentului nu sunt necesare. Desigur, această idee nu este
Dacă aveți nevoie să mențineți o gamă foarte largă de echipamente. Cu toate acestea,
de exemplu, din nucleul pentru programul de instalare, am aruncat suportul pentru plăcile de sunet,
rețea și multe altele - nu este necesar în momentul instalării.

Pentru încărcare, aveți nevoie de un bootloader. Eu folosesc isolinux. Personalizați-l
este destul de simplu, totul este descris în documentație. Ca un exemplu
setările pot lua conținutul directorului isolinux / pe instalație
CD-ul distribuției tale.

Încărcătorul va încărca nucleul. Și kernel-ul, în teorie, ar trebui să ruleze / sbin / init.
Dar pentru aceasta, trebuie să monteze sistemul de fișiere rădăcină. Și unde vom avea
rădăcină? CD-ROM-ul nu este potrivit datorită faptului că pe diferite mașini
este conectat în moduri diferite - atunci este / dev / hdb, altfel este / dev / scd0. prin urmare
pe LiveCD ca FS rădăcină (cel puțin în prima etapă
încărcare) utilizați în mod tradițional initrd.

initrd este un fișier imagine al oricărui FS înțeles de kernel (suport pentru FS
trebuie să fie compilate în nucleu strâns, adică nu un modul). Poți
Această imagine trebuie comprimată cu gzip, primind initrd.gz - kernelul poate
despachetați aceste imagini.

Ce trebuie să puneți în initrd? În initrd pot exista cel puțin trei opțiuni:

* Un sistem destul de minim, care face doar ceea ce găsește
disc și îl montează ca un sistem de fișiere rădăcină "real";


* Partea din sistem care poate boot-a și monta restul
părți ale sistemului cu cd.


Prima opțiune este de obicei folosită în sistemele desktop. Poate fi
pentru a utiliza pentru livecd, în cazul în care sistemul principal (live)
Este nevoie de aproximativ 500 ... 700 MB. Dacă sistemul preia mai mult
- Este necesar să se folosească compresia unor părți separate ale sistemului, pentru a
cu ei să lucreze, avem nevoie de un sistem destul de banal.

În LiveIDE, folosesc a treia opțiune. Directorul / usr este comprimat în
imaginea de squashfs, și orice altceva este în initrd.

Pentru sistemele mici este logic să folosiți a doua opțiune -
punerea sistemului în initrd ca un întreg.

Sistemul de fișiere din memorie are următoarele avantaje:
1) este disponibil pentru citire / scriere (și cd și squashfs sunt doar pentru citire);
2) dacă, în plus față de kernel și initrd, nimic nu este încărcat de pe disc, discul poate fi
ieșiți din unitate imediat după încărcare. Ei bine, lipsa unui mare
Initrd-ul este evident - necesită mult spațiu în memorie.

Pentru a porni kernel-ul din initrd ca root, urmați
șir în isolinux.cfg:

adăugați initrd = initrd.gz load_ramdisk = 1 ramdisk_size = 50000 rw root = / dev / ram0


În parametrul ramdisk_size este necesar să specificați un număr ușor mai mare decât
dimensiunea initrdului neambalat.

Dacă sistemul nu utilizează sysvinit, ci folosește propriul sistem
init-script, trebuie să adăugați la această linie ceva de genul
"init = / sbin / install-image".

Acum creați imaginea initrd (de exemplu: dd if = / dev / zero of = initrd
bs = 1024 număr = 40x1024), să îl format (mkfs.ext2 initrd), să îl montează
ca un dispozitiv de buclă (mount -o loop initrd / mnt / initrd), pus acolo
tot ceea ce au decis să pună, să demonteze și să comprime (gzip initrd). crea
(mkdir output /), din care vom compila imaginea discului, în
am pus directorul isolinux, creăm directorul isolinux / kernel,
acolo am pus kernel-ul și initrd-ul. După cum este necesar, am pus fișierele / directoarele
în directorul rădăcină al discului.

Pentru a crea o imagine iso bootabilă, folosim o comandă asemănătoare
următorul

mkisofs -o /path/to/live-image.iso -r -V "CD-ul meu Live" -v -no-emul-boot
-boot-load-size 4-boot-info-table -b isolinux / isolinux.bin -c
isolinux / isolinux.boot / path / to / output


Bineînțeles, este puțin probabil ca totul să meargă din prima oară. Pentru a nu strânge o grămadă
cd-discuri, imaginile pot fi testate sub emulator (qemu).

PS. Știu că acest lucru nu este "destul de debian-wei". E mai degrabă o poveste.
Dar această metodă este mult mai flexibilă.

ar x $ 1
rm control.tar.gz
mv data.tar.gz $ # 123; 1 / .deb / .tar.gz # 125;

Revizuirea Lost Chron. Jocuri făcute fără iubire și diligență, ca un balon - coaja este, dar înăuntru este gol. Lo.

Revizuirea Podului "Sus" și "fund" în The Bridge - conceptele sunt relative. Mergând sub arc, puteți ușor să traversați.

Revizuirea SimCity Când SimCity a fost lansat cu o lună în urmă, un tsunami de furie a oamenilor a fost difuzat peste Net - prost osh.

Revizuirea strategiei . Denumirea strategiei Tactici: cel de-al doilea război mondial aproape că nimeni nu știe. Dar o privire la scenariul ei.

Revizuirea jocului pentru Scrib. Conform tradiției stabilite în cartea de informații a jocului, oferim un exemplu de mai multe jocuri similare.

Revizuirea jocului pentru Walki. Zombi și produse pe bază de licență - care, în sine, nu sunt cei mai buni reprezentanți ai biosferei jocului.







Articole similare

Trimiteți-le prietenilor: