Appunti Debian
Transcript
Appunti Debian
NOTEDEBIAN by moly82 e p.i. D. Cosciani 2006 (alcune utili aggiunte e correzioni) > Installare Debian tramite miniiso da 180mb e rete funzionante (+ XFree e WM a vostra scelta): http://blucerchiato.altervista.org/debian_netinstall_howto.htm > Eccovi alcuni comandi assolutamente fondamentali per poter utilizzare Linux: dd if=nomefile.img of=/dev/fd0 bs=1440k [scrive un'immagine di floppy ] alien i nomepacchetto.rpm [convertire RPM in DEB] # cd /dev [spostiamoci in /dev] # ln s hdx dvd [per creare un link per /dev/dvd] > Come creare un floppy di boot GRUB? GRUB (GRand Unified Bootloader) è il boot manager più usato nelle ultime versioni di Linux e più performante, in grado di bootare una infinità di sistemi operativi (GNU project ). In questo documento spiegherò come creare un dischetto di boot in grado di bootare un sistema già installato o di ottenere una shell di comando GRUB. È necessario loggarsi come root. 1. Formattare un floppy con il filesystem ext2: mke2fs /dev/fd0 2. Montare il floppy e copiare i files necessari a GRUB per il boot: cd /media/floppy mkdirhier boot/grub cd /boot/grub cp stage1 stage2 /media/floppy/boot/grub Se vuoi bootare il sistema operativo già installato sull macchina, copia i files /boot/grub/menu.lst, /boot/grub/device.map e /boot/message nelle rispettive directory sul floppy. 3. Entrare nella shell di comando GRUB digitando grub. Apparirà ora il prompt di comando GRUB: grub > dal quale inserire i seguenti comandi: device (fd0) /dev/fd0 root (fd0) setup (fd0) quit 4. Fatto! Il dischetto di boot è stato creato! Se vuoi essere paranoico, puoi salvarti una copia del master boot record (MBR) della tua macchina sul dischetto. Poniamo per esempio che il master boot record (MBR) si trovi sul device hda: dd if=/dev/hda of=/media/floppy/boot.mbr bs=512 count=1 per i server ProLiant invece digitare: if=/dev/cciss/c0d0 of=/media/floppy/boot.mbr bs=512 count=1 Per maggiori informazioni, cliccare sul link di inizio pagina o digitare info:grub in una shell di comando. > Eccovi alcuni comandi assolutamente fondamentali per poter utilizzare Debian: alien i nomepacchetto.rpm [convertire RPM in DEB] aptget install pacchetto [installa il pacchetto nella versione più aggiornata disponibile nelle fonti APT contenute nel file /etc/apt/sources.list] aptget remove pacchetto [rimuove il pacchetto indicato] aptget remove purge pacchetto [rimuove il pacchetto in maniera "drastica", compresi files/directory di configurazione etc] aptcache search pacchetto [cerca nelle fonti APT tutti i pacchetti con nome e/o descrizione contenente un determinato nome] aptcache show pacchetto [fornisce info sul determinato pacchetto: versione, dimensione, data, breve descrizione etc] aptget update [ricerca nelle fonti APT pacchetti disponibili più recenti di quelli installati e scarica la lista SENZA installare alcun pacchetto] aptget distupgrade [aggiorna tutti i pacchetti (di sistema e non) installati nel sistema (aggiorna TUTTO il sistema)] aptget upgrade pacchetto [aggiorna un determinato pacchetto con l'ultima disponibile nelle fonti APT] aptget clean [ripulisce /var/cache/apt di tutti i pacchetti .deb scaricati (lanciare solo nel caso siano stati tutti installati correttamente)] > Eccovi ora alcuni comandi molto utili da usare nel caso si generino dei conflitti tra pacchetti installati: [In questo caso solitamente l'installazione di tutti i restanti pacchetti non prosegue (anche quelli esenti da conflitti): questa non è ovviamente una bella cosa in caso di aggiornamenti "corposi" e per risolvere potete provare a lanciare questi comandi in successione e alternativamente (da usare con cautela)] aptget f install aptget f upgrade dpkg configure a dpkg purge forceall pacchetto [per installare un determinato pacchetto] > Ecco come fare per vedere tutti i pacchetti installati nel vostro sistema: [Il primo comando fornisce una lista completa dei pacchetti installati, il secondo limita la ricerca a un determinato pacchetto] dpkg getselections dpkg getselections |grep pacchetto ...in alternativa potete usare questi due comandi che forniscono un maggior numero di info relative ai pacchetti installati... dpkg l dpkg l |grep pacchetto dpkg i nomepachetto.deb [da utilizzare solo nel caso si voglia forzare la rimozione un determinato pacchetto] > Far partire programmi/comandi all'avvio del sistema (come creare uno script d'avvio): Eseguire da shell, come root: cd /etc/init.d touch startup chmod +x startup updaterc.d startup start 99 2 . cd /etc/init.d nano /etc/init.d/startup ...ora aggiungere dentro al file "startup" per esempio i comandi scritti qua sotto relativi al firewall, altrimenti gli altri eventuali comandi, programmi, scripts etc etc che volete partano all'avvio. Non dimenticate il punto in fondo alla terz'ultima riga senò lo script non verrà lanciato correttamente all'avvio. es: if up eth0 > Firewall in pochissimo tempo: Vi basta aggiungere al vostro script di avvio questi comandi: iptables A INPUT i eth0 m state state NEW,INVALID j DROP iptables A FORWARD i eth0 m state state NEW,INVALID j DROP e eventualmente anche: iptables I INPUT p tcp dport NUM_PORTA m state state NEW j ACCEPT iptables I INPUT p udp dport NUM_PORTA m state state NEW j ACCEPT I primi 2 comandi chiudono TUTTE le porte in ingresso. Il terzo e il quarto sono 2 esempi da usare solo nel caso voleste aprire alcune determinate porte (nell'esempio una TCP e l'altra UDP), per esempio nel caso voleste aprire le porte usate dal vostro programma p2p per poter far scaricare altri da voi. In aggiunta, ricordatevi anche di questi 2 comandi che possono tornarvi molto utili in alcune circostanze e possono venire lanciati da shell: iptables L iptables F Il primo vi mostra tutte le regole attualmente impostate per iptables. Il secondo azzera tutte le regole, in pratica abbassa il firewall e vi priva della sua protezione, almeno fino al riavvio successivo o fino a che non rilancerete il vostro script. > Rendere Debian molto simile a uno distro a riconoscimento HW automatico Ecco come levarsi ogni problema relativo a che moduli caricare per far funzionare questa o quella determinata periferica, e scordarsi definitivamente cosa vuol dire ricompilare il kernel ogni volta che si dimentica un modulo. aptget install kernelimage2.6k7 hotplug moduleinittools Tutto qua. Con questo comando installate l'immagine di un kernel precompilato Debian pronto all'uso, nella sua ultima versione disponibile 2.6.x e ottimizzato per AMD (nell'esempio). Una volta apt gettato non serve altro che modificare lilo o grub per avviarlo (per chi usa grub basta lanciare "updategrub" e tutto verrà aggiunto in automatico, per lilo non saprei credo comunque che esista un comando del tutto analogo). Tale kernel sarà messo in automatico dentro /boot insieme alle altre immagini di kernel già installati, insieme a un file imagine initrd (di cui i precompilati fanno largo uso). Controllate che la riga in questione sia stata aggiunta in automatico nel file config del vostro bootloader, altrimenti il nuovo kernel non si avvierà correttamente. Hotplug è un demone che si aggiunge in automatico all'avvio del sistema, e si occuperà ad ogni avvio di trovare e caricare tutti i moduli necessari alle vostre periferiche per funzionare. Funzionerà anche a distro avviata, quindi scordatevi di attaccare una penna usb e perdere tempo a capire che moduli caricare, tutto verrà sistemato in automatico da hotplug non appena una nuova periferica viene collegata al sistema. Il pacchetto moduleinittools è indispensabile per far funzionare i kernel 2.6.x, ricordatevi sempre di installarlo se on lo aveste già fatto. In poche parole con un solo comando renderete la vostra Debian semplice da utilizzare alla stregua di distro come Mandriva o Fedora per quanto concerne la configurazione del vostro HW. > Compilare un kernel col "Metodo Debian": Esempio: da kernel 2.4.18bf2.4 a kernel 2.4.19, eseguire da shell, sempre come root: aptcache search kernelsource [visualizza tutti i sorgenti dei kernel disponibili nelle fonti APT] aptget install kernelsource2.4.19 [scarica i sorgenti del kernel scelto in formato tar.bz2 e mette l'archivio in /usr/src] cd /usr/src [spostiamoci nella directory in questione] tar jxvf kernelsource2.4.19.tar.bz2 [scompattiamo i sorgenti, verrà creata la cartella "kernelsource2.4.19"] ln s kernelsource2.4.19 linux [creiamo un link simbolico chiamato "linux" che punti alla cartella appena creata] ls la /boot/conf* [cerchiamo un file di configurazione di un kernel vecchio da cui partire a configurare quello nuovo] cp /boot/config2.4.18bf2.4 /usr/src/linux/.config [se presente, copiamolo nella dir /linux con altro nome] aptget install make gcc kernelpackage libncurses5dev moduleinittools modutils [pacchetti necessari per proseguire] cd /usr/src/linux [spostiamoci nella dir /linux: trattandosi di un link è come spostarsi direttamente nella dir dei sorgenti del kernel] make menuconfig [selezionare tutti i vari moduli da compilare col kernel] (make oldconfig) [consigliato per chi utilizza vecchi .config: verrà chiesto come comportarsi solo coi moduli non presenti in tale file] makekpkg clean [pulisce gli output dei binari e prepara la compilazione di un nuovo kernel] makekpkg kernel_image [ricompila il nuovo kernel ...al termine della compilazione, in /usr/src verrà creato un .deb del nuovo kernel pronto per essere installato con dpkg: cd .. [spostiamoci nella directory /usr/src] dpkg i kernelimage2.4.19.deb [installiamo il kernel appena creato] > Di cosa fare il backup? menus.lst ( /boot/grub/ ) lilo.conf ( /etc ) XF86Config4 ( /etc/X11 ) modules ( /etc/modules) startup script ( /etc/init.d/startup ) i vari config dei kernel ( /boot ) fstab ( /etc ) sources.list ( /etc/apt ) server.list ( se usate lopster :) ) > Shortcut da tastiera: tab [da shell, completa i percorsi delle directory, nomi files, etc] ctrl + a [porta cursore a inizio riga] ctrl + e [porta cursore a fine riga] ctrl + k [cancella dal cursore in poi, fino a fine riga] ctrl + w [cancella tutti i caratteri posti prima del cursore] ctrl + d [chiude la shell] ctrl + l [pulisce il video di tutti i vari output (=cls di dos)] ctrl + c [interrompe comando in esecuzione] ctrl + s [sospende i caratteri su schermo] ctrl + q [riprende i caratteri su schermo] > Condivisione uso periferiche comuni con altri utenti: Eseguire da shell, come root: adduser nome_utente audio adduser nome_utente video (es. scheda tv) adduser nome_utente lp (stampante) > Inizializzare delle partizioni EXT3 e FAT32: Ext3: mkfs t ext3 /dev/hdxX mke2fs j /dev/hdxX vfat: mkdosfs F 32 /dev/hdxX > Montare partizioni FAT32 in lettura/scrittura modificando fstab: Eseguire da shell, come root: nano /etc/fstab ...e aggiungere la/e riga/e... /dev/hdxX /mnt/*** vfat users,auto,uid=nome_utente 0 0 [x = lettera corrispondente all'HD rispetto i canali IDE X = numero relativo alla partizione in oggetto *** = punto di mount. Deve esistere la relativa directory dentro la dir "mnt" (come root: mkdir /mnt/***)] > Comandi utili: ls a [visualizza files nascosti] r [visualizza files sottodirectory] s [visualizza dimensioni files] l [info aggiuntive, permessi etc] cat [visualizza il contenuto di file di testo non troppo lunghi] cat | grep ciccio [visualizza tutte le righe contenenti la parola "ciccio"] less [come cat ma per files più lunghi, usare "pagup" e "pagdown" per scorrere il testo, "q" per uscire] cp rf oggetto /directory/di/destinazione/ [copia un file/directory, l'opzione "f" forza l'operazione] mv rf oggetto /directory/di/destinazione/ [sposta un file/directory, l'opzione "f" forza l'operazione] mv rf oggetto oggetto_nuovo [rinomina un file/directory, l'opzione "f" forza l'operazione] rm rf [cancella una file/directory, l'opzione "f" forza l'operazione] tar jxvf nome_file.tar.bz2 [decomprime un tar.bz2 nella directory attuale] tar zxvf nome_file.tar.gz [decomprime un tar.gz nella directory attuale] dpkg i file.deb [installa un pacchetto .deb] dpkg i forceall file.deb [installa un pacchetto .deb forzando l'operazione] dpkgreconfigure xserverxfree86 [riconfigura X , agendo sul file /etc/X11/XF86Config4] modprobe nome_modulo [carica un determinato modulo] modprobe l [mostra la lista di tutti i moduli compilati nel kernel che è possibile caricare con modprobe] modprobe l | grep SCSI [mostra solo i moduli che contengono nel nome la parola SCSI, compilati nel kernel, che è possibile caricare] lsmod [mostra tutti i moduli attualmente caricati, se sono in uso o meno e se si da quali altri moduli] lsmod | grep fglrx [mostra se il modulo "fglrx" è attualmente caricato, se è in uso o meno e se si da quali altri moduli] XFree86 v [mostra la versione di X installata] cat /var/log/Xfree86.0.log [mostra l'intero log di X] cat /var/log/Xfree86.0.log | grep EE [mostra solo le righe contenenti errori del log di X] cat /var/log/Xfree86.0.log | grep WW [mostra solo le righe contenenti warnings del log di X] cat comando > file [crea un nuovo file contenente l'output di un comando] cat /var/log/Xfree86.0.log | grep EE > /home/utente/errori.txt [crea un file nella home contenente gli errori di X] psaux [mostra tutti i processi attivi] top [mostra la lista di processi attivi con relativa % di occupazione cpu] free [mostra l'utilizzo della RAM e della partizione di SWAP] df h [mostra l'utilizzo di tutte le partizioni montate dei dischi fissi presenti e lo spazio occupato] du h [mostra lo spazio occupato da tutti i files/sottodirectory contenuti in una directory] uname a [mostra la versione del kernel in uso, hostname, username, data, architettura del PC etc] uname r [mostra solo la versione del kernel in uso] mount a [rende attive tutte le modifiche effettuate sul file /etc/fstab] lspci v [mostra info su tutte le periferiche connesse agli slot PCI] /etc/init.d/script start [avvia un servizio/demone] /etc/init.d/script stop [stoppa un servizio/demone] rescue root=/dev/hdaX [se digitato al boot con il cd di Debian inserito, verrà avviato Linux con il kernel presente nella partizione indicata] ifconfig eth0 IP netmask IP broadcast IP up [assegna indirizzo IP, netmask e broadcast alla scheda di rete eth0 e l'abilita] updatealternatives config xsessionmanager [consente di modificare la scelta del desktop manager da usare] updatealternatives config xwindowmanager [consente di modificare la scelta del window manager da usare] lame decode silent "canzone.mp3" | oggenc q2 o "nome_canzone.ogg" [converte un .mp3 in .ogg a 128 kbps] mount o loop t iso9660 file.iso /cdrom [monta una immagine .iso nella dir /cdrom] for i in *.tar.gz; do tar xvfz $i; done [utile per decomprimere diversi archivi tar.gz posti nella stessa directory uno dopo l'altro in maniera automatica] CHARSET=UTF8 rox [avvia rox in modalità UTF8 per evitare di riscontrare errori nei nomi dei files/directory] mplayer vo vesa ao alsa1.x vf scale=640:1 [avvia mplayer abilitando il tvout della scehda video] dpkgreconfigure plow ntpdate [per riconfigurare ntpdate con un nuovo server] > Come avere l'ora sempre aggiornarnata: aptget install ntpdate ntpdate time.ien.it > Installare un joystick su porta giochi: Esempio: Microsoft Sidewinder (c) Caricare con modprobe i seguenti moduli, nell'ordine. In caso di errori accertatevi di aver compilato tutti i moduli nel kernel, se così non fosse occorrerà ricompilare il kernel. input ns558 (questo è il modulo relativo alla porta giochi standard. Se si possedesse una Live! il modulo giusto sarebbe: emu10k1_gp. Il modulo corretto comunque lo si trova nella sezione "input" nelle schermate di configurazione del kernel) gameport joydev sidewinder NOTA: non caricare il modulo "analog", non c'entra niente con la porta giochi standard e può creare conflitti. ...una volta caricati tutti i moduli, dare uno di questi comandi da shell (come root) per vedere se il joypad funziona: cat /dev/js0 cat /dev/input/js0 ...alla pressione dei tasti del joystick devono apparire dei caratteri speciali su schermo: provate tutti i tasti e poi premete "ctrl+c" per uscire. Se il joypad non funzionasse probabilmente non avete caricato tutti i moduli necessari. Infine aggiungete manualmente tutti i moduli caricati in /etc/modules in modo che vengano caricati automaticamente ad ogni avvio del sistema. > Installare un mouse SERIALE: Collegare il mouse prima di accendere il computer. Lanciare quindi da console mouseconfig e seguire le istruzioni. > Installare un mouse USB: Collegare il mouse USB. Caricare i seguenti moduli, nell'ordine. In caso di errori accertatevi di aver compilato i moduli nel kernel, se così non fosse occorrerà ricompilare il kernel. usbcore usbuhci (o uhci) input usbmouse hid mousedev ...una volta caricati tutti i moduli, dare questo comando da shell per vedere se il mouse funziona: cat /dev/input/mice ...muovendo il mouse e alla pressione dei tasti devono apparire dei caratteri speciali su schermo: provate tutte le funzionalità e poi premete "ctrl+c" per uscire. Se il mouse non funzionasse probabilmente non avete caricato tutti i moduli necessari. Successivamente dovrete riconfigurare X selezionando come mouse: /dev/input/mice, protocollo ImPS2 (2 tasti + rotella) e ricordatevi di NON emulare il terzo tasto. Riavviate X e aggiungete tutti i moduli manualmente a /etc/modules in modo che vengano caricati automaticamente ad ogni avvio del sistema. > Come applicare una patch ai sorgenti del kernel: (by ilsensine) Da console, entrate nella directory contenente i sorgenti del vostro kernel (normalmente /usr/src/linux, o qualsiasi altra posizione scegliate) ed eseguite il comando: bzcat /path/al/file/patch.bz2 | patch p1 oppure zcat /path/al/file/patch.gz | patch p1 oppure cat /path/al/file/patch.diff | patch p1 ...a seconda del formato di compressione della patch in vostro possesso. È possibile anche "invertire" il processo di patch aggiungendo l'opzione R al comando patch. Speriamo d'esservi stati utili. Se trovate imprecisioni o volete ampliare la guida scrivere a: [email protected] Grazie.