Ceci est une ancienne révision du document !
Table des matières
Linux
Des pages sur le sujet… et
qq trucs en vrac
debian install sans cd
Il faut juste avoir un grub qui marche déjà, récupérer l'initrd.gz et le vmlinuz nécéssaire au 1er boot (par exemple sur http://debian.osuosl.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/), et ajouter dans le menu du grub qui marche (remplacer (hd0,0)/boot/newinstall/ par le bon chemin).
title Debian Install kernel (hd0,0)/boot/newinstall/vmlinuz root=/dev/ram0 ramdisk_size=12000 initrd (hd0,0)/boot/newinstall/initrd.gz
cf http://www.us.debian.org/releases/stable/i386/ch05s01.html.fr#boot-initrd
Avec une clé USB, c'est simple aussi (cf http://wiki.debian-facile.org/wiki/doku.php?id=manuel:installation:installusb), pour une lenny, avec la clé dans /dev/sdf
wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/boot.img.gz wget http://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-506-i386-netinst.iso zcat boot.img.gz > /dev/sdf mount /dev/sdf /mnt/test cp debian-506-i386-netinst.iso /mnt/test umount /mnt/test
Y'a plus qu'à booter sur la clé…
Dans cette exemple, la clé se retrouve avec 256Mo, ça doit être possible de partitionner la clé avant et de faire un zcat boot.img.gz > /dev/sdf1 pour pouvoir mettre une iso + grosse sur /dev/sdf2 (pas testé)
Gestion des paquets debian
Depuis que les backports sont officiels, le package pinning sert pas trop (et pb de libc entre lenny et squeeze), je laisse ça là pour mémoire
Un autre lien (http://www.andesi.org/index.php?node=130) et un article intéressant sur apt-build (http://www.andesi.org/index.php?node=108).
Le apt howto http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
Rmq : un attribut intéressant, le o=Debian pour préciser l'origine debian des paquets (pour les distinguer par exemple de o=dotdeb), et une commande pour voir les attributs des différentes sources :
for f in /var/lib/apt/lists/*Release; do echo "$f :"; cat $f; echo; done;
package pinning
Ou comment mélanger les debian stable/testing/unstable de debian en limitant les risques
- mettre les sources testing et unstable dans le sources.list
- créer un fichier /etc/apt/preferences qui contient
Package: * Pin: release a=testing Pin-Priority: 990 Package: * Pin: release a=unstable Pin-Priority: 99
d'après http://www.bxlug.be/articles/194 (vu ailleurs aussi)
⇒ et sun-java5-jdk s'installe tout seul .
backports
Tout est expliqué http://backports.debian.org/
sources.list et préférences apt
Mon sources.list lenny
deb http://mir2.ovh.net/debian/ lenny main contrib non-free deb-src http://mir2.ovh.net/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free deb ftp://ftp.debian-multimedia.org lenny main non-free # backports devenu officiel, cf http://backports.debian.org/ # on prend le mirror debian.netcologne.de en ftp deb ftp://debian.netcologne.de/debian-backports/ lenny-backports main contrib non-free
et dans /etc/apt/apt.conf
// on veut pas des recommandés ou suggérés APT::Install-Recommends "0"; APT::Install-Suggests "0";
Et pour /etc/apt/preferences
Package: openoffice* Pin: release a=lenny-backports Pin-Priority: 999
Création de paquet debian
Pour faire des paquets plus proprement qu'avec checkinstall (à la sauce debian pour de vrai), cf http://www.catapulse.org/articles/view/81, http://boisson.homeip.net/faireunpaquet.html, http://alp.developpez.com/tutoriels/debian/creer-paquet/, http://fr.wikipedia.org/wiki/Utilisateur:Sbrunner/Cr%C3%A9ation_de_paquets_Debian et bien sûr la doc officielle pour faire tout bien comme il faut http://www.debian.org/doc/manuals/maint-guide/ch-start.fr.html
transfert de clés gpg
Pour exporter ses clés : gpg --export -o fichier
et on récupère avec gpg --import fichier
récupérer la liste des paquets pour réinstall à l'identique
# on récupère la liste
aptitude -F "%p" search ~i\!~M > liste
et sur l'autre machine on installe tous ces paquets aptitude install $(<liste)
(de Gilles Mocellin via debian-user-french _ad_ lists.debian.org)
- -F “%p” ⇒ formatage de sortie, on ne veut que les noms de paquets
- ~i ⇒ les paquets installés
- !~M ⇒ mais pas les paquets automatiquement installés
(on peut mettre '~i!~M' au lieu de ~i\!~M, mais attention de ne pas quoter avec “ sinon bash va interprêter le !). Cf http://doc.ubuntu-fr.org/aptitude#motifs_de_recherche_utilisation_avancee pour la syntaxe de recherche.
Ça peut servir par exemple pour voir pourquoi les paquets marqués auto sont installés :
aptitude search -F ”%p“ ~i~M | while read p; do echo -e “\n$p”; aptitude why $p; done;
ou pour voir ceux qui ne sont là “que” par recommandation
aptitude search -F ”%p“ ~i~M | while read p; do aptitude why $p; done |grep Recommends
modif image iso
cf http://linux.jpvweb.com/imageiso.html
et un autre tuto détaillé sur la gravure http://www.labo-linux.org/articles-fr/la-gravure-sous-linux/gravure-de-dvd
SysRq
cf http://aplawrence.com/Words2005/2005_04_13.html
The “Magic Sysrequest key” is Alt (left or right Alt key) and Sysrq (up there under Print Screen, next to F12 on most keyboards). To use it, you need to have it enabled in your kernel (CONFIG_MAGIC_SYSRQ). It usually is; if you have a file called '/proc/sys/kernel/sysrq' you have this. To ENABLE the magic functions, you need a “1” in that file. If it has 0, Alt-SysRq just returns you to the previous console you were using.
- 'r' - Turns off keyboard raw mode and sets it to XLATE.
- 'k' - Secure Access Key (SAK) Kills all programs on the current virtual console. NOTE: See important comments below in SAK section.
- 'b' - Will immediately reboot the system without syncing or unmounting your disks.
- 'o' - Will shut your system off (if configured and supported).
- 's' - Will attempt to sync all mounted filesystems.
- 'u' - Will attempt to remount all mounted filesystems read-only.
- 'p' - Will dump the current registers and flags to your console.
- 't' - Will dump a list of current tasks and their information to your console.
- 'm' - Will dump current memory info to your console.
- '0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
- 'e' - Send a SIGTERM to all processes, except for init.
- 'i' - Send a SIGKILL to all processes, except for init.
- 'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system will be non-functional after this.)
- 'h' - Will display help (actually any other key than those listed above will display help. but 'h' is easy to remember
If you have this enabled, it can be useful in the case where the system has escaped your control and nothing else is working. The following sequence may be better than just hitting the power button:
- Alt+SysRq+s - sync the disk
- Alt+SysRq+e - try to nicely kill processes (wait a little bit here)
- Alt+SysRq+i - no more mister nice guy
- Alt+SysRq+u - unmount disks (wait a bit here, too)
- Alt+SysRq+b - reboot
I can remember that with “So Everything Is Unusual - Boot!”
Un billet sur le mirroring de dépots (ubuntu, mais idem pour debian), pour une install ailleurs sans adsl : http://blog.racoon97.net/index.php?2007/04/07/90-installer-ubuntu-sans-connexion-internet-a-partir-des-depots-sur-un-disque-dur-externe
Raccourcis clavier
Mac OS X
- | → shift + alt + L
- { → alt + (
- [ → alt + shift + (
- \ → alt + shift + :
Le reste sur http://www.prendreuncafe.com/blog/post/2007/05/19/Petit-pense-bete-des-raccourcis-Mac-OS-X
screen
sudo
Juste un exemple de /etc/sudoers, plus rapide qu'un long discours
# des alias de commandes Cmnd_Alias NET=/sbin/ifconfig,/usr/sbin/iftop,/usr/bin/gnome-ppp Cmnd_Alias HALT=/sbin/halt,/sbin/reboot Cmnd_Alias OTHERBIN=/usr/bin/ionice,/usr/bin/renice,/usr/bin/truecrypt # et on donne le droit au user daniel d'exécuter depuis n'importe quel host (ALL), # en tant que root et sans mot de passe les commandes suivantes daniel ALL=(root) NOPASSWD:NET,NOPASSWD:HALT,NOPASSWD:OTHERBIN # et on donne le droit aux users du groupe adm d'exécuter ces commandes en root # (mais ils devront fournir leur mot de passe) %adm ALL=(root) NET,HALT,OTHERBIN
iptables
Pour se simplifier iptables : http://firehol.sourceforge.net/commands.html, avec un exemple de port forwarding http://mel.icious.net/blog/2007/07/10/give-me-a-reason-to-stop-playing-with-your-heart/
D'autres utilitaires pour iptables http://wiki.debian.org/Firewalls
howto iptables http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html
exemples
- Pour bloquer une ip, c'est
iptables -A INPUT -s ip.un.peu.louche -j DROP
, - et pour la débloquer c'est
iptables -D INPUT -s ip.un.peu.louche -j DROP
- Pour qu'une VM avec une ip privée puisse “sortir” sur internet
iptables -t nat -A POSTROUTING -s ip.privee.de.la.vm -o vmbr0 -j SNAT --to ip.publique.a.utiliser
- Et pour qu'une connexion sur $port_ip_pub arrive sur un port d'une ip privée
iptables -t nat -A PREROUTING -p tcp -d ip.publique --dport $port_ip_pub -j DNAT --to-destination ip.privee.de.la.vm:$port_ip_privee
(on peut aussi ajouter -i $interface si on veut se limiter à cette interface)
Et pour virer ces règles, remplacer le -A par -D
tunnel ssh
explications tunnels ssh http://www.institut.math.jussieu.fr/informatique/tunnel/tunnel_ssh.html
Port local redirigé vers ailleurs
ssh -f -N -L $localPort:$destServer:$destPort $user@$sshServer
(souvent, $sshServer et $destServer sont identiques, mais c'est pas obligé, et c'est même pratique pour rerouter un port vers une machine sur laquelle on a pas de compte ssh, le tunnel étant entre la machine locale et $sshServer)
Pour garder la connexion active, même sans traffic, ssh -o ServerAliveInterval=300 -f -N -L $localPort:$destServer:$destPort $user@$sshServer
(envoie un ~ping toutes les 5min).
Port distant redirigé vers ailleurs
ssh -f -N -R $remotePort:$destServer:$destPort $user@$remoteServer
label disques
- donner un label à une partition :
tune2fs -L monlabel /dev/hda1
- monter d'après le label dans fstab :
LABEL=monlabel
(à la place de /dev/… ou UUID=…)
uuid
Si vous utiliser les uuid (dans grub2 par ex, ou dans votre fstab), et que vous faites des backup restaurations avec partimage, vous pouvez vous retrouver avec 2 partitions ayant le même UUID (sdaN backupée et restaurée sur sdbM), et là c'est pas terrible
Mais ça peut s'arranger (http://doc.ubuntu-fr.org/uuid_et_label#modifier_manuellement_l_uuid_d_un_systeme_de_fichiers)
# pour voir les uuid (et les labels) blkid # ls -l /dev/disk/by-uuid/ donne les mêmes infos # on a sda3 et sda5 avec le même UUID, on en veut un nouveau pour sda5 # on en génère un avec uuidgen newu=$(uuidgen) echo $newu #pour voir ;) # puis on l'affecte à sda5 avec tune2fs tune2fs -U $newu /dev/sda5
(penser à modifier /boot/grub/grub.cfg et /etc/fstab en conséquence)
nb montages avant check disque
- check tous les 90 mounts ou 3 mois (le 1er qui arrive)
tune2fs -c 90 -i 3m /dev/hda1
.
Backup simple d'une partition
simplement avec dd if=/dev/sdX | gzip > /mnt/backup/bkp_sdX_avec_dd.gz
, que l'on récupère (sur la même machine) avec zcat /mnt/backup/bkp_sdX_avec_dd.gz | dd of=/dev/sdX
Ça marche d'une machine à l'autre sur des partitions de même taille, si le /dev/sdX cible est plus grand que l'origine, ça fait de la place perdue, et s'il est plus petit je sais pas trop, mais je déconseillerais
Pour faire des images de partitions restaurables sur d'autres partitions de taille différentes, utiliser plutôt partimage.
Montage de partitions chiffrées
Pour monter une partition chiffrée avec luks (le système de chiffrement proposé par debian à l'install), bien utile pour de la maintenance quand on boot sur usb (pour modifier les tailles de partitions, les backuper, etc.).
# on crée le device mapper qui va bien (nommé ici "crypt") pour sda2 (par ex) crypsetup luksOpen /dev/sda2 crypt # ça crée un /dev/mapper/crypt # si c'est du lvm dedans vgscan # doit suffire à retrouver les volumes, suffit de vérifier avec lvdisplay # mais faut encore les rendre actifs (créer les /dev/vg/lv qui vont bien) vgchange -ay # et ensuite on peut les monter normalement