"On a BIOS/GPT configuration a BIOS boot partition is required. GRUB embeds its core.img into this partition."
Oui bref donc une seule partition pour tout le RAID5, ça passe pas. Heureusement, GPT demande apparemment 2048 secteurs vides pour aligner au début. Si on savait pas et qu'on a la flemme de refaire toute l'installation, on peut créer une mini-partition là-dedans (dans l'espace d'alignement), qui commence au secteur 63 et finit au 2047, en mettant le flag type qui va bien (4 dans fdisk). GRUB peut alors enfin poser tout ce dont il a besoin pour charger un empilement RAID/LVM.
Donc procédure complète de resize (agrandissement) de VM sans rebooter, avec ou sans LVM et avec ext4 (qui supporte l'agrandissement à chaud) :
Basé sur ce post, ici une ligne pour ajouter quelque chose dans le rc.local automatiquement en dernier (donc avant la dernière ligne qui a exit 0).
sed -i '$!{p;d;};i'"$COMMAND" /etc/rc.local
Pour éviter que dpkg pose des question ou les préconfigurer à l'avance. Pratique. Il y a aussi debconf-show.
Exemple :
debconf-set-selections <<< "debconf grub-pc/install_devices string /dev/vda"
… et oui ça marche, avec gdb on peut apparemment call une fonction, donc close(). Donc quand on a un bout de code mal foutu qui leak des FDs et qu'on a pas trop d'idée de comment le fix (pour le moment), on peut s'amuser et feel le power en les lui closant à la gueule directement en live. :)
Il faut le pid du programme en question (ça vous savez tous le trouver), et un fichier de commandes gdb pour pas se palucher à la main tous les 1023 - 3 FD. Attention bashisme ! :P
for ((i=3; i<=1023; i++)); do echo "call close($i)"; done > fixfds.gdb
gdb -p 4242 --command=fixfds.gdb --batch
Ah et pour voir les FDs ouverts, il suffit de regarder dans /proc/<pid>/fd
Bon alors moi naïvement je croyais que hosts.{deny, allow} c'était un truc global au système, utilisé par la libc par exemple (comme resolv.conf quoi). Hé bin non. Uniquement par la libwrap des TCP wrappers.
Au moins apparemment sur RH-like, on a droit à un commentaire bien explicite au début de ces fichiers, sur du Debian j'ai rien vu d'évident, y compris dans le man hosts_access.
un mythe s'effondre
WinXP qui tente de réassigner la même IP en boucle sur toutes les interfaces ? Il se peut qu'il traine une conf débile dans un coin (et une conf en dur, genre reboot change rien). La commande miracles :
netsh int ip reset netsh.log
En gros ça clean plein de "trucs" et ça arrête de gueuler. Ne pas chercher. :)
Petit module python pour jouer avec les tar. Je voulais lire que un fichier d'un tar (le premier) sans tout parcourir. J'ai pas trouvé comment avec la commande tar normale (ou même avec du GNU tar) mais là en quelques lignes de python c'est bon !
… et du coup j'ai repéré de la place libre derrière une de mes partitions trop pleines, et j'ai eu le courage de faire la manip pour l'utiliser. Par contre, j'ai eu le même truc bizarre de bornes/intervalle et dû faire le +1 aussi.
Un petit résumé des snapshot avec libvirt. Il faut dire qu'avec le man j'ai pas compris exactement ce qu'il se passait (quand on avait un snapshot RAM+disque et pas juste disque, ce que sont exactement les "metadata", ce genre de choses). Ici on sait exactement quoi (à la fin, un résumé).
Donc si on veut juste faire un snapshot disque pour pouvoir reprendre plus tard sans s'embêter, il suffit de faire :
snapshot-create <domain>
avec la VM stopped. Le snapshot est alors fait directement dans le qcow, utilisant justement le cow (copy on write). Il y a aussi des snapshots avec RAM, ou dans un qcow séparé (notion de fichier de base + delta) pratique pour backup par exemple.
Pour reprendre à un snapshot :
snapshot-revert <domain> <snapshotname>
Ça y est j'ai pris le temps de flasher la fonera qu'on m'avait passé avec un openwrt récent. Le tuto marche bien.
J'avais la flemme de passer par TFTP alors j'ai essayé la méthode d'envoi de l'image en HTTP (oui c'est moche) de la doc sur la fonera-tout-court (pas 2 quoi) et ça passe tout seul.
Le plus dur était d'arriver dans le bootloader (telnet sur le port 9000 ok mais avec timeout de 2 sec). Il faut aussi être très patient, le flash du squashfs a pris quelque chose comme 750 secondes (d'après l'interruption dans le ping).
Les commandes que j'ai exécutées sont donc :
ip_address -h 192.168.1.42
fis init
load -r -v -b 0x80041000 -m http /openwrt-atheros-vmlinux.lzma
fis create kernel
load -r -v -b 0x80041000 -m http /openwrt-atheros-root.squashfs
fis create rootfs
fconfig boot_script_data
fis load -l kernel
exec
reset
On peut pas se connecter à un partage windows (samba) avec deux login différents sur le même serveur en même temps. On contourne ça en mettant l'IP ou un autre nom dans le DNS…
Je viens de découvrir ça au taff… c'est génial. En plus c'est un protocole microsoft et ça marche sous linux sans hack. C'est juste limité pour le plaisir.
Et le pire c'est que je suis tombé dessus parce qu'on me demandait plus ou moins de faire une autre zone temporaire sur un autre serveur (donc chiant à gérer, faut se rappeler pour quoi on a fait steu merde, mettre à jour, …) pour contourner ça.
Si on a accès au daemon MySQL on peut ignorer tout ce qui est permissions en le lançant avec l'option "--skip-grant-tables". Bon à savoir quand on reprend un MySQL et qu'on n'a pas eu le mot de passe root.
Petit projet pour loguer des canaux IRC et les réafficher sur une page web. Un bout de python pour le bot, du php/js pour le web. C'est très simple (même simpliste) mais ça semble convenir pour essayer de mettre en place IRC dans "mon" équipe de recherche…
Défaut : base MySQL pour communiquer les logs entre bot et interface.
… et quand le serveur en face veut pas de startssl, bah on a quand même besoin de AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS :)
Dans ce rapport il y a aussi une commande super pratique pour debug :
echo blah | exim4 -d+all some@adress
qui permet de faire un run debug en live, sans l'activer dans le daemon. On a donc tout le détail de ce qu'il se passe, sans polluer de log ou devoir reload.
Bah voila des commandes sympa avec exim :)
C'est mignon les trucs comme exiwhat, exiqsumm etc.
Très intéressant quand on n'est pas très au courant de tout ce qu'il peut se passer dans un CPU.
Juste pour partage la page de notes que j'ai écrite après être passé à jessie sur mon PC de tous les jours et mon serveur. Normalement j'ai pas oublié trop de choses (j'ai bien noté et tout !).
Pas mal le coup du -$$ pour tuer tous les process du groupe ! Dommage par contre qu'il faille jouer avec trap pour l'implémenter et que huponexit puisse pas marcher aussi pour un non-login shell.