Vorbereiten von Linux für die Imageerstellung in Azure

Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen

Der Azure Service Level Agreement (SLA) der Plattform gilt nur für virtuelle Computer (VMs), die das Linux-Betriebssystem ausführen, wenn Sie eine der unterstützten Distributionen verwenden. Für unterstützte Verteilungen stellt Azure Marketplace vorkonfigurierte Linux-Images bereit. Weitere Informationen findest du unter:

Für alle anderen Distributionen, die auf Azure ausgeführt werden, einschließlich von der Community unterstützter und nicht empfohlener Distributionen, gelten einige Voraussetzungen.

Dieser Artikel konzentriert sich auf allgemeine Anleitungen für die Ausführung Ihrer Linux-Verteilung auf Azure. Dieser Artikel kann nicht umfassend sein, da jede Verteilung anders ist. Auch wenn Sie alle in diesem Artikel beschriebenen Kriterien erfüllen, müssen Sie ihr Linux-System möglicherweise erheblich optimieren, damit es ordnungsgemäß ausgeführt wird.

Allgemeine Linux-Installationshinweise

  • Azure unterstützt das Hyper-V virtuellen Festplattenformat (VHDX) nicht. Azure unterstützt nur feste virtuelle Festplatten. Sie können den Datenträger in das VHD-Format konvertieren, indem Sie Hyper-V Manager oder das Cmdlet Convert-VHD verwenden. Wenn Sie VirtualBox verwenden, wählen Sie beim Erstellen des Datenträgers die Option "Feste Größe" anstelle der Standardgröße (dynamisch zugewiesen) aus.

  • Azure unterstützt virtuelle Gen1-Computer (BIOS-Start) und Gen2 (UEFI-Start).

  • Das Kernelmodul für die virtuelle Dateizuordnungstabelle (VFAT) muss im Kernel aktiviert sein.

  • Die für die VHD zulässige maximale Größe beträgt 1.023 GB.

  • Wenn Sie das Linux-System installieren, empfehlen wir, Standardpartitionen anstelle von Logical Volume Manager (LVM) zu verwenden. LVM ist die Standardeinstellung für viele Installationen.

    Durch die Verwendung von Standardpartitionen werden LVM-Namenskonflikte mit geklonten VMs vermieden, insbesondere, wenn ein Betriebssystemdatenträger jemals an eine andere identische VM zur Problembehandlung angefügt ist. Sie können LVM oder RAID auf Datenträgern verwenden.

  • Kernelunterstützung für das Einbinden von benutzerdefinierten Funktionsdateisystemen (User-Defined Function, UDF) ist erforderlich. Beim ersten Start auf Azure wird die Bereitstellungskonfiguration über UDF-formatierte Medien, die an den Gast angefügt sind, an die Linux-VM übergeben. Der Azure Linux-Agent muss das UDF-Dateisystem bereitstellen, um seine Konfiguration zu lesen und die VM bereitzustellen.

  • Linux-Kernelversionen vor 2.6.37 unterstützen keinen nicht uniformen Speicherzugriff (NON-Uniform Memory Access, NUMA) auf Hyper-V mit größeren VM-Größen. Dieses Problem betrifft in erster Linie ältere Distributionen, die den upstream-Red Hat 2.6.32-Kernel verwenden. Es wurde in Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504) behoben.

    Systeme mit benutzerdefinierten Kerneln, die älter als 2.6.37 sind, oder RHEL-basierte Kernel, die älter als 2.6.32-504 sind, müssen den Startparameter numa=off in der Kernel-Befehlszeile in grub.conf festlegen. Weitere Informationen finden Sie unter Red Hat KB 436883.

  • Konfigurieren Sie keine Auslagerungspartition auf dem Betriebssystemdatenträger. Sie können den Linux-Agent so konfigurieren, dass eine Swapdatei auf dem temporären Ressourcendatenträger erstellt wird, wie weiter unten in diesem Artikel beschrieben.

  • Alle VHDs auf Azure müssen eine virtuelle Größe aufweisen, die auf 1 MB ausgerichtet ist (1024 x 1024 Byte). Stellen Sie beim Konvertieren von einem Rohdatenträger in VHD sicher, dass die Rohdatenträgergröße vor der Konvertierung ein Vielfaches von 1 MB ist, wie weiter unten in diesem Artikel beschrieben.

  • Verwenden Sie die neuesten Versionen der Distribution, der Pakete und der Software.

  • Entfernen Sie Benutzer und Systemkonten, öffentliche Schlüssel, vertrauliche Daten, unnötige Software und Anwendungen.

Note

Cloud-init Version 21.2 oder höher entfernt die UDF-Anforderung. Aber ohne das aktivierte udf-Modul wird die CD-ROM während des Provisionings nicht eingebunden, wodurch die benutzerdefinierten Daten nicht angewendet werden können. Eine Problemumgehung besteht darin, Benutzerdaten anzuwenden. Im Gegensatz zu benutzerdefinierten Daten werden Benutzerdaten jedoch nicht verschlüsselt. Weitere Informationen finden Sie in der Cloud-init-Dokumentation unter Benutzerdatenformate .

Installieren von Kernelmodulen ohne Hyper-V

Azure läuft auf dem Hyper-V-Hypervisor, daher benötigt Linux bestimmte Kernelmodule, um in Azure ausgeführt zu werden. Wenn Sie über einen virtuellen Computer verfügen, der außerhalb Hyper-V erstellt wurde, enthalten die Linux-Installationsprogramme möglicherweise nicht die Treiber für Hyper-V in der ersten RAM-Festplatte (initrd oder initramfs), es sei denn, die VM erkennt, dass sie in einer Hyper-V Umgebung ausgeführt wird.

Wenn Sie ein anderes Virtualisierungssystem (z. B. VirtualBox oder KVM) zur Vorbereitung Ihres Linux-Images verwenden, müssen Sie initrd möglicherweise neu erstellen, damit mindestens die hv_vmbus- und hv_storvsc-Kernelmodule in der initialen RAM-Disk verfügbar sind. Dieses bekannte Problem betrifft Systeme, die auf der Upstream-Distribution von Red Hat basieren, und möglicherweise auch andere.

Der Mechanismus zum Neuerstellen des Initrd- oder Initramfs-Bilds kann je nach 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:

  1. Sichern Sie das vorhandene initrd-Bild:

    cd /boot
    sudo cp initrd-`uname -r`.img  initrd-`uname -r`.img.bak
    
  2. Erstellen Sie die initrd mithilfe der Kernelmodule hv_vmbus und hv_storvsc 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 müssen eine virtuelle Größe haben, die an 1 MB ausgerichtet ist. Normalerweise werden VHDs, die über Hyper-V erstellt wurden, korrekt ausgerichtet. Wenn die VHD nicht ordnungsgemäß ausgerichtet ist, wird möglicherweise eine Fehlermeldung wie im folgenden Beispiel angezeigt, wenn Sie versuchen, ein Bild aus Ihrer VHD 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 mithilfe der Hyper-V-Manager-Konsole oder des PowerShell-Cmdlets "Resize-VHD ". Wenn Sie nicht in einer Windows-Umgebung arbeiten, empfehlen wir die Verwendung von qemu-img, um die VHD zu konvertieren (falls erforderlich) und ihre Größe zu ändern.

Note

Es gibt einen bekannten Fehler in qemu-img für QEMU Version 2.2.1 und einige neuere Versionen, die zu einer nicht ordnungsgemäß formatierten VHD führen. Das Problem wurde in QEMU 2.6 behoben. Es wird empfohlen, Version 2.2.0 oder höher oder Version 2.6 oder höher zu verwenden.

  1. Das direkte Ändern der Größe der virtuellen Festplatte mithilfe von Tools wie qemu-img oder vbox-manage kann dazu führen, dass die virtuelle Festplatte nicht startfähig ist. Es wird empfohlen, zuerst die VHD in ein Rohdatenträgerimage mithilfe des folgenden Codes zu konvertieren.

    Wenn das VM-Image als Rohdatenträgerimage erstellt wurde, können Sie diesen Schritt überspringen. Das Erstellen des VM-Images als Rohdatenträgerabbild ist bei einigen Hypervisoren, etwa KVM, die Standardeinstellung.

    sudo qemu-img convert -f vpc -O raw MyLinuxVM.vhd MyLinuxVM.raw
    
  2. Berechnen Sie die erforderliche Größe des Festplatten-Images, so dass die virtuelle Größe an 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"
    
  3. Ändern Sie die Größe des Rohdatenträgers mithilfe von $rounded_size:

    sudo qemu-img resize MyLinuxVM.raw $rounded_size
    
  4. Konvertieren Sie den Rohdatenträger wieder in eine VHD 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 2.6 die force_size Option:

    sudo qemu-img convert -f raw -o subformat=fixed -O vpc MyLinuxVM.raw MyLinuxVM.vhd
    

Linux-Kernelanforderungen

Die LiS-Treiber (Linux Integration Services) für Hyper-V und Azure werden direkt zum upstream Linux-Kernel beigetragen. Viele Distributionen, die eine aktuelle Linux-Kernelversion enthalten (z. B. 3.x), verfügen bereits über diese Treiber oder stellen auf andere Weise backportierte Versionen dieser Treiber mit ihren Kerneln bereit.

LIS-Treiber werden ständig im Upstream-Kernel mit neuen Fixes und Features aktualisiert. Wenn möglich, empfehlen wir, eine genehmigte Verteilung auszuführen, die diese Fixes und Updates enthält.

Wenn Sie eine Variante von 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, daher benötigen Sie keine zusätzlichen Installationspakete.

Wenn ein benutzerdefinierter Kernel erforderlich ist, empfehlen wir eine aktuelle Kernelversion (z. B. 3.8+). Für Verteilungen oder Anbieter, die ihren eigenen Kernel verwalten, müssen Sie die LIS-Treiber regelmäßig vom Upstream-Kernel in Ihren benutzerdefinierten Kernel zurückportieren.

Selbst wenn Sie bereits eine relativ aktuelle Kernelversion ausführen, empfehlen wir dringend, alle Upstream-Fixes in den LIS-Treibern nach Bedarf nachzuverfolgen und zu portieren. Die Speicherorte der LIS-Treiberquelldateien werden in der MAINTAINERS-Datei 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 für alle Distributionen vollständig sein.

Azure Linux-Agent

Der Azure Linux-Agent (waagent) stellt einen virtuellen Linux-Computer in Azure bereit. Sie können die neueste Version abrufen, Probleme melden oder Pullanforderungen an den Linux-Agent GitHub Repository übermitteln.

Im Folgenden finden Sie einige Überlegungen zur Verwendung des Azure Linux-Agents:

  • 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.
  • Der Azure Linux-Agent erfordert Python v2.6+.
  • Der Agent erfordert auch das python-pyasn1 Modul. Die meisten Verteilungen stellen dieses Modul als separates Paket bereit, das installiert werden soll.
  • In einigen Fällen ist der Azure Linux-Agent möglicherweise nicht mit NetworkManager kompatibel. Viele der von Distributionen bereitgestellten Pakete (.rpm oder .deb) deklarieren NetworkManager als in Konflikt mit dem Paket waagent. In diesen Fällen deinstalliert der Agent NetworkManager, wenn Sie das Linux-Agent-Paket installieren.
  • Der Azure Linux-Agent muss in der mindestens unterstützten Version oder höher sein.

Note

