[>a2381.html>] [<a2379.html<] [^a2.html^]
Come si fa a far convivere due o più Linux?
---------
Ecco una metodica:
Nel lilo.conf
che segue, c'è una sezione per Debian GNU/Linux, una per Red Hat e una per il Dos
In /boot
ho messo tutti i kernel coinvolti, con i rispettivi System.map e in /lib/modules
del primo disco ho copiato la directory dei moduli di Debian GNU/Linux, ovviamente compilati in Debian GNU/Linux.
/etc/lilo.conf
:
boot=/dev/hda3 map=/boot/map install=/boot/boot.b prompt timeout=50 password=********** restricted default=linux image=/boot/vmlinuz-2.2.5-15 label=linux root=/dev/hda2 read-only image=/boot/vmlinuz-2.2.12 label=nuova root=/dev/hda2 read-only image=/boot/vmlinuz.debian label=debian root=/dev/hdc5 read-only other=/dev/hda1 label=dos table=/dev/hda
[giuliano@localhost giuliano]$
ls /lib/modules
[Invio]
total 3 drwxr-xr-x 9 root root 1024 Oct 28 19:32 2.0.36/ drwxr-xr-x 6 root root 1024 Oct 31 18:34 2.2.12/ drwxr-xr-x 11 root root 1024 Oct 27 01:59 2.2.5-15/
[giuliano@localhost giuliano]$
ls /boot
[Invio]
total 3735 -rw-r--r-- 1 root root 145794 Nov 1 13:07 System.map-2.0.36 -rw-r--r-- 1 root root 149820 Oct 31 17:30 System.map-2.2.12 -rw-r--r-- 1 root root 186846 Apr 20 1999 System.map-2.2.5-15 -rw-r--r-- 1 root root 512 Oct 27 01:55 boot.0303 -rw-r--r-- 1 root root 4544 Apr 13 1999 boot.b -rw-r--r-- 1 root root 612 Apr 13 1999 chain.b drwxr-xr-x 2 root root 12288 Oct 27 01:30 lost+found/ -rw------- 1 root root 26624 Nov 1 15:31 map lrwxrwxrwx 1 root root 20 Oct 27 01:38 module-info -> module-info-2.2.5-15 -rw-r--r-- 1 root root 11773 Apr 20 1999 module-info-2.2.5-15 -rw-r--r-- 1 root root 620 Apr 13 1999 os2_d.b -rwxr-xr-x 1 root root 1469449 Apr 20 1999 vmlinux-2.2.5-15* -rw-r--r-- 1 root root 715260 Nov 1 13:08 vmlinuz-2.0.36 -rw-r--r-- 1 root root 454123 Oct 31 17:30 vmlinuz-2.2.12 -rw-r--r-- 1 root root 617431 Apr 20 1999 vmlinuz-2.2.5-15 lrwxrwxrwx 1 root root 14 Nov 1 15:20 vmlinuz.debian -> vmlinuz-2.0.36
Per i vari kernel Red Hat, nel file /etc/rc.d/init.d/syslog
ho sostituito la riga:
daemon klogd
con:
daemon klogd -k /boot/System.map-`uname -r`
per far riconoscere senza problemi ai vari kernel i loro System.map e /lib/modules/versione_che_ti_serve
Come posso trovare un programma tipo l'utilità di deframmentazione dischi di Windows?
---------
Il deframmentatore per Linux esiste ma non usatelo. Se proprio volete, è necessario utilizzare Linux in una modalità particolare per evitare che processi diversi vadano a scrivere sul filesystem mentre lo si deframmenta. Inoltre c'è lo svantaggio che non vi offre alcuna garanzia sul suo corretto funzionamento (il numero di versione parla chiaro). Normalmente la deframmentazione di un filesystem ext2 si stabilizza fra il 4 e 5 per cento, a meno che non ci siano una grande quantità di installazioni.
Per chi non lo sapesse, ext2 è più ottimizzato rispetto alla FAT perché quando si salvano le informazioni, esse si vanno a ricercare zone del disco per spezzare al minimo i file.
Fino ad ora, il solo mezzo che ho usato per deframmentare un disco è:
Creare un nastro di backup, ricreare il file system, ripristinare il nastro.
È un po' macchinoso ma se proprio bisogna deframmentare è il metodo più sicuro.
Che differenze e relazioni ci sono tra i file: /etc/bashrc, /etc/profile, home/.bashrc, home/.bash_profile? , , ,
---------
Il primo contiene gli alias e le funzioni per il sistema mentre il terzo quelle valide per l'utente.
Il secondo contiene le variabili d'ambiente e i programmi di avvio del sistema mentre il quarto quelli dell'utente.
I file /etc/profile
e ~/.bash_profile
contengono le configurazioni per una shell di login, mentre gli altri due per quelle non di login. In pratica i primi file vengono letti ed eseguiti solo per la prima shell che si apre, e non per le successive le quali eseguono ogni volta i bashrc (nota: ricordarsi che ogni volta che viene eseguito uno script, viene aperta una shell non interattiva)
Ho dichiarato alcuni alias nel file /etc/bashrc
ma posso usarli solo se sono root mentre se accedo da utente essi non vengono abilitati. Il problema è relativo al file /etc/bashrc
o ai permessi dell'utente?
---------
Inserisci nel file .bashrc
dell'utente:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
Quando si modifica un file rc (es .bashrc o .kshrc) nella propria directory, come si fa a rendere attive le modifiche senza riavviare la macchina?
---------
basta fare:
#
source .bashrc
[Invio]
#
source .kshrc
[Invio]
oppure, al massimo, logout e poi di nuovo login.
Mi è capitato in situazioni di emergenza di apportare modifiche al filesystem ma al riavvio del sistema, è come se non avessi mai effettuato nessun cambiamento. Perché?
---------
Questo succede perché non si è scaricata la memoria cache, quindi le modifiche non sono state applicate. Per fare scrivere effettivamente quello che si è fatto occorre digitare:
#
sync
[Invio]
In ogni caso è bene riavviare dando:
#
shutdown -r now
[Invio]
e non premendo il pulsante di reset. Anche in situazioni di emergenza, se si possono fare modifiche al filesystem, si può anche avviare lo spegnimento.
Devo attivare un programma scritto da me in fase di avvio di una macchina Debian GNU/Linux 2.0. Vi chiedo quale possa essere un modo intelligente per farlo. Cioè se devo lanciare uno script, oppure inserire il mio programma in uno script che viene eseguito al boot.
---------
Crea uno script che richiami il tuo programma;
metti il tuo script in /etc/init.d;
crea un link (ln -s) a questo script nella directory /etc/rcX.d dove X è il runlevel. (Può anche essere collegato in più di una directory).
In Debian GNU/Linux non trovo nessun'applicazione in grado di farmi configurare i servizi che devono essere lanciati all'avvio. Come si procede?
---------
Il comando update-rc.d fa al caso tuo. In ogni caso puoi entrare nelle directory /etc/rcx.d/
, dove rcx=rcS,rc0,rc1,...,rc6 e creare nella directory /etc/init.d/
i link agli script con un nome opportuno (leggiti /usr/doc/sysvinit/README.runlevels.gz
).
Durante la procedura di installazione della Red Hat 6.0, ho scelto i servizi che desideravo si attivassero automaticamente ad ogni avvio del sistema. Ora però ho l'esigenza di disattivarne alcuni. Il punto è come fare? Devo riconfigurare il kernel per escluderli oppure devo modificare un particolare file di configurazione?
---------
All'interno di /etc/rc.d/rcX.d/
(con x = il tuo runlevel abituale,normalmente 3) sono presenti dei collegamenti (link) simbolici agli script dei servizi presenti all'interno della directory /etc/rc.d/init.d/
.
Se dai il comando:
#
ls -l
[Invio]
vedrai i link che puntano ai suddetti file. Questi link sono fatti così:
S = start cioè partenza K = kill cioè fine;
xx = numero, ordine di partenza del servizio
Se vuoi eliminare un servizio, basta che elimini il link Sxxnome_servizio.
Se poi ti riservirà basta che rifai il link allo script in /etc/rc.d/init.d
Se modifico alcuni file di configurazione di alcuni demoni, come posso rendere effettive tali modifiche senza dover riavviare la macchina?
---------
Devi far ripartire i demoni appropriati per fargli rileggere i file che hai modificato.
Se individui il pid del comando attraverso ps:
#
ps -aux | grep nome comando
[Invio]
puoi utilizzare il comando:
#
kill -HUP numero_di_pid
[Invio]
per arrestare il demone del processo e per farlo ripartire, facendogli in questo modo leggere il file di configurazione modificato.
Per riavviare, di solito si può anche mandare il sengale 1 al processo con:
#
kill -1 pid-del-processo
[Invio]
In Apache ad esempio basta uccidere il primo dei processi attivi (definito root) per far ripartire con le nuove impostazioni anche i processi figli.
Un modo ancora più pulito è andare nella directory /etc/init.d
o /etc/rc.d/init.d
e fare ripartire il demone usando lo script di inizializzazione, ad esempio
#
./apache restart
[Invio]
Vorrei chiedere come si cambia il nome della mia macchina (da localhost a pinguino per esempio). Ci avevo già provato qualche tempo fa, col pessimo risultato che sendmail presentava lunghi rallentamenti all'avvio di Linux
---------
cambia nel file /etc/hosts
la riga:
127.0.0.1 localhost localhost.localdomain
in (ad esempio):
127.0.0.1 pinguino pinguino.my.home
aggiorna di conseguenza la voce 'HOSTNAME=' del file /etc/sysconfig/network
comando:
#
hostname pinguino
[Invio]
Come imposto l'orologio di sistema?
---------
Con:
#
hwclock
[Invio]
(timeconfig in una distribuzione Red Hat)
Ci sono delle utility scaricabili da Internet per aggiornare l'orologio?
---------
se uccidi xntpd e dai il comando:
#
ntpdate www.clock.org
[Invio]
ti trovi l'orologio di sistema aggiornato tramite un server atomico.
Esiste un sistema per cambio automatico dell'ora legale su Linux?
---------
Funziona automaticamente se hai impostato l'orario del CMOS a GMT.
Vorrei che all'inizio, quando parte il sistema, il tasto numlock sia abilitato. Che modifiche devo effettuare?
---------
Se da BIOS non è possibile, nella Red Hat modifica
/etc/rc.d/rc.sysinit
e inserisci queste linee:
for t in 1 2 3 4 5 6 do /usr/bin/setleds -D +num < /dev/tty$t > /dev/null done
Nella Debian GNU/Linux crea in /etc/rc.boot
uno script con le stesse righe, e nella slackware mettile nel file rc.keymap
Si può cancellare brutalmente il contenuto di /tmp?
---------
Per evitare interferenze con eventuali programmi che stanno usando file dislocati in quella directory, nel caso che tu non sappia se e quali file sono, può essere una buona pratica farlo ad ogni boot della macchina: puoi inserire in uno dei file di avvio (di quelli dedicati a operazioni varie) una riga del genere:
cd /tmp; rm -rf *
Alcune distribuzioni lo fanno di regola.
Se invece sei certo che quanto vuoi cancellare di /tmp
in una dato momento non sia essenziale per l'integrità del sistema, allora cancellalo.
Se lo vuoi fare per bene tenendo in considerazione tutto (il fatto che uno ci possa aver montato un fs su /tmp
, ecc.) fai così: (tratto da /etc/init.d/bootmisc.sh
[Debian GNU/Linux 2.1])
( cd /tmp && \ find . -xdev \ ! -name . \ ! \( -name lost+found -uid 0 \) \ ! \( -name quota.user -uid 0 \) \ ! \( -name quota.group -uid 0 \) \ -depth -exec rm -rf -- {} \; ) rm -f /tmp/.X*-lock
Come vedo quanto spazio disponibile ho sul disco rigido?
---------
Utilizza:
#
df
[Invio]
che ti dà la percentuale di occupazione di ciascun filesystem montato, con i blocchi liberi. Con l'opzione -h ti dà lo spazio in Mb.
Come visualizzo le variabili d'ambiente?
---------
Occorre digitare:
#
printenv
[Invio]
Sto installando un compilatore e il programma di configurazione mi chiede di impostare determinate variabli di ambiente con il comando setenv. Ma la shell mi risponde: command not found.
---------
Il comando setenv fa parte della csh, se non usi questa shell ma usi la bash, utilizza export:
#
$ export VARIABILE=valore
[Invio]
Qualche esempio:
#
export HOSTNAME="`cat /etc/HOSTNAME`"
[Invio]
#
export MOZILLA_HOME=/usr/lib/netscape
[Invio]
#
export MAILDIR=/var/spool/mail
[Invio]
#
export TERM=linux
[Invio]
#
export PS1='\n\u@\h:[`pwd`] [\t] --> \!\n* '
[Invio]
Come faccio a visualizzare che librerie usa un determinato programma?
#
ldd programma
[Invio]
Cosa faccio se un programma vuole le librerie libjpeg 61 (KDE-1.2) e gli altri della mia distribuzione vogliono le 62?
---------
Se ho ben capito il programma vuole una versione più vecchia. Accontentalo.
Vai in /usr/lib
e fai un collegamento simbolico con il comando:
#
ln -s libjpeg.so.62 libjpeg.so.61
[Invio]
così quando cercherà la libreria vecchia troverà quella nuova e sarà lo stesso. In genere questo trucchetto funziona...
C'è un modo per non scrivere sempre un comando molto lungo?
---------
Si crea un alias. Es.:
#
alias ls='ls -la --color'
[Invio]
basterà scrivere ls per avere un elenco dettagliato di tutti i file (anche quelli nascosti) e l'elenco sarà colorato. Gli alias vanno inseriti in ~/.bash_profile
se sono specifici di un utente, o in /etc/profile
se sono per tutto il sistema.
È da tenere presente anche la possibilità di completare il nome dei comandi e dei file con il tasto [Tab].
Mi chiedevo se anche con Linux potevo fare arrestare il sistema con il metodo di ibernazione. Con Windows 98 e 2000 ci riesco benissimo ma su Linux non ho mai visto tale prospettiva di spegnimento.
---------
Installa l'APM nel kernel e poi con:
#
apm --suspend
[Invio]
mandi in sospensione la macchina.
LDR --- Copyright © 1999-2000 Gaetano Paolone -- bigpaul @ pluto.linux.it