Cela peut se faire sans la création d'un nouvel AMI et sans avoir à lancer une nouvelle instance. Quand c'est fait, l'origine de la racine du volume reste attachée sur /dev/sda1 (ou de l'endroit où il était monté à l'origine. /dev/sda1 est la valeur par défaut pour de nombreux AMIs). L'origine de la racine du volume ne sera pas monté sur le système de fichier, vous devrez le faire vous-même via le "mont de la commande".
La technique nécessite la récente Ubuntu noyaux, ceux qui s'exécutent dans leur 10.04 et 10.10 versions. Découvrez alestic.com pour la plus récente AMI Id pour ces versions d'Ubuntu. Ces derniers noyaux sont configurés pour démarrer à partir de n'importe quel appareil dont le volume label "uec-rootfs". Si vous utilisez l'une de ces noyaux tout ce que vous devez faire est de changer le nom de volume courant (exemple magasin) de la racine du volume à autre chose, changer le nom de volume de la racine à ceu-rootfs, puis redémarrez. Si vous n'êtes pas à l'exécution de l'une de ces noyaux, vous ne pouvez pas utiliser cette technique.
Voici le code. Mettez ceci dans un fichier (reroot.sh) sur l'instance:
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
D'abord vous devez joindre le volume, vous voulez agir en tant que racine de l'un des périphériques /dev/sdf../dev/sdp. Cela peut être fait soit avec direct EC2 appels d'API, avec l' EC2 API en Ligne de Commande outils (ec2-fixez-volume de), ou avec une bibliothèque comme boto, ou via AWS Management Console de l'INTERFACE utilisateur.
Ensuite, exécutez l'reroot.sh script en tant que root, et de fournir de l'appareil que vous avez joint le nouveau volume racine, comme suit:
sudo reroot.sh /dev/sdp
Cela va faire le sale boulot. Ensuite il vous suffit de redémarrer:
sudo shutdown -r now
Viola.
Pour tester cela, vous devez créer un volume EBS que vous savez démarrer correctement. Je tiens à le faire que par des instantanés de la racine du volume de l'EBS, AMIs de ceux mentionnés ci-dessus Ubuntu AMIs. À partir de cet instantané, vous pouvez créer un nouveau démarrage volume EBS dans toute Zone de Disponibilité. Assurez-vous que vous pouvez dire à la différence entre le fonctionnement de l'instance de l'origine de la racine du volume et de la nouvelle EBS racine du volume avant d'exécuter le reroot procédure ci-dessus, vous pouvez mettre dans un "marqueur" de fichier sur l'ancienne racine du volume:
cd
touch this-is-the-original-root-volume
Ensuite, lorsque vous reroot et le redémarrage, si ce fichier existe dans le répertoire que vous êtes toujours en cours d'exécution à l'origine de la racine du volume. Si il n'y est pas, alors le reroot-et-redémarrage travaillé.
Voici deux exemples de cas d'utilisation de cette technique, avec des explications exhaustives:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html