Stellen Sie sicher, dass die Module udf und vfat aktiviert sind. Durch das Deaktivieren des udf Moduls tritt ein Bereitstellungsfehler auf. Durch das Deaktivieren des vfat Moduls treten sowohl Bereitstellungs- als auch Startfehler auf. 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

  1. Ä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"
    

    Es wird auch empfohlen, die folgenden Parameter zu entfernen , falls vorhanden:

    rhgb quiet crashkernel=auto
    

    Der grafische und ruhige Start ist in einer Cloudumgebung nicht hilfreich, in der alle Protokolle an den seriellen Port gesendet werden sollen. Sie können die crashkernel Option bei Bedarf konfigurieren, 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.

  2. Nachdem Sie die Bearbeitung /etc/default/grub abgeschlossen haben, führen Sie den folgenden Befehl aus, um die GRUB-Konfiguration neu zu erstellen:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  3. Fügen Sie das Hyper-V-Modul für initramfs mit 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 modul Hyper-V für initrd hinzu, indem Sie Folgendes verwenden mkinitramfs:

    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
    
  4. Stellen Sie sicher, dass der SSH-Server installiert und konfiguriert ist, damit er beim Booten hochfährt. Diese Konfiguration ist in der Regel die Standardeinstellung.

  5. Installieren Sie den Azure Linux-Agent.

    Der Azure Linux-Agent ist für die Bereitstellung eines Linux-Images auf Azure erforderlich. Viele Verteilungen stellen den Agent als .rpm- oder .deb-Paket bereit. Das Paket wird in der Regel WALinuxAgent oder walinuxagent genannt. Sie können den Agent auch manuell installieren, indem Sie die Schritte im Handbuch zum Azure Linux-Agent ausführen.

    Note

    Stellen Sie sicher, dass die Module udf und vfat aktiviert sind. Das Entfernen oder Deaktivieren führt zu einem Bereitstellungs- oder Startfehler. Cloud-init Version 21.2 oder höher entfernt die UDF-Anforderung.

    Installieren Sie den Azure Linux-Agent, cloudinit und andere erforderliche Dienstprogramme, indem Sie einen der folgenden Befehle 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 die Cloud-Init für alle Verteilungen:

    sudo systemctl enable waagent.service
    sudo systemctl enable cloud-init.service
    
  6. Erstellen Sie keinen Auslagerungsbereich auf dem Betriebssystemdatenträger.

    Sie können den Azure Linux-Agent oder cloudinit verwenden, um Swapspace über den lokalen Ressourcendatenträger zu konfigurieren. Dieser Ressourcendatenträger ist nach der Bereitstellung auf Azure an die VM angefügt. Der lokale Ressourcendatenträger ist ein temporärer Datenträger und wird möglicherweise geleert, wenn die Bereitstellung des virtuellen Computers aufgehoben wird. Die folgenden Blöcke zeigen, wie Sie diesen Swap konfigurieren.

    Wenn Sie Azure Linux-Agent auswählen, ä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 auswählen, konfigurieren Sie cloud-init so, dass es die Bereitstellung übernimmt:

    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 von Swapspace haben Sie zwei Optionen:

    • Übergeben Sie eine cloud-init-Konfiguration, wenn Sie eine VM über customdata erstellen. Diese Methode wird empfohlen.
    • Verwenden Sie im Image eine cloud-init-Direktive, um jedes Mal, wenn die VM erstellt wird, den Swap-Speicher zu konfigurieren.

    Erstellen Sie eine CFG-Datei zum Konfigurieren von Swapspace mithilfe von cloud-init:

    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
    
  7. Konfigurieren Sie cloud-init für die Bereitstellung:

    1. waagent für cloud-init konfigurieren:

      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 virtuelle Maschine migrieren und kein generalisiertes Image erstellen möchten, legen Sie Provisioning.Agent=disabled in der Konfiguration /etc/waagent.conf fest.

    2. 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
      
      
    3. 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
      
    4. 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
      
    5. 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
      
  8. Führen Sie die folgenden Befehle aus, um die Bereitstellung des virtuellen Computers zu aufheben.

    Vorsicht

    Wenn Sie eine bestimmte virtuelle Maschine migrieren und kein generalisiertes Image erstellen möchten, überspringen Sie den Schritt zur Aufhebung der Bereitstellung. Wenn Sie den Befehl waagent -force -deprovision+user ausführen, wird der Quellcomputer nicht verwendbar gerendert. 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 nach dem Ausführen von waagent -force -deprovision möglicherweise eine Fehlermeldung mit folgendem Inhalt angezeigt: [Errno 5] Input/output error. Diese Fehlermeldung ist nicht kritisch, und Sie können sie ignorieren.

  9. Beenden Sie den virtuellen Computer, und laden Sie die VHD in Azure hoch.

Nächste Schritte

Erstellen einer Linux-VM von einem benutzerdefinierten Datenträger mithilfe der Azure CLI