Personalizarea unui RepairDisk: Drumul către LFS

De multe ori a trebuit să reparăm un sistem de pe un LiveCD și, la un moment dat în proces, ne-am trezit lipsă de un instrument și când dorim să-l instalăm, sistemul de operare LiveCD ne spune că a rămas fără spațiu și usturoi și apă (a dracu și a ține).

Această problemă mi-a venit cu adevărat din cauza intrării în LFS (LinuxFromScratch), care este un ghid (NU o distribuție în sine) pentru a instala un Linux personalizat. Ideea acestei „distribuții” este că de pe orice LiveCD și cu instrumentele adecvate, puteți descărca codul kernelului și alte instrumente pentru a vă construi propriul sistem (compilând totul puțin câte puțin). Dacă doriți să urmați ghidul pas cu pas, aveți nevoie de mai multe instrumente și compilatoare și nu există liveCD cu totul, așa că trebuie să personalizați unul.

Hai să o facem. Vom folosi SystemRescueCd, care oferă un mediu destul de complet bazat pe Gentoo.

În exemplul nostru (instalarea Linux de la zero în urma cărții Linux From Scratch) ne lipsesc programele Bison și Makeinfo, așa că vom crea o nouă imagine ISO a acestui disc, dar cu noile instrumente.

ANUNȚ: Gentoo este o distribuție care se compilează in situ toate pachetele pe care doriți să le instalați, prin urmare procesul de adăugare și actualizare a programelor este lent.

Deși este folosit un manager de pachete (cum ar fi apt-get de la Debian), în loc să descărcați pachete, codul sursă este descărcat pentru a-l compila pe mașina dvs.

Pentru proces veți avea nevoie de o partiție Linux (ext4 de exemplu) cu cel puțin 1.5G liber, deși se recomandă mai mult. Dacă nu vrei să te încurci cu partițiile, folosește o mașină virtuală. Desigur, este indicat ca partiția să aibă câțiva gigabytes deoarece în timpul proceselor de compilare, instalare, sincronizare a depozitului... este nevoie de spațiu temporar; Vă sfătuiesc să utilizați o partiție swap 8G + 2G (4G+1G ar trebui să fie suficient, dar pentru a fi sigur, dacă lipsește RAM/swap, procesul va fi și mai lent).

Presupunând că ați creat o mașină virtuală cu un disc de 10G, o porniți spunându-i să pornească de pe noul SystemRescueCd descărcat. Odată intrați, partiționăm cu fdisk (dacă ați început sesiunea grafică o puteți face cu gparted, dar scopul acestei postări este de a învăța utilizarea instrumentelor de bază). fdisk este o comandă interactivă:

  • cu opțiunea „n” creăm o nouă partiție
  • Cu opțiunea „t” schimbăm tipul de sistem de fișiere care va fi în partiție
  • cu optiunea "w" scriem pe disc
  • Cu optiunea "q" iesim fara sa scriem modificarile

Când folosim opțiunea „n” ne va oferi mai multe opțiuni, tot timpul vom folosi implicit, cu excepția stabilirii ultimului sector din prima partiție, pe care va trebui să scriem „+8G”, indicând astfel programului că vrem că partiția noastră ocupă 8 GB.

La crearea celei de-a doua partiții vom folosi opțiunile implicite, deoarece restul spațiului va fi ocupat. În plus, pentru a-i spune lui fdisk că a doua partiție va fi de tip swap, trebuie să utilizați opțiunea „t” (codul hex pentru swap este 82). Interfața arată astfel:

Comanda % fdisk /dev/sda (m pentru ajutor):

Odată ce totul este gata, folosim opțiunea „w” pentru a scrie modificările pe disc și a ieși.
Acum este timpul să formatați partițiile. Vom începe cu schimbul, astfel încât să îl putem folosi imediat:

% mkswap /dev/sda2 % swapon /dev/sda2

Avem deja partiția de swap formatată și cu comanda swapon Am început să-l folosim. Acum formatăm prima partiție în ext4:

% mkfs.ext4 /dev/sda1

Putem incepe sa urmam pasii descrisi in http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, aici le traduc/descriu cu alte câteva note.

Montăm partiția în locul ei (LiveCD-ul vine deja pregătit cu un folder /mnt/custom unde trebuie montată partiția în care vom face modificările corespunzătoare). În plus, după montare va trebui să extragem fișierele de pe disc, acest lucru se realizează cu un script care este deja pregătit. Scriptul va dura ceva timp (deoarece elimină sute de megaocteți de memorie), dacă doriți să verificați dacă funcționează efectiv, mergeți la alt terminal (cu Alt+F4 de exemplu) și faceți o df -h.

% mount /dev/sda2 /mnt/custom % /usr/sbin/sysresccd-custom extract

Dacă acum răsfoiți în interior /mnt/custom/customcd, veți vedea mai multe foldere. În /mnt/custom/customcd/files este localizat sistemul de fișiere rădăcină. Acum este timpul să crootezi viitorul nou sistem. Aici voi pune comenzile, pentru mai multe informații despre chroot puteți căuta acest tutorial l-am scris acum o luna

% mount -o bind /proc /mnt/custom/customcd/files/proc % mount -o bind /dev /mnt/custom/customcd/files/dev % mount -o bind /sys /mnt/custom/customcd/files/ sys % chroot /mnt/custom/customcd/files /bin/bash # gcc-config $(gcc-config -c)

Suntem deja în sistemul chrootat, care va fi sistemul LiveCD odată ce îl pornim. Vom instala pachetele lipsă (bison și texinfo) folosind comanda apărea (care se ocupă de coletul portaj de la gentoo).

Mai întâi sincronizăm arborele de portaj (echivalentul lui apt-get update)
# emerge-webrsync NOTĂ: folosim această comandă în loc de „emerge –sync”, deoarece este mai rapidă, deoarece descarcă un pachet tar de pe web. Acest pas este necesar, deoarece dacă nu apare, o va face automat cu emerge –sync, făcându-se mai lent.

După sincronizarea arborelui de portaj putem trece la instalarea pachetelor:

# emerge sys-devel/bison # emerge sys-devel/texinfo
bizonul va dura ceva timp pentru a compila, ai răbdare

Ieșim din chroot:# exit

Demontăm „/proc” astfel încât noile pachete instalate să fie stocate în squashfs. Demontăm și „/dev” și „/sys” ca să nu uităm mai târziu
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

Deoarece avem deja pregătit noul sistem de fișiere squash, îl creăm cu următoarea comandă
% /usr/sbin/sysresccd-custom squashfs
Dacă vrem să adăugăm un fișier la imaginea ISO, dar vrem să fie în afara squashfs, trebuie să-l punem în folderul „/mnt/custom/customcd/isoroot”

% cp -a my-files /mnt/custom/customcd/isoroot

În acest moment, ghidul oficial vă spune că puteți seta harta tastelor să pornească cu o tastatură implicită (de exemplu „es” pentru tastaturile spaniole). Dar după ce am făcut mai multe teste, scriptul pe care l-au folosit nu a funcționat pentru mine și a rezultat într-o eroare la încărcarea nucleului, așa că voi sări peste acest pas.

Momentul glorios a sosit, acum putem genera noua imagine ISO cu sistemul nostru personalizat!
% /usr/sbin/sysresccd-custom isogen my_srcd
„my_srcd” este numele pe care îl dăm volumului, îl poți numi cum vrei. Imaginea este salvată în „/mnt/custom/customcd/isofile”, și este generat și un fișier .md5 :)

Dacă lucrați pe un disc virtual, pasul crucial rămâne: extragerea imaginii ISO a sistemului virtual. Există mai multe moduri de a o face, voi explica una simplă (în VirtualBox) astfel încât să nu fie nevoie să instalați „adăugiri pentru invitați” sau ceva de genul.
Vom folosi clientul pentru a obține fișierul printr-un tunel ssh. Pentru a face acest lucru, trebuie mai întâi să configuram sistemul oaspete cu o parolă de root. Serverul ssh pornește automat, încă îl repornim pentru orice eventualitate.
% passwd
% /etc/init.d/sshd restart

Trebuie să configuram redirecționarea portului mașinii virtuale. În VirtualBox se face după cum urmează:

  1. Accesați configurația mașinii virtuale
  2. În secțiunea de rețea ați configurat deja un adaptor în NAT
  3. Căutați opțiunea de redirecționare a portului
  4. Adăugați o nouă regulă, cu singurii parametri „port gazdă” și „port oaspete”
  5. gazdă=3022 și invitat=22

Cu aceasta am reușit că portul 3022 al computerului nostru este 22 al mașinii virtuale. Pornim clientul Filezilla:

  1. În parametrul server scriem: sftp://localhost
  2. În parametrul nume de utilizator scriem: root
  3. În parametrul de parolă îl introducem pe cel pe care l-am folosit în „passwd”
  4. În parametrul port scriem: 3022
  5. Faceți clic pe „Conexiune rapidă”

Dacă totul a decurs bine, putem naviga la stânga pe computerul nostru și la dreapta în mașina virtuală. Pur și simplu accesați (în mașina virtuală) folderul „/mnt/custom/customcd/isofile” și trageți imaginea ISO în locația pe care o dorim pe computerul nostru.

!! Felicitări!! Dacă totul a decurs bine, acum aveți imaginea ISO pregătită cu un SystemRescueCD personalizat și gata de pornire de pe un CD, USB...


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Leu el a spus

    Ce ghid bun, oarecum complicat dar foarte util.
    Bună contribuție.

  2.   Leper_Ivan el a spus

    Apoi, cu puțin timp în plus și fără atâta disconfort în ochi, o voi citi cu atenție. Pare foarte util, și foarte interesant.

  3.   carlos sanchez el a spus

    Salut woqer, foarte buna postarea!

    Folosesc LFS de câțiva ani și mi-am creat propriul iso care vă poate ajuta, are tot ce aveți nevoie pentru a compila deoarece este un LFS. 😀 Sper să vă fie de folos

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso