Effacer et réinstaller un Linux via SSH sans avoir à redémarrer

Originally published at: http://korben.info/effacer-reinstaller-linux-via-ssh-a-redemarrer.html

Le titre de cet article parait totalement fou et pourtant c’est ce que propose takeover.sh, un script qui permet à distance de mettre en place un environnement de récupération en mémoire, de se logger dessus, puis de démonter le système root d’origine et ainsi le remplacer (ou faire autre chose) sans avoir besoin d’un accès…

Ca tombe bien, j’avais justement ce besoin là qui a fait surface il y a quelques jour. Bon, pas exactement le même besoin (je suis pas maso non plus) mais quelque chose qui me semble similaire:

J’ai un raspberry Pi qui s’occuppe actuellement de la domotique à la maison. LA solution temporaire qui s’éternise niveau stockage de la partition principale, c’est une bonne vieille carte SD (et chacun sait à quel point c’est pas top niveau longévité).

Mon idée était d’avoir une solution quaotidienne automatisée par script+cron pour pouvoir démonter la carte SD (et donc la partition principale du système), en faire une image complète, bit par bit, et la stocker ailleurs (sûrement sur un accès scp ou nfs distant), pour pouvoir facilement refaire une nouvelle carte SD et relancer la domotique le jour où cette carte flanche.

Ce script “takeover.sh” semble justement me fournir une excellente base, non ?

Attention, ce commentaire n’a rien de constructif, mais c’est la première réaction qui m’est venue en lisant cet article :

LEEEEROOOOOOOOOT JENKIIIIIIIIIINS !

Salut, j’ai pas du tout pensé à ça en lisant l’article alors qu’en vrai c’est exactement ce qu’il me faut !!
Merci pour l’idée :smiley:
Si tu testes ça, je suis pas contre un retour (éventuellement sur ce thread) parce que ça m’éviterait de faire tout ça manuellement à chaque fois.

[quote=“theNouk, post:2, topic:5522, full:true”]Mon idée était d’avoir une solution quaotidienne automatisée par script+cron pour pouvoir démonter la carte SD (et donc la partition principale du système), en faire une image complète, bit par bit, et la stocker ailleurs (sûrement sur un accès scp ou nfs distant), pour pouvoir facilement refaire une nouvelle carte SD et relancer la domotique le jour où cette carte flanche.

Ce script “takeover.sh” semble justement me fournir une excellente base, non ?
[/quote]Je ne vois pas bien pourquoi il faudrait démonté la carte pour faire un backup :
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder
Src: https://wiki.archlinux.org/index.php/full_system_backup_with_rsync

J’avoue que je n’y connais pas grand chose sur cet aspect et que je n’ai pas encore pris beaucoup de temps pour me renseigner sur les “bonnes pratiques” en la matière ; je me disais à priori qu’une “blind copy” (style ‘dd’) de l’entièreté de la carte me permettrait d’être sûr à 100% d’avoir un backup ‘robuste’ (dans le sens ‘fiable’) qui remplacerait facilement l’ancien système en cas de défaillance.

Après, la solution que tu fournis en lien semble très intéressante et d’autant plus élégante qu’elle permettrait de faire tout ça sans la moindre interruption de service.

Donc merci pour l’info, il faut que je prenne le temps de creuser un peu tout ça.

[quote=“theNouk, post:6, topic:5522, full:true”]je me disais à priori qu’une “blind copy” (style ‘dd’) de l’entièreté de la carte me permettrait d’être sûr à 100% d’avoir un backup ‘robuste’ (dans le sens ‘fiable’) qui remplacerait facilement l’ancien système en cas de défaillance.[/quote]si tu copies le système en live tu vas copier aussi les fichiers temporaires (notamment horodaté) pas sûr que ça reboot.

Contrairement à un windows, Linux utilise la partition root majoritairement en lecture seule.
Seules quelques parties sont accédées en écriture:
/tmp/ => fichiers temporaires stockés en mémoire éventuellement swapé sur le disque, => perdu au reboot
/usr/tmp => fichiers temporaires stockés sur le disque => des logs qui survivent au reboot
et pas mal de dossiers virtuelles créées en live pendant le boot :
/dev/ : périphérique hardwares
/sys & /proc : paramétrage du noyau

Sauf installation de logiciels il n’y’a jamais d’écriture sauf quelques log / caches dispensable au boot.

J’ai vu pour bosser un peu sur ce script mais c’est assez problématique, il n’ a pas beaucoup d’aide, même du développeur marcan.

Je n’ai pas trouver le moyen de faire l’install avec SystemRescueCD, je me suis tourné vers debian mais j’aurais préféré suivre ses indications.

L’exécution du script (étape7) bloque, je pense que c’est dû à mon chroot qui n’est pas totalement fonctionnel (config du réseau et autres).