Personalizzare un RepairDisk: The Road to LFS

Molte sono le volte che abbiamo dovuto riparare un sistema da un LiveCD, e ad un certo punto del processo ci siamo trovati privi di uno strumento e quando vogliamo installarlo, il sistema operativo LiveCD ci dice che ha esaurito lo spazio e aglio e acqua (per affanculo e tenere duro).

Questo problema mi è veramente venuto in mente perché sono entrato in LFS (Linux From Scratch), che è una guida (NON una distribuzione stessa) per installare un Linux personalizzato. Il punto di questa "distribuzione" è che da qualsiasi LiveCD, e con gli strumenti appropriati, scarichi il codice del kernel e altri strumenti per costruire il tuo sistema (compilando tutto a poco a poco). Se vuoi seguire la guida passo passo, hai bisogno di diversi strumenti e compilatori, e non c'è un liveCD con tutto, quindi devi personalizzarne uno.

Facciamolo. Useremo il file SystemRescueCD, che offre un ambiente basato su Gentoo abbastanza completo.

Nel nostro esempio (installando un Linux da zero seguendo il libro Linux From Scratch) ci mancano i programmi Bison e Makeinfo, quindi creeremo una nuova immagine ISO di questo disco ma con i nuovi strumenti.

AVVISO: Gentoo è una distribuzione che si compila on-site tutti i pacchetti devono essere installati, quindi il processo di aggiunta e aggiornamento dei programmi è lento.

Sebbene venga utilizzato un gestore di pacchetti (come apt-get di Debian), invece di scaricare i pacchetti, il codice sorgente viene scaricato per compilarlo sulla macchina.

Per il processo avrai bisogno di una partizione Linux (ext4 per esempio) con almeno 1.5G libero, sebbene se ne consiglia di più. Se non vuoi armeggiare con le tue partizioni, usa una macchina virtuale. Naturalmente, è consigliabile che la partizione abbia diversi gigabyte poiché durante i processi di compilazione, installazione, sincronizzazione dei repository ... è necessario spazio temporaneo; Consiglio di utilizzare una partizione di swap 8G + 2G (con 4G + 1G dovrebbe essere sufficiente, ma così ci assicuriamo, se manca RAM / swap il processo sarà ancora più lento).

Supponendo che tu abbia creato una macchina virtuale con un disco 10G, lo avvii dicendogli di avviarsi dal SystemRescueCd appena scaricato. Una volta dentro partiamo con fdisk (se hai avviato la sessione grafica puoi farlo con gparted, ma lo scopo di questo post è insegnare l'uso degli strumenti di base). fdisk è un comando interattivo:

  • con l'opzione "n" creiamo una nuova partizione
  • con l'opzione "t" cambiamo il tipo di filesystem che andrà nella partizione
  • con l'opzione «w» scriviamo sul disco
  • con l'opzione «q» usciamo senza scrivere le modifiche

Quando usiamo l'opzione "n" ci darà diverse opzioni, useremo sempre il default, tranne quando impostiamo l'ultimo settore nella prima partizione, che dovremo scrivere "+ 8G", indicando così al programma che vogliamo che la nostra partizione occupi 8 GB.

Quando creiamo la seconda partizione useremo le opzioni predefinite poiché il resto dello spazio sarà occupato. Inoltre, per dire a fdisk che la seconda partizione sarà di tipo swap, usa l'opzione "t" (il codice esadecimale per lo swap è 82). L'interfaccia è simile a questa:

Comando% fdisk / dev / sda (m per aiuto):

Una volta fatto tutto, usiamo l'opzione "w" per scrivere le modifiche su disco ed uscire.
Ora è il momento di formattare le partizioni. Inizieremo con lo scambio per utilizzarlo immediatamente:

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

Abbiamo già formattato la partizione di swap e con il comando swapon abbiamo iniziato a usarlo. Ora formattiamo la prima partizione in ext4:

% mkfs.ext4 /dev/sda1

Possiamo iniziare a seguire i passaggi descritti in http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, qui li traduco / descrivo con la strana annotazione.

Montiamo la partizione al suo posto (il LiveCD viene già preparato con una cartella / mnt / custom dove deve essere montata la partizione in cui faremo le opportune modifiche). Anche dopo il montaggio dovremo estrarre i file dal disco, questo si ottiene con uno script già preparato. Lo script impiegherà un po 'di tempo (poiché scarica centinaia di megabyte di memoria), se vuoi controllare che funzioni effettivamente, vai su un altro terminale (con Alt + F4 per esempio) e fai un df -h.

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

Se ora navighi all'interno di / mnt / custom / customcd, vedrai diverse cartelle. In / mnt / custom / customcd / files viene trovato il filesystem di root. Ora è il momento di eseguire il chroot del futuro nuovo sistema. Qui metto i comandi, per maggiori informazioni su chroot puoi vedere questo tutorial l'ho scritto un mese fa

% 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)

Siamo già nel sistema chroot, che sarà il sistema LiveCD una volta avviato. Installeremo i pacchetti mancanti (bison e texinfo) usando il comando emergere (chi gestisce il pacco di facchinaggio da gentoo).

Per prima cosa sincronizziamo il portage tree (l'equivalente di apt-get update)
# emerge-webrsync NOTA: usiamo questo comando al posto di "emerge –sync" perché è più veloce, poiché scarica un pacchetto tar dal web. Questo passaggio è necessario, perché se non esegui l'emergenza, emergerà automaticamente –sync, rallentandolo.

Dopo aver sincronizzato il portage tree possiamo procedere all'installazione dei pacchetti:

# emerge sys-devel / bison # emerge sys-devel / texinfo
bisonte impiegherà un po 'per compilare, sii paziente

Lasciamo chroot:# exit

Smontiamo "/ proc" in modo che i nuovi pacchetti installati siano archiviati in squashfs. Smontiamo anche "/ dev" e "/ sys" in modo da non dimenticarli in seguito
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

Dato che abbiamo già preparato il nuovo file system squash, lo creiamo con il seguente comando
% /usr/sbin/sysresccd-custom squashfs
Se vogliamo aggiungere un file nell'immagine ISO ma vogliamo che sia fuori da squashfs, dobbiamo metterlo nella cartella «/ mnt / custom / customcd / isoroot»

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

A questo punto, la guida ufficiale ti dice che puoi impostare la mappa dei tasti per l'avvio con una tastiera predefinita (ad esempio "es" per le tastiere spagnole). Ma facendo diversi test, lo script che usano per me non ha funzionato e ha generato un errore durante il caricamento del kernel, quindi salterò questo passaggio.

Il momento glorioso è arrivato, ora possiamo generare la nuova immagine ISO con il nostro sistema personalizzato!
% /usr/sbin/sysresccd-custom isogen my_srcd
"My_srcd" è il nome che diamo al volume, puoi chiamarlo come vuoi. L'immagine viene salvata in «/ mnt / custom / customcd / isofile», inoltre viene generato anche un file .md5 🙂

Se stai lavorando su un disco virtuale, resta il passaggio cruciale: estrai l'immagine ISO del sistema virtuale. Ci sono diversi modi per farlo, ne spiegherò uno semplice (in VirtualBox) per evitare di dover installare "guest additions" o qualcosa del genere.
Useremo il client per ottenere il file tramite un tunnel ssh. Per fare ciò, dobbiamo prima configurare il sistema guest con una password di root. Il server ssh si avvia automaticamente, lo riavviamo comunque per ogni evenienza.
% passwd
% /etc/init.d/sshd restart

Dobbiamo configurare il port forwarding della macchina virtuale. In VirtualBox è fatto come segue:

  1. Accedi alla configurazione della macchina virtuale
  2. Nella sezione di rete hai già configurato un adattatore in NAT
  3. Cerca l'opzione di port forwarding
  4. Aggiungi una nuova regola, con gli unici parametri "porta host" e "porta ospite"
  5. host = 3022 e guest = 22

Con questo abbiamo ottenuto che la porta 3022 del nostro PC sia la 22 della macchina virtuale. Avviamo il client Filezilla:

  1. Nel parametro server scriviamo: sftp: // localhost
  2. Nel parametro username scriviamo: root
  3. Nel parametro password mettiamo quello che usiamo in «passwd»
  4. Nel parametro port scriviamo: 3022
  5. Fare clic su «Connessione rapida»

Se tutto è andato bene, a sinistra possiamo navigare sul nostro PC ea destra nella macchina virtuale. Basta accedere (nella macchina virtuale) alla cartella «/ mnt / custom / customcd / isofile» e trascinare l'immagine ISO nella posizione che vogliamo sul nostro PC.

!! Congratulazioni !! Se tutto è andato bene, hai la tua immagine ISO pronta con un SystemRescueCD personalizzato e pronta per l'avvio da un CD, USB ...


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Leone suddetto

    Che buona guida, un po 'complicata ma molto utile.
    Buon contributo.

  2.   Leper_Ivan suddetto

    Poi con un po 'più di tempo, e senza tanto fastidio agli occhi, lo leggerò a fondo. Sembra molto utile e interessante.

  3.   Carlos sanchez suddetto

    Ciao woqer, ottimo post!

    Sono stato con LFS da alcuni anni e ho creato il mio iso che può servirti, ha tutto il necessario per compilare poiché è un LFS. 😀 Spero che ti sia utile

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