Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Bash personalizzata

  1. #1
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371

    Bash personalizzata

    Avrei bisogno di crearmi una bash che includesse all'avvio anche i comandi mount umount insmod modprobe e altri...

    So di certo che è possibile farlo, ma come?

    Ad esempio io uso slackware 10.0
    E la standard bash non include questi comandi.
    Come posso reinserirli in modo tale da non doverli avere nelle directory bin o sbin?

    La domanda può sembrare sciocca, ma purtroppo non lo è.
    Devo fare in modo che un sistema operativo si avii dotato già di abbastanza comandi che non possono essere cercati in altre directory e che quindi non necessitino anche di includere delle librerie...

    Spero che qualcuno mi possa aiutare...

    CIAO!
    L'incubo peggiore è non poter più sognare...

  2. #2
    mi sa che l'unico modo è procurarsi i sorgenti di bash e i sorgenti dei comandi da integrare, mescolare il tutto e servire fresco
    Sotto la panza la mazza avanza.

  3. #3
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    io non ho capito niente, non potresti essere più preciso o fare un esempio?
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  4. #4

    Re: Bash personalizzata

    Originariamente inviato da Andre00
    Avrei bisogno di crearmi una bash che includesse all'avvio anche i comandi mount umount insmod modprobe e altri... [...]
    Cambia shell e usa busybox (o analoghe). L'alternativa, come dice Caleb, e` metter mano ai sorgenti.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  5. #5


    /etc/bash.bashrc ?
    man alias


  6. #6
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371
    Precisazioni...
    penso che metterò mano ai sorgenti, anche se dovrò vedermela con il "mettere in tutto insieme" suggeritomi da qualcuno
    Mescolare i sorgenti non credo che sia cosa così immediata
    Comunque ci proverò
    Il punto e che sto realizzando una distro live basata su slackware (una sorta di knoppix ) che è già tutt'ora funzionante e al più presto spero di poterla pubblicare..
    questioni di tempo...
    Il risultato sarà una slackware vera e propria tutta in memoria con samba php ssh ftp telnet syslog mysql tutto funzionante...

    Alura veniamo al punto.. la mia distro live funziona egregiamente e l'ho già anche testa sul campo..
    ma questa versione occupa circa 64 - 75 MB senza X
    salendo a 230 Mb con X avviato senza hotplug
    per arrivare a 280 con l'hotplug.Secondo me troppo.
    Il punto è che ho bisogno di liberare almeno 30-40 Mb.
    Uno dei modi per iniziare a liberare memoria è per l'appunto evitare di avere in memoria la lib
    Se non ho una shell con comandi integrati, all'avvio ho bisogno di una initrd contenente i comandi bin e sbin e in più la directory lib contentente le librerie necessarie ai comandi.Ora bin e sbin posso anche rinominarle per un attimo creare un nuovo link es
    ln -s /cdrom/bin /bin
    e rimuovere la vecchia bin così dalla memoria
    Ma la directory lib è un problema infatti i comandi della bin necessitano di alcune librerie
    Supponiamo di avere bin sbin e lib in memoria (bin sbin e lib minimali) e di avere delle altre bin sbin e lib sul cd, ma complete.Ora devo fare in modo di linkarle al cd.
    allora rimuovo la bin la sbin senza rimuovere ln
    e linko come sopra la bin e la sbin del cd in memoria
    ma la lib non posso rimuoverla.Se la cancello non mi funziona più nessun comando che non sia integrato alla shell

    E' un discorso lunghissimo ecco perchè sono stato un po vago tuttavvia analizzando i file di avvio della knoppix ho visto che questa parte con una shell integrata.Che non può essere la busybox perchè le versioni delle librerie integrate nella busybox non sono compatibili in alcuni casi ed inoltre busybox necessita di partire come init cosa che io non posso fare...

    Insomma grazie per il momento... proverò come suggerito a mescolare un po' i sorgenti le cose....

    CIAO e grazie!!
    L'incubo peggiore è non poter più sognare...

  7. #7
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    non basta solo farsi un file bashrc personalizzato?

  8. #8
    Originariamente inviato da Andre00
    Se la cancello non mi funziona più nessun comando che non sia integrato alla shell
    Neanche la shell a dire il vero. Quella caricata in memoria continua a funzionare, ogni nuova istanza no pero`.

    Che non può essere la busybox perchè le versioni delle librerie integrate nella busybox non sono compatibili in alcuni casi ed inoltre busybox necessita di partire come init cosa che io non posso fare...
    ...Non sono compatibili con cosa?
    Inoltre non mi risulta che busybox _debba_ funzionare come init:
    codice:
    $ /bin/busybox ls | /bin/busybox wc -l
    Using fallback suid method
    Using fallback suid method
         41
    $ ls | wc -l
    41
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  9. #9
    Utente di HTML.it L'avatar di Andre00
    Registrato dal
    Mar 2003
    Messaggi
    371
    io ho provato a creare una initrd che usa busybox
    ma se non passo al kernel il parametro
    init=/busybox
    non parte niente

    comunque può benissimo essere che si riesca a bypassare il problema
    usare busybox sarebbe il massimo,,,
    non occupa praticamente niente in memoria e ha tutto il necessario...

    Provo ad indagare a fondo...

    GRAZIE!!

    PS si hai ragione cancellando le librerie non funziona neanche più la bash stessa!

    CIAO
    L'incubo peggiore è non poter più sognare...

  10. #10
    Originariamente inviato da Andre00
    io ho provato a creare una initrd che usa busybox
    ma se non passo al kernel il parametro
    init=/busybox
    non parte niente
    si, anche invocando semplicemente
    codice:
    busybox
    si ha un messaggio di help e basta. Occorre specificare il primo parametro o invocare l'eseguibile tramite un link simbolico.

    Potresti popolare /bin con
    i vari symlink alle funzionalita` offerte da busybox
    (es:
    codice:
    /bin/ls -> /bin/busybox
    /bin/sh -> /bin/busybox
    ...
    )
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.