J'ai une instance Amazon EC2 soutenue par EBS. Je voudrais changer le périphérique racine sur cette instance. Pouvez-vous me conseiller la meilleure façon de procéder?
Je ne trouve que de la documentation sur la modification de plusieurs attributs des périphériques de bloc, mais ils ne semblent pas inclure le paramétrage en tant que périphérique racine. Merci d'avance.
Oui, c'est très simple:
/dev/sda1
Cela suppose que votre autre volume EBS soit amorçable, bien sûr - il doit contenir l'image du système d'exploitation amorçable.
Je n'ai pas assez de représentant pour ajouter un commentaire à la réponse sélectionnée, mais je tiens à souligner que pour moi, /dev/sda1
n'a pas fonctionné (ne s'est pas attaché en tant que root), mais en utilisant /dev/xvda
travaillé (attaché en tant que root). L'instance est l'une des plus récentes t2.micro utilisant HVM.
Pour développer le commentaire de Diomidis Spinellis dans le fil des commentaires de la réponse acceptée, il est important de vérifier l'étiquette du système de fichiers de l'appareil que vous essayez de commuter comme votre nouvel appareil racine. Lors du dépannage de ma propre migration de serveur, j'ai dû procéder comme suit avant que mon instance ne démarre:
Utilisez le e2label
commande pour modifier le libellé du système de fichiers ext2/ext3/ext4 que vous avez créé pour votre nouveau périphérique racine.
Tout d'abord, vérifiez l'étiquette du système de fichiers de votre périphérique racine actuel.
$ Sudo e2label /dev/xvda1
cloudimg-rootfs
Définissez le nouveau périphérique pour qu'il ait la même étiquette de système de fichiers.
$ Sudo e2label /dev/xvdg 'cloudimg-rootfs'
Dans mon cas, l'étiquette était cloudimg-rootfs
. Parfois, ce sera simplement /
.
Il est important de comprendre comment fonctionne e2label; vérifier man e2label
sur votre machine ou visitez http://linux.die.net/man/8/e2label pour plus d'informations.
Il s'agit de la solution suggérée par aws. Vous pouvez détacher le volume racine de l'instance d'origine après l'avoir arrêté. Le volume racine est attaché à/dev/sda1. Une fois celui-ci détaché, veuillez l'attacher à la nouvelle instance. Une fois le volume connecté, vous devrez peut-être le monter à partir du système d'exploitation. Une fois qu'il est monté, vous devriez voir les données qu'il contient.
Après avoir ajouté la nouvelle clé, vous pouvez la détacher et l'attacher à l'instance d'origine dans/dev/sda1.
Je suggère de créer un instantané du volume racine avant d'apporter des modifications.
Avant d'essayer des solutions, essayez simplement dans les instances non importantes ou ponctuelles
Si vous souhaitez le faire via CloudFormation, vous devrez effectuer les opérations suivantes:
Déployez votre pile. Cela va recréer votre instance, alors assurez-vous que vous utilisez une adresse IP Elastic ou avez un accès DNS.
La raison pour laquelle vous devez effectuer cette solution de contournement est que CF ne vous permettra pas d'ajuster la taille du volume racine sur EC2 BlockDeviceMappings ou d'ajuster SnapshotId du volume racine.
Lorsque votre volume est monté, il obtient un post-fix avec des nombres, par exemple: quand /dev/sda
est monté, son monté comme /dev/sda1, /dev/sda2
selon les partitions que vous faites. Comme nous montons le périphérique racine lui-même, il suppose que le périphérique est déjà monté, nous devons donc donner /dev/sda1
pour monter le volume en tant que périphérique racine. Remarque: aucun volume racine ne doit être connecté.
Suivez ces étapes: 1) Accédez à vos volumes, sélectionnez attacher des volumes dans Action. 2) Sélectionnez votre instance 3) Pour le montage en tant que root, donnez le nom du périphérique comme /dev/sda1
4) Démarrez votre instance.