Chiarimenti chroot

  • 4 Risposte
  • 4726 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline fabiobassa

  • Esperto
  • ****
  • 674
  • Sesso: Maschio
Chiarimenti chroot
« il: 03 Maggio 2019, 20:30 »
Ho effettuato approfondito studio su i device si7105 che montano una distro STLINUX a bordo.
Mi aiutate a capire una cosa :

Su questo sistema embedded ho un kernel e una root .
Nello user space ho un programmino che chiameremo per comodità " frullatore"
Dunque /usr/sbin/frullatore lo esegue !

Supponiamo che riesca a montare una altra root ed effettuare un chroot.

Se nella NUOVA root ( chroot)  il programmino frullatore non ci sta ..... Non verrà più eseguito nemmeno l originale, giusto ????

Esiste un metodo per eseguire sia quelli della root originaria sia quelli della CHROOTATA ???

Insomma come se fosse un overlay ??

Offline DoRaeMoN

  • Nuovo Iscritto
  • *
  • 38
Re:Chiarimenti chroot
« Risposta #1 il: 04 Maggio 2019, 22:51 »
non contemporaneamente che io sappia, il chroot nasce per creare una sorta di "jail" da cui non puoi accedere al sistema sottostante. posso chiederti quale è l'obiettivo? magari si può fare diversamente

Offline fabiobassa

  • Esperto
  • ****
  • 674
  • Sesso: Maschio
Re:Chiarimenti chroot
« Risposta #2 il: 05 Maggio 2019, 15:26 »
@DoRaeMoN

ciao, buona domenica, grazie per la risposta.
Cerco di spiegarmi : su alcuni di questi linux box che sto analizzando ( tra cui la vodafone tvbox) è montato un processore si7105 con sistema operativo STLinux.

Ho trovato l'ambiente di compilazione ed effettivamente compila ed esegue i binari perfettamente

Questi binari sono su una chiavetta usb esterna in ext3-fs che da ssh posso montare e smontare  a piacimento. Quando la monto e faccio il chroot mi esegue tutto quello che sta sulla chiavetta.

Ma non vorrei perdere le funzioni sulla root embedded .
Per ovviare finora ho creato dei link simbolici dalla /usr/sbin interna alla /mounted/usr/sbin e cosi anche per tutte le librerie, configurazioni etc etc  etc etc;
in questo modo ottengo gli originali programmi e anche i nuovi, ma è una sfacchinata, soprattutto nel caso che le librerie  dei nuovi programmi siano tante  . Per etc var e usr di solito i nuovi programmi creano cartelle apposite, ma le shared lib sono tutte insieme in lib  ed è un casotto

Non ci sta una scorciatoia per cui montando la ext3-fs esterna faccia una unione, un merge una fusione nucleare   :rotfl:  in automatico ?



Offline DoRaeMoN

  • Nuovo Iscritto
  • *
  • 38
Re:Chiarimenti chroot
« Risposta #3 il: 05 Maggio 2019, 19:35 »
mhh, probabilmente sarò scemo io, ma perchè hai bisogno di un chroot per avviare alcuni programmi? stai effettivamente creando un intero nuovo rootfs con devfs, procfs e balle varie diversi dagli originali? se provi ad eseguire gli applicativi senza chroot, quale è il problema? se sono solo le librerie puoi tranquillamente usare LD_LIBRARY_PATH=... oppure credo tu possa anche usare ldconfig per aggiungere direttamente il nuovo percorso delle librerie. Probabilmente sto restringendo il problema io, ma se possibile ti chiedo di argomentare meglio perchè non puoi farlo senza chroot. Potresti usare uno script per avere i symlink in automatico, ma è comunque una soluzione balorda (e almeno una volta va fatto tutto a manina).

EDIT: domanda bonus, ma non stai lavorando anche sulla vodafone tv solution (quella bianca), vero? da quel catorcio non sono mai riuscito ad estrarre il firmware.
« Ultima modifica: 05 Maggio 2019, 19:37 da DoRaeMoN »

Offline fabiobassa

  • Esperto
  • ****
  • 674
  • Sesso: Maschio
Re:Chiarimenti chroot
« Risposta #4 il: 05 Maggio 2019, 21:53 »
Purtroppo non sono " una cima" e forse uso termini non esatti ma provo a spiegarmi meglio:
1) Il device non lo posso e devo " sporcare"  perché non ci sta più spazio:  128 mega totali, sono iberi solo 27 e alcuni applicativi nuovi pesano anche più di 50.

2) no non E' NECESSARIO il chroot , ho solo detto che mi sono accertato che tutto quello che sta sulla chiavetta esterna sia effettivamente fatto da binari compatibili con l' architettura in questione ed é effettivamente così

3) se voglio avviare un programma che sta sulla chiavetta USB esterna ovviamente ho due possibilità: o mettere direttamente il percorso  completo tipo /ram/media/USB/usr/sbin/applicazione o fare un simlink da /usr/sbin al percorso di cui sopra.

E li viene il problema perché poi va trovando le librerie,  l etc, il var del programma che sono sulla USB.... ma ovviamente le cerca sul dispositivo e non li trova.

Per questo mi serviva un qualcosa, se esiste, che" unisse" in automatico tutte queste cose ad esempio la etc della USB con la etc del dispositivo SENZA sovrascrivere alcunché, solo unendo.

Che processore usa questa TV box che dici tu ?

P.s. ldconfig non ci sta nella root originaria e comunque unirebbe le lib e non le altre cose di cui necessitano i binari per funzionare
« Ultima modifica: 05 Maggio 2019, 21:57 da fabiobassa »