Il s'agit de la commande virt-rescue qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
virt-rescue - Exécute un shell de secours sur une machine virtuelle
SYNOPSIS
virt-rescue [--options] -d nom de domaine
virt-rescue [--options] -a disque.img [-a disque.img ...]
virt-rescue --suggest (-d nomdom | -a disk.img ...)
Style ancien:
virt-rescue [--options] nom de domaine
virt-rescue [--options] disque.img [disque.img ...]
ATTENTION
Utilisation de « virt-rescue » en mode écriture sur des machines virtuelles en direct, ou en parallèle avec d'autres
outils d'édition de disque, peut être dangereux et potentiellement endommager le disque. Le virtuel
la machine doit être arrêtée avant d'utiliser cette commande et les images disque ne doivent pas être modifiées
simultanément.
Utilisez l'option --ro (lecture seule) option pour utiliser "virt-rescue" en toute sécurité si l'image disque ou
la machine est peut-être sous tension. Vous pouvez voir des résultats étranges ou incohérents si vous exécutez
en même temps que d'autres modifications, mais avec cette option, vous ne risquez pas de corrompre le disque.
DESCRIPTION
virt-rescue est comme un CD de secours, mais pour les machines virtuelles, et sans avoir besoin d'un CD.
virt-rescue vous offre un shell de secours et des outils de récupération simples que vous pouvez utiliser pour
examiner ou récupérer une machine virtuelle ou une image disque.
Vous pouvez exécuter virt-rescue sur n'importe quelle machine virtuelle connue de libvirt, ou directement sur le disque
images):
virt-rescue -d NomInvité
virt-rescue --ro -a /chemin/vers/disque.img
virt-rescue -a /dev/sdc
Pour les machines virtuelles en direct, vous doit utilisez l'option --ro.
Lorsque vous exécutez virt-rescue sur une machine virtuelle ou une image disque, vous êtes placé dans un
shell bash interactif où vous pouvez utiliser de nombreuses commandes Linux ordinaires. Ce que vous voyez dans /
(/ bin, / lib etc) est l'appareil de sauvetage. Vous devez monter la machine virtuelle
systèmes de fichiers à la main. Il y a un répertoire vide appelé /racine_sys où vous pouvez monter
systèmes de fichiers.
Vous pouvez demander à virt-rescue de vous suggérer des commandes de montage en utilisant le --suggérer option
(dans un autre terminal) :
$ virt-rescue --suggest -d Fedora15
Inspection de la machine virtuelle ou de l'image disque...
Ce disque contient un ou plusieurs systèmes d'exploitation. Vous pouvez utiliser ces
commandes de montage dans virt-rescue (au > invite) pour monter le
systèmes de fichiers.
# /dev/vg_f15x32/lv_root est la racine d'un système d'exploitation Linux
# type : linux, distribution : fedora, version : 15.0
# Fedora version 15 (Lovelock)
monter /dev/vg_f15x32/lv_root /sysroot/
monter /dev/vda1 /sysroot/boot
monter --bind / dev /sysroot/dev
monter --bind /dev/pts /sysroot/dev/pts
monter --bind / proc /racine système/proc
monter --bind / sys /racine_sys/sys
Une autre façon est de lister les volumes logiques (avec lvs(8)) et des cloisons (avec séparé(8))
et les monter à la main :
> lvs
LV VG Attr LSize Origine Snap% Déplacer Journal Copie% Convertir
lv_root vg_f15x32 -wi-a- 8.83G
lv_swap vg_f15x32 -wi-a- 992.00M
> monter /dev/vg_f15x32/lv_root /sysroot
> monter /dev/vda1 /sysroot/boot
> ls /racine_sys
Une autre commande pour lister les systèmes de fichiers disponibles est systèmes de fichiers virt (1).
Pour exécuter des commandes dans un invité Linux (par exemple, grub), vous devez chrooter dans le /sysroot
répertoire d'abord :
> chroot / sysroot
NOTES
Virt-sauvetage peut être utilisé sur tout fichier image disque ou périphérique, pas seulement une machine virtuelle. Pour
exemple, vous pouvez l'utiliser sur un fichier vierge si vous souhaitez partitionner ce fichier (bien que nous
recommanderais d'utiliser poisson invité(1) à la place car il est plus approprié à cet effet). Tu
peut même utiliser virt-rescue sur des choses comme les cartes SD.
Vous pouvez obtenir virt-rescue pour vous donner un ou plusieurs disques de travail avec lesquels jouer. Ceci est utile pour
tester les utilitaires Linux (voir --rayure).
Virt-rescue ne nécessite pas de root. Vous n'avez besoin de l'exécuter en tant que root que si vous avez besoin de root pour
ouvrez l'image disque.
Cet outil est juste conçu pour le piratage interactif rapide sur une machine virtuelle. Pour plus
accès structuré à une image disque de machine virtuelle, vous devez utiliser invités(3). Pour obtenir un
shell structuré que vous pouvez utiliser pour apporter des modifications scriptées aux invités, utilisez poisson invité (1).
OPTIONS
--Aidez-moi
Afficher une brève aide.
-a filet
--ajouter filet
Ajouter filet qui devrait être une image disque d'une machine virtuelle. Si la machine virtuelle
a plusieurs périphériques de bloc, vous devez tous les fournir avec des -a options.
Le format de l'image disque est détecté automatiquement. Pour outrepasser cela et forcer un
format particulier utiliser le --format=.. option.
-a URI
--ajouter URI
Ajoutez un disque distant. Voir « AJOUT DE STOCKAGE À DISTANCE » dans poisson invité (1).
--append noyaux
Transmettez des options supplémentaires au noyau de secours.
-c URI
--relier URI
Si vous utilisez libvirt, connectez-vous au URI. S'il est omis, nous nous connectons au
hyperviseur libvirt par défaut.
Si vous spécifiez directement les périphériques de blocage d'invité (-a), alors libvirt n'est pas du tout utilisé.
-d invité
--domaine invité
Ajoutez tous les disques de l'invité libvirt nommé. Les UUID de domaine peuvent être utilisés à la place de
des noms.
--format=brut|qcow2|..
--format
La valeur par défaut pour le -a L'option est de détecter automatiquement le format de l'image disque. À l'aide de
cela force le formatage du disque pour -a options qui suivent sur la ligne de commande. À l'aide de
--format sans argument revient à la détection automatique pour la suite -a options.
Par exemple :
virt-rescue --format=raw -a disk.img
force le format brut (pas de détection automatique) pour disque.img.
virt-rescue --format=raw -a disk.img --format -a another.img
force le format brut (pas de détection automatique) pour disque.img et revient à la détection automatique pour
autre.img.
Si vous avez des images de disque invité au format brut non fiables, vous devez utiliser cette option pour
spécifiez le format du disque. Cela évite un éventuel problème de sécurité avec des logiciels malveillants
invités (CVE-2010-3851).
-m MB
--memsize MB
Modifiez la quantité de mémoire allouée au système de secours. La valeur par défaut est définie par
libguestfs et est petit mais suffisant pour exécuter les outils système. Le programme occasionnel
peut avoir besoin de plus de mémoire. Le paramètre est spécifié en mégaoctets.
--réseau
Activez la mise en réseau des utilisateurs QEMU dans l'invité. Voir "RÉSEAU".
-r
--ro
Ouvrez l'image en lecture seule.
L'option doit toujours être utilisée si l'image disque ou la machine virtuelle est en cours d'exécution,
et est généralement recommandé dans les cas où vous n'avez pas besoin d'un accès en écriture sur le disque.
Voir aussi "OUVERTURE DES DISQUES POUR LECTURE ET ECRITURE" dans poisson invité (1).
--rayure
--scratch=N
Pour --rayure L'option ajoute un grand disque de travail à l'appliance de secours. --scratch=N
ajoute "N" disques de travail. Le(s) disque(s) de travail sont supprimés automatiquement lorsque virt-
sorties de secours.
Vous pouvez également mélanger -a, -d et mes --rayure option. Le(s) disque(s) de travail sont ajoutés au
l'appareil dans l'ordre où ils apparaissent sur la ligne de commande.
--selinux
Activez SELinux dans l'appliance de secours. Vous devriez lire "SELINUX" dans invités(3)
avant d'utiliser cette option.
--smp N
Activez N ≥ 2 CPU virtuelles dans le dispositif de secours.
--suggérer
Inspectez l'image disque et suggérez quelles commandes de montage doivent être utilisées pour monter le
disques. Vous devriez utiliser le --suggérer option dans un deuxième terminal, puis collez le
commandes dans un autre virt-rescue.
Cette option implique --ro et peut être utilisé en toute sécurité même si l'invité est debout ou si un autre
virt-rescue est en cours d'exécution.
-v
--verbeux
Activez les messages détaillés pour le débogage.
-V
--version
Afficher le numéro de version et quitter.
-w
--rw
Cela change le -a et mes -d options afin que les disques soient ajoutés et que les montages soient effectués en lecture-
écrire.
Voir "OUVERTURE DES DISQUES POUR LECTURE ET ECRITURE" dans poisson invité (1).
-x Activez le traçage des appels d'API libguestfs.
A L'ANCIENNE COMMAND LINE ARGUMENTS
Les versions précédentes de virt-rescue vous permettaient d'écrire soit :
virt-rescue disque.img [disque.img ...]
or
nom d'invité virt-rescue
alors que dans cette version vous devez utiliser -a or -d respectivement pour éviter le cas confus
où une image disque peut avoir le même nom qu'un invité.
Pour la compatibilité, l'ancien style est toujours pris en charge.
RÉSEAU
Ajout du --réseau L'option active la mise en réseau des utilisateurs QEMU dans l'appliance de secours. Là
Il existe quelques différences entre le réseautage utilisateur et le réseautage ordinaire :
le ping ne fonctionne pas
Parce que le protocole ICMP ECHO_REQUEST nécessite généralement la racine pour envoyer le
ping paquets, et parce que virt-rescue doit pouvoir s'exécuter en tant que non-root, l'utilisateur QEMU
le réseau n'est pas en mesure d'émuler le ping(8) commande. La commande ping apparaîtra
pour résoudre les adresses, mais ne sera pas en mesure d'envoyer ou de recevoir des paquets. Cela fait
signifie pas que le réseau ne fonctionne pas.
ne peut pas recevoir de connexions
La mise en réseau des utilisateurs QEMU ne peut pas recevoir de connexions entrantes.
établir des connexions TCP
L'appliance virt-rescue doit être petite et n'inclut donc pas de nombreux réseaux
outils. En particulier, il n'y a pas telnet(1) commande. Vous pouvez établir des connexions TCP
de la coquille en utilisant la magie /dev/tcp/ / syntaxe:
exec 3<>/dev/tcp/redhat.com/80
echo "GET /" >&3
chat <&3
See bash(1) pour plus de détails.
CAPTURE CORE DÉCHARGES
Si vous testez un outil dans virt-rescue et que l'outil (pas virt-rescue) segfaults, il
peut être difficile de capturer le core dump en dehors de virt-rescue pour une analyse ultérieure. Cette
La section décrit une façon de procéder.
1. Créez un disque de travail pour les vidages de mémoire :
tronquer -s 4G /tmp/corefiles
virt-format --partition=mbr --filesystem=ext2 -a /tmp/corefiles
virt-filesystems -a /tmp/corefiles --all --long -h
2. Lors du démarrage de virt-rescue, attachez le disque des fichiers principaux en dernier :
virt-rescue --rw [-a ...] -a /tmp/corefiles
NB Si vous utilisez le --ro option, alors virt-rescue n'écrira silencieusement aucun noyau
fichiers à /tmp/corefiles.
3. Dans virt-rescue, montez le disque des fichiers principaux. Remarque remplacer / dev / sdb1 avec le dernier
index du disque. Par exemple, si le disque des fichiers principaux est le dernier des quatre disques, vous
utilisé /dev/sdd1.
> mkdir /tmp/mnt
> monter /dev/sdb1 /tmp/mnt
4. Activez les vidages de mémoire dans le noyau de secours :
> echo '/tmp/mnt/core.%p' > /proc/sys/kernel/core_pattern
> ulimit -Hc illimité
> ulimit -Sc illimité
5. Exécutez l'outil qui a provoqué le vidage de mémoire. Le vidage mémoire sera écrit dans
/tmp/mnt/core.PID.
> ls -l /tmp/mnt
Total des 1628
-rw------- 1 racine racine 1941504 7 décembre 13:13 core.130
drwx------ 2 racine racine 16384 7 décembre 13:00 perdu + trouvé
6. Avant de quitter virt-rescue, démontez (ou au moins synchronisez) les disques :
> umount /tmp/mnt
> sortir
7. En dehors de virt-rescue, le ou les vidages de mémoire peuvent être supprimés du disque à l'aide poisson invité (1).
Par exemple :
guestfish --ro -a /tmp/corefiles -m /dev/sda1
> ll /
> télécharger /core.NNN /tmp/core.NNN
ENVIRONNEMENT VARIABLES
Plusieurs variables d'environnement affectent virt-rescue. Voir "VARIABLES D'ENVIRONNEMENT" dans
invités(3) pour la liste complète.
Utilisez virt-rescue en ligne en utilisant les services onworks.net