Vorbereiten von Linux für Imaging in Azure
Achtung
Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, deren Dienstende (End-of-Life, EOL) ansteht. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS-Leitfaden für das Lebensende.
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Die Vereinbarung zum Servicelevel (SLA) der Azure-Plattform gilt nur für virtuelle Computer (VMs), die das Linux-Betriebssystem ausführen, wenn Sie eine der unterstützten Verteilungen verwenden. Für unterstützte Verteilungen stellt Azure Marketplace vorkonfigurierte Linux-Images bereit. Weitere Informationen finden Sie unter:
Alle anderen Verteilungen, die auf Azure ausgeführt werden, einschließlich communitygestützter und nicht unterstützter Verteilungen, haben einige Voraussetzungen.
Der restliche Artikel enthält eine allgemeine Anleitung zum Ausführen Ihrer Linux-Distribution in Azure. In diesem Artikel können nicht alle Aspekte abgedeckt werden, da jede Distribution anders ist. Auch wenn alle in diesem Artikel beschriebenen Kriterien erfüllt sind, müssen Sie Ihr Linux-System unter Umständen noch erheblich anpassen, damit es ordnungsgemäß ausgeführt wird.
Allgemeine Installationshinweise für Linux
Azure unterstützt das virtuelle Hyper-V-Festplattenformat (VHDX) nicht. Azure unterstützt nur feste virtuelle Festplatten. Sie können den Datenträger mit dem Hyper-V-Manager oder dem Cmdlet Convert-VHD in das VHD-Format konvertieren. Wenn Sie VirtualBox verwenden, wählen Sie beim Erstellen des Datenträgers die Option Feste Größe aus, nicht die Standardeinstellung mit dynamischer Zuweisung.
Azure unterstützt virtuelle Computer der Gen1 (BIOS-Start) und Gen2 (UEFI-Start).
Das Kernelmodul für die virtuelle Dateizuordnungstabelle (VFAT) muss im Kernel aktiviert sein.
Die maximal zulässige Größe für die virtuelle Festplatte beträgt 1.023 GB.
Beim Installieren des Linux-Betriebssystems wird empfohlen, anstelle von Logical Volume Manager (LVM) Standardpartitionen zu verwenden. LVM ist der Standard für viele Installationen.
Mit Standardpartitionen lässt sich vermeiden, dass ein LVM-Namenskonflikt mit geklonten virtuellen Computern auftritt, besonders dann, wenn ein Betriebssystemdatenträger zu Fehlerbehebungszwecken an einen anderen identischen virtuellen Computer angefügt werden soll. Sie können LVM oder RAID auf Datenträgern verwenden.
Zum Einbinden von UDF-Dateisystemen ist Kernelunterstützung erforderlich. Beim ersten Start in Azure wird die Bereitstellungskonfiguration über UDF-formatierte Medien, die an den Gast angefügt sind, an den virtuellen Linux-Computer übergeben. Der Azure Linux-Agent muss das UDF-Dateisystem einbinden, um die Konfiguration zu lesen und die VM bereitzustellen.
Linux-Kernelversionen vor Version 2.6.37 unterstützen keinen NUMA (Non-Uniform Memory Access, nicht einheitlicher Speicherzugriff) auf Hyper-V mit größeren VM-Größen. Dieses Problem betrifft in erster Linie ältere Verteilungen, die den Red Hat 2.6.32-Upstream-Kernel verwenden. Es wurde in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504) behoben.
Systeme, auf denen benutzerdefinierte Kernel ausgeführt werden, die älter als 2.6.37 sind, bzw. RHEL-basierte Kernel, die älter als 2.6.32-504 sind, müssen in grub.conf in der Kernelbefehlszeile den Startparameter
numa=off
festlegen. Weitere Informationen finden Sie unter Red Hat KB 436883.Konfigurieren Sie keine Auslagerungspartition auf dem Betriebssystemdatenträger. Sie können den Linux-Agent zur Erstellung einer Auslagerungsdatei auf dem temporären Ressourcendatenträger konfigurieren, wie später in diesem Artikel beschrieben.
Alle VHDs in Azure benötigen eine virtuelle Größe, die auf 1 MB ausgerichtet ist (1024 x 1024 Bytes). Stellen Sie beim Konvertieren von einem RAW-Datenträger in VHD sicher, dass die Größe des RAW-Datenträgers vor der Konvertierung ein Vielfaches von 1 MB beträgt, wie später in diesem Artikel beschrieben.
Verwenden Sie die aktuellste Distributionsversion und Software sowie die neuesten Pakete.
Entfernen Sie Benutzer und Systemkonten, öffentliche Schlüssel, vertrauliche Daten, nicht erforderliche Software und Anwendungen.
Hinweis
Cloud-init-Version 21.2 oder höher entfernt die UDF-Anforderung. Aber ohne das aktivierte udf
-Modul wird die CD-ROM während der Bereitstellung nicht eingebunden, was verhindert, dass die benutzerdefinierten Daten angewendet werden. Eine Problemumgehung besteht darin, Benutzerdaten anzuwenden. Im Gegensatz zu benutzerdefinierten Daten werden Benutzerdaten jedoch nicht verschlüsselt. Weitere Informationen finden Sie unter Benutzerdatenformate in der cloud-init-Dokumentation.
Installieren von Kernelmodulen ohne Hyper-V
Azure wird auf dem Hyper-V-Hypervisor ausgeführt, weshalb Linux anfordert, dass bestimmte Kernelmodule in Azure ausgeführt werden. Wenn Sie über einen außerhalb von Hyper-V erstellten virtuellen Computer verfügen, enthalten Linux-Installationsprogramme möglicherweise keine Treiber für Hyper-V auf dem anfänglichen RAM-Datenträger („initrd“ oder „initramfs“), sofern auf dem virtuellen Computer nicht die Ausführung in einer Hyper-V-Umgebung erkannt wird.
Wenn ein anderes Virtualisierungssystem (z. B. Virtualbox oder KVM) zur Vorbereitung des Linux-Images verwendet wird, müssen Sie möglicherweise „initrd“ neu erstellen, um sicherzustellen, dass mindestens die Kernelmodule hv_vmbus
und hv_storvsc
auf dem anfänglichen RAM-Datenträger verfügbar sind. Dies ist ein bekanntes Problem auf Systemen, die auf der Red Hat-Upstreamdistribution basieren, und tritt möglicherweise auch auf anderen Systemen auf.
Der Mechanismus für die Neuerstellung des Images "initrd" oder "initramfs" kann je nach der Verteilung variieren. In der Dokumentation zur Distribution oder über den Support erhalten Sie Informationen zur geeigneten Vorgehensweise. Hier sehen Sie ein Beispiel für die Neuerstellung von „initrd“ mit dem Hilfsprogramm mkinitrd
:
Sichern Sie das bestehende Image „initrd“:
cd /boot sudo cp initrd-`uname -r`.img initrd-`uname -r`.img.bak
Erstellen Sie initrd mithilfe der
hv_vmbus
- undhv_storvsc
-Kernelmodule neu:sudo mkinitrd --preload=hv_storvsc --preload=hv_vmbus -v -f initrd-`uname -r`.img `uname -r`
Ändern der Größe von VHDs
VHD-Images in Azure benötigen eine virtuelle Größe, die auf 1 MB ausgerichtet ist. In der Regel sind mit Hyper-V erstellte virtuelle Festplatten bereits ordnungsgemäß ausgerichtet. Falls die virtuelle Festplatte nicht ordnungsgemäß ausgerichtet ist, wird möglicherweise eine Fehlermeldung wie im folgenden Beispiel angezeigt, wenn Sie versuchen, ein Image von der virtuellen Festplatte zu erstellen:
The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. The size must be a whole number (in MBs).
Ändern Sie in diesem Fall die Größe des virtuellen Computers über die Hyper-V-Manager-Konsole oder mit dem PowerShell-Cmdlet Resize-VHD. Wenn Sie nicht in einer Windows-Umgebung arbeiten, sollten Sie qemu-img
verwenden, um (falls erforderlich) die Konvertierung durchzuführen und die Größe der virtuellen Festplatte zu ändern.
Hinweis
Es gibt einen bekannten Fehler in den qemu-img für QEMU ab Version 2.2.1 und einigen späteren Versionen, der zu einer nicht ordnungsgemäßen Formatierung der virtuellen Festplatte führt. Dieses Problem wurde in QEMU 2.6 behoben. Wir empfehlen, die Version 2.2.0 oder früher oder die Version 2.6 oder höher zu verwenden.
Das direkte Ändern der Größe der virtuellen Festplatte mithilfe von Tools wie
qemu-img
odervbox-manage
kann dazu führen, dass die virtuelle Festplatte nicht startfähig ist. Es wird empfohlen, die virtuelle Festplatte zuerst mit dem folgenden Code in ein unformatiertes Datenträgerimage zu konvertieren.Wenn das VM-Image als Rohdatenträgerimage erstellt wurde, können Sie diesen Schritt überspringen. Das Erstellen des VM-Images als rohes Datenträgerimage ist die Standardeinstellung in einigen Hypervisoren, z. B. MIME.
sudo qemu-img convert -f vpc -O raw MyLinuxVM.vhd MyLinuxVM.raw
Berechnen Sie die erforderliche Größe des Datenträgerimages, sodass die virtuelle Größe auf 1 MB ausgerichtet ist. Das folgende Bash-Shell-Skript verwendet
qemu-img info
, um die virtuelle Größe des Datenträgerimages zu ermitteln, und berechnet dann die Größe bis zum nächsten MB-Wert:rawdisk="MyLinuxVM.raw" vhddisk="MyLinuxVM.vhd" MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "$rawdisk" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$(((($size+$MB-1)/$MB)*$MB)) echo "Rounded Size = $rounded_size"
Ändern Sie die Größe des rohen Datenträgers mithilfe von
$rounded_size
:sudo qemu-img resize MyLinuxVM.raw $rounded_size
Konvertieren Sie den unformatierten Datenträger zurück in eine virtuelle Festplatte mit fester Größe.
sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc MyLinuxVM.raw MyLinuxVM.vhd
Oder entfernen Sie mit QEMU-Versionen vor Version 2.6 die
force_size
-Option:sudo qemu-img convert -f raw -o subformat=fixed -O vpc MyLinuxVM.raw MyLinuxVM.vhd
Linux-Kernelanforderungen
Die Treiber für die Linux-Integrationsdienste (Linux Integration Services, LIS) für Hyper-V und Azure tragen direkt zum Linux-Upstream-Kernel bei. Viele Distributionen, die eine neue Linux-Kernelversion (z.B. 3.x) enthalten, verfügen bereits über diese Treiber oder bieten andernfalls zurückportierte Versionen dieser Treiber mit ihren Kernels.
LIS-Treiber werden ständig im Upstream-Kernel mit neuen Fixes und Features aktualisiert. Wenn möglich, empfehlen wir, eine unterstützte Distribution auszuführen, die diese Fixes und Updates enthält.
Wenn Sie eine Variante der RHEL-Versionen 6.0 bis 6.3 ausführen, müssen Sie die neuesten LIS-Treiber für Hyper-V installieren. Ab RHEL 6.4+ (und Ableitungen) sind die LIS-Treiber bereits im Kernel enthalten, sodass Sie keine zusätzlichen Installationspakete benötigen.
Wenn ein benutzerdefinierter Kernel erforderlich ist, empfiehlt es sich, eine neue Kernelversion (z.B. 3.8+) zu verwenden. Bei Distributionen oder Anbietern, die ihren Kernel selbst verwalten, müssen Sie die LIS-Treiber regelmäßig vom Upstreamkernel zu Ihrem benutzerdefinierten Kernel zurückportieren.
Selbst wenn Sie bereits eine relativ aktuelle Kernelversion ausführen, wird dringend empfohlen, die Upstreamfehlerbehebungen in den LIS-Treibern nachzuverfolgen und diese bei Bedarf zurückzuportieren. Die Speicherorte der LIS-Treiberquelldateien sind in der Datei MAINTAINERS in der Linux-Kernelquellstruktur angegeben:
F: arch/x86/include/asm/mshyperv.h
F: arch/x86/include/uapi/asm/hyperv.h
F: arch/x86/kernel/cpu/mshyperv.c
F: drivers/hid/hid-hyperv.c
F: drivers/hv/
F: drivers/input/serio/hyperv-keyboard.c
F: drivers/net/hyperv/
F: drivers/scsi/storvsc_drv.c
F: drivers/video/fbdev/hyperv_fb.c
F: include/linux/hyperv.h
F: tools/hv/
Der aktive Kernel des virtuellen Computers muss die folgenden Patches enthalten. Diese Liste kann nicht alle Distributionen vollständig abdecken.
- ata_piix: defer disks to the Hyper-V drivers by default (Standardmäßiges Zurückstellen von Datenträgern zu Hyper-V-Treibern)
- storvsc: Account for in-transit packets in the RESET path (Konto für Pakete auf dem Transportweg im RESET-Pfad)
- storvsc: avoid usage of WRITE_SAME (Vermeiden der Verwendung von WRITE_SAME
- storvsc: Disable WRITE SAME for RAID and virtual host adapter drivers (Deaktivieren von WRITE SAME für RAID und virtuelle Hostadaptertreiber)
- storvsc: NULL pointer dereference fix (Beheben der NULL-Zeigerdereferenzierung)
- storvsc: ring buffer failures may result in I/O freeze (Einfrieren von E/A durch Ringpufferfehler, in englischer Sprache)
- scsi_sysfs: protect against double execution of __scsi_remove_device (Schutz gegen doppelte Ausführung von „__scsi_remove_device“)
Azure Linux-Agents
Der Azure-Linux-Agent (waagent
) stellt einen virtuellen Linux-Computer in Azure bereit. Im GitHub-Repository für Linux-Agents können Sie die neueste Version abrufen, Probleme melden oder Pull Requests senden.
Nachfolgend finden Sie einige Überlegungen zur Verwendung des Azure Linux-Agenten:
- Der Linux-Agent wird unter der Apache 2.0-Lizenz veröffentlicht. Viele Distributionen stellen bereits RPM- oder DEB-Pakete für den Agent bereit. Sie können diese Pakete ganz einfach installieren und aktualisieren.
- Für den Azure Linux-Agent ist Python v2.6+ erforderlich.
- Für den Agent ist zudem das Modul
python-pyasn1
erforderlich. Die meisten Distributionen stellen dieses Modul als separates Paket für die Installation bereit. - In einigen Fällen ist der Azure-Linux-Agent möglicherweise nicht mit NetworkManager kompatibel. Viele der von Distributionen bereitgestellten Pakete (.rpm oder .deb) konfigurieren NetworkManager – dies führt zu einem Konflikt mit dem
waagent
-Paket. In diesen Fällen deinstalliert der Agent NetworkManager, wenn Sie das Linux-Agent-Paket installieren. - Der Azure-Linux-Agent muss mindestens die unterstützte Mindestversion aufweisen.
Hinweis
Stellen Sie sicher, dass die Module udf
und vfat
aktiviert sind. Das Deaktivieren des udf
-Moduls führt zu einem Bereitstellungsfehler. Das Deaktivieren des vfat
-Moduls führt sowohl zu einem Bereitstellungs- als auch zu einem Startfehler. Cloud-init-Version 21.2 oder höher kann VMs bereitstellen, ohne dass UDF erforderlich ist, wenn beide Bedingungen vorhanden sind:
- Sie haben den virtuellen Computer mithilfe von öffentlichen SSH-Schlüsseln und nicht mit Kennwörtern erstellt.
- Sie haben keine benutzerdefinierten Daten bereitgestellt.
Allgemeine Linux-Systemanforderungen
Ändern Sie die Zeile für den Kernelstart in GRUB oder GRUB2 so, dass die folgenden Parameter eingeschlossen werden. Auf diese Weise werden alle Konsolennachrichten an den ersten seriellen Port gesendet. Diese Nachrichten helfen dem Azure-Supportteam beim Debuggen von Problemen.
GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
Wir empfehlen zudem, die folgenden Parameter zu entfernen, sofern sie vorhanden sind:
rhgb quiet crashkernel=auto
Weder grafische Startvorgänge noch Startvorgänge im stillen Modus sind in einer Cloudumgebung nützlich, in der alle Protokolle an den seriellen Port gesendet werden sollen. Sie können die Option
crashkernel
bei Bedarf konfiguriert lassen, aber dieser Parameter reduziert den verfügbaren Arbeitsspeicher auf dem virtuellen Computer um mindestens 128 MB. Das Verringern des verfügbaren Arbeitsspeichers kann für kleinere VM-Größen problematisch sein.Nachdem Sie die Bearbeitung von /etc/default/grub abgeschlossen haben, führen Sie den folgenden Befehl zum erneuten Erstellen der GRUB-Konfiguration aus:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Fügen Sie das Hyper-V-Modul für initramfs mithilfe von
dracut
hinzu:cd /boot sudo cp initramfs-<kernel-version>.img <kernel-version>.img.bak sudo dracut -f -v initramfs-<kernel-version>.img <kernel-version> --add-drivers "hv_vmbus hv_netvsc hv_storvsc" sudo grub-mkconfig -o /boot/grub/grub.cfg sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Fügen Sie das Hyper-V-Modul für initrd mithilfe von
mkinitramfs
hinzu:cd /boot sudo cp initrd.img-<kernel-version> initrd.img-<kernel-version>.bak sudo mkinitramfs -o initrd.img-<kernel-version> <kernel-version> --with=hv_vmbus,hv_netvsc,hv_storvsc sudo update-grub
Stellen Sie sicher, dass der SSH-Server installiert und konfiguriert ist, damit er beim Booten hochfährt. Dies ist in der Regel die Standardkonfiguration.
Installieren des Azure Linux Agent:
Der Azure Linux-Agent ist für das Bereitstellen eines Linux-Images auf Azure erforderlich. Viele Distributionen stellen den Agent als RPM- oder DEB-Paket bereit. Das Paket wird in der Regel als
WALinuxAgent
oderwalinuxagent
bezeichnet. Sie können den Agent zudem manuell installieren, indem die folgenden Schritte im Azure Linux Agent Guide eingehalten werden.Hinweis
Stellen Sie sicher, dass die Module
udf
undvfat
aktiviert sind. Durch das Entfernen oder Deaktivieren wird ein Bereitstellungs- oder Startfehler verursacht. Cloud-init-Version 21.2 oder höher entfernt die UDF-Anforderung.Installieren Sie den Azure Linux Agent, cloud-init und andere notwendige Hilfsprogramme, indem Sie einen der folgenden Befehl ausführen.
Verwenden Sie diesen Befehl für Red Hat oder CentOS:
sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons
Verwenden Sie diesen Befehl für Ubuntu/Debian:
sudo apt install walinuxagent cloud-init cloud-utils-growpart gdisk hyperv-daemons
Verwenden Sie diesen Befehl für SUSE:
sudo zypper install python-azure-agent cloud-init cloud-utils-growpart gdisk hyperv-daemons
Aktivieren Sie dann den Agent und cloud-init für alle Distributionen:
sudo systemctl enable waagent.service sudo systemctl enable cloud-init.service
Erstellen Sie keinen Auslagerungsbereich auf dem Betriebssystemdatenträger.
Sie können den Azure Linux-Agent oder cloud-init verwenden, um den Auslagerungsspeicher mithilfe des lokalen Ressourcendatenträgers zu konfigurieren. Dieser Ressourcendatenträger wird nach der Bereitstellung in Azure an den virtuellen Computer angefügt. Der lokale Ressourcendatenträger ist ein temporärer Datenträger und kann geleert werden, wenn die Bereitstellung des virtuellen Computers aufgehoben wird. In den folgenden Blöcken wird gezeigt, wie diese Auslagerung konfiguriert wird.
Wenn Sie den Azure-Linux-Agent ausgewählt haben, ändern Sie die folgenden Parameter in /etc/waagent.conf:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: Set this to your desired size.
Wenn Sie cloud-init ausgewählt haben, konfigurieren Sie cloud-init zum Behandeln der Bereitstellung:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Zum Konfigurieren von cloud-init zum Formatieren und Erstellen des Auslagerungsbereichs haben Sie zwei Optionen:
- Übergeben Sie eine cloud-init-Konfiguration, wenn Sie eine VM über
customdata
erstellen. Diese Methode wird empfohlen. - Verwenden Sie eine cloud-init-Direktive im Image, um jedes Mal einen Auslagerungsbereich zu konfigurieren, wenn die VM erstellt wird.
Erstellen Sie eine CFG-Datei, um den Auslagerungsbereich mit cloud-init zu konfigurieren:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' | sudo tee -a /etc/systemd/system.conf cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
- Übergeben Sie eine cloud-init-Konfiguration, wenn Sie eine VM über
Konfigurieren von cloud-init zum Behandeln der Bereitstellung:
Konfigurieren von
waagent
für cloud-init:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.conf
Wenn Sie eine bestimmte VM migrieren und kein generalisiertes Image erstellen möchten, legen sie
Provisioning.Agent=disabled
in der /etc/waagent.conf-Konfiguration fest.Konfigurieren der Einbindungen:
echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfg
Konfigurieren Sie die Azure-Datenquelle:
echo "Allow only Azure datasource, disable fetching network setting via IMDS" cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOF
Entfernen Sie die vorhandene Auslagerungsdatei, wenn Sie eine konfiguriert haben:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swap file by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fi
Konfigurieren der cloud-init-Protokollierung:
echo "Add console log file" cat << EOF | sudo tee -a /etc/cloud/cloud.cfg.d/05_logging.cfg # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Führen Sie die folgenden Befehle aus, um die Bereitstellung des virtuellen Computers aufzuheben.
Achtung
Wenn Sie eine bestimmte VM migrieren und kein generalisiertes Image erstellen möchten, überspringen Sie den Schritt zum Aufheben der Bereitstellung. Durch Ausführen des Befehls
waagent -force -deprovision+user
wird der Quellcomputer unbrauchbar. Dieser Schritt soll nur ein generalisiertes Image erstellen.sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0
In VirtualBox wird möglicherweise eine Fehlermeldung angezeigt, nachdem Sie
waagent -force -deprovision
ausgeführt haben, die Folgendes besagt:[Errno 5] Input/output error
. Diese Fehlermeldung ist nicht kritisch, und Sie können sie ignorieren.Fahren Sie den virtuellen Computer herunter, und laden Sie die virtuelle Festplatte in Azure hoch.