Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✔️ Virtuella Linux-datorer
Azure körs på Hyper-V-hypervisor-programmet och Linux-system kräver att vissa Hyper-V-kernelmoduler körs på Azure. Dessa kernelmoduler paketeras i LIS-drivrutinerna (Linux Integration Services) för Hyper-V och Azure. Microsoft bidrar direkt till den överordnade Linux-kerneln.
I den här artikeln beskrivs flera villkor där en eller flera inaktiverade Hyper-V-drivrutiner kan leda till start- och nätverksproblem för virtuella Linux-datorer.
Förutsättningar
Kontrollera att seriekonsolen är aktiverad och funktionell på den virtuella Linux-datorn.
Så här identifierar du problem med Hyper-V-drivrutin som saknas
Om du vill ta reda på om den virtuella datorn inte kan starta på grund av saknade Hyper-V-drivrutiner använder du Azure CLI eller Azure Portal för att visa seriekonsolloggen för den virtuella datorn i startdiagnostikfönstret eller seriekonsolfönstret. Exempelutdata från fel visas i motsvarande avsnitt nedan.
Innan du felsöker
Felsöka scenario 1: Nätverksdrivrutinen Hyper-V är inaktiverad och scenario 2: MAC-adressen (NIC Media Access Control) ändras eller matchar inte, du behöver seriekonsolåtkomst för din virtuella Linux-dator.
Om du inte har åtkomst till seriekonsolen följer du offlinemetoden för att komma åt innehållet på den problematiska OS-disken från en virtuell räddningsdator. Åtkomst till Azure CLI eller Azure Cloud Shell krävs för offlinemetoden.
För att felsöka scenario 3: Andra Hyper-V-drivrutiner är inaktiverade är offlinemetoden det enda alternativet för att lösa problemet.
Scenario 1: Hyper-V-drivrutinen för nätverket är inaktiverad
Eftersom nätverkstjänsterna inte är tillgängliga kan du inte skydda Shell Protocol (SSH) på en virtuell dator, men du kan fortfarande logga in via seriekonsolen från Azure Portal. Du ser följande typer av fel i seriekonsolen eller den senaste serieloggen i fönstret Startdiagnostik i Azure Portal:
 cloud-init[807]: Cloud-init v. 19.4 running 'init-local' at Tue, xx Aug 20XX 20:41:53 +0000. Up 5.83 seconds.
 cloud-init[807]: 20XX-08-XX 20:41:54,231 - stages.py[WARNING]: Failed to rename devices: [nic not present] Cannot rename mac=xx:xx:xx:xx:xx:xx to eth0, not available.
[  OK  ] Started Initial cloud-init job (pre-networking).
----
[FAILED] Failed to start LSB: Bring up/down networking.
See 'systemctl status network.service' for details.
Eller
 cloud-init[799]: 2022-XX-XX 19:04:06,267 - azure.py[WARNING]: Interface not found for DHCP
 cloud-init[799]: 2022-XX-XX 19:04:07,269 - azure.py[WARNING]: Interface not found for DHCP
 cloud-init[799]: 2022-XX-XX 19:04:10,274 - azure.py[WARNING]: Interface not found for DHCP
 cloud-init[799]: 2022-XX-2XX 19:04:10,277 - azure.py[WARNING]: IMDS network metadata has incomplete configuration: None
Lösning 1: Aktivera Hyper-V-nätverksdrivrutin med seriekonsol
Få åtkomst till den virtuella datorns seriekonsol. Nätverken är nere, men inloggningsprompten är fortfarande tillgänglig.
Logga in på den virtuella datorn med rätt autentiseringsuppgifter.
Växla till rotkontot eller användarkontot med sudo-åtkomst.
Gå till katalogen /etc/modprobe.d och leta efter alla rader som inaktiverar hv_netvsc drivrutinen.
Identifiera filen som inaktiverar hv_netvsc drivrutinen och motsvarande radnummer genom att köra följande kommando:
sudo grep -nr "hv_netvsc" /etc/modprobe.d/Ändra motsvarande fil och kommentera ut eller ta bort hv_netvsc poster:
              
              
            
sudo vi /etc/modprobe.d/disable.confKommentar
- Posterna som inaktiverar drivrutiner definieras av Linux-operativsystemet, inte av Microsoft.
 - Ersätt 
disable.confmed motsvarande filnamn där drivrutinen för hv_netvsc är inaktiverad. 
Återskapa den första RAMdisk-avbildningen för den aktuella inlästa kerneln:
För RHEL/SLES-baserade bilder
sudo dracut -f -vFör Ubuntu/Debian-baserade bilder
sudo mkinitramfs -k -o /boot/initrd.img-$(uname -r)
Starta om den virtuella datorn.
Ta alltid en säkerhetskopia av den ursprungliga ursprungliga RAMdisk-avbildningen för att underlätta återställningen när det behövs.
För RHEL-baserade bilder:
sudo cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bakFör SLES-baserade bilder:
sudo cp /boot/initrd-<kernelVersion> /boot/initrd-<kernelVersion>.bakFör Ubuntu/Debian-baserade bilder:
sudo cp /boot/initrd.img-<kernelVersion> /boot/initrd.img-<kernelVersion>.bak
Lösning 2: Aktivera Hyper-V-nätverksdrivrutin offline
Använd az vm repair för att komma åt innehållet på den berörda OS-disken från en virtuell räddningsdator.
Montera och chroot till filsystemen på den anslutna OS-disken på den virtuella räddningsdatorn genom att följa chroot-instruktionerna.
När innehållet på den berörda OS-disken har använts följer du steg 4 och 5 i lösning 1: Aktivera Hyper-V-nätverksdrivrutin med seriekonsolen för att återaktivera drivrutinerna och återskapa den första RAMdisk-avbildningen.
Innan den första RAMdisk-avbildningen återskapas växlar du till chroot-miljön. Den fullständiga sökvägen till avbildningen måste anges.
När ändringarna har tillämpats utför du en automatisk växling av OS-diskar med den ursprungliga virtuella datorn och startar om systemet med hjälp
az vm repair restoreav kommandot .
Scenario 2: MAC-adressen (NIC Media Access Control) ändras eller matchar inte
Om MAC-adressen för nätverksgränssnittskortet ändras eller inte matchar i OS-konfigurationen kan du inte SSH till den virtuella datorn eftersom nätverkstjänster inte är tillgängliga. Du kan fortfarande logga in via seriekonsolen från Azure Portal. Fel som liknar dem i scenario 1: Nätverks-Hyper-V-drivrutinen är inaktiverad visas.
Om problemet kvarstår trots att Hyper-V-nätverksdrivrutinen är aktiverad använder du någon av följande lösningar för att verifiera OS NIC-konfigurationen och lösa problemet.
Lösning 1: Åtgärda NIC MAC-adressmatchningsfel med seriekonsol
Få åtkomst till den virtuella datorns seriekonsol. Nätverken är nere, men inloggningsprompten är fortfarande tillgänglig.
Logga in på den virtuella datorn med rätt autentiseringsuppgifter.
Växla till rotkontot eller användarkontot med sudo-åtkomst.
Gå till katalogen /etc/cloud/cloud.cfg.d .
Med tanke på att Linux-partnerbilder används öppnar och redigerar du följande filer:
- 91-azure_datasource.cfg för RHEL-baserad distribution.
 - 90_dpkg.cfg för Debian- och Ubuntu-baserad distribution.
 
Om parametern
apply_network_configär inställd på false anger du den till true. Om inget anges anges standardvärdet till true. Den här inställningen säkerställer att den nya MAC-adressen tillämpas på nätverkskonfigurationen vid nästa omstart.I allmänhet skulle en NIC MAC-adress bara ändras om ett nätverkskort tas bort eller läggs till av administratören eller ett nätverkskort uppdateras i serverdelen. Om nätverkskonfiguration via cloud-init inte önskas och parametern
apply_network_configmåste anges till false tar du bort filen /var/lib/cloud/instance/obj.pkl och startar om systemet.sudo rm /var/lib/cloud/instance/obj.pklNär ändringarna har tillämpats startar du om systemet.
Lösning 2: Åtgärda NIC MAC-adressmatchning offline
- Använd kommandot az vm repair för att komma åt innehållet på den berörda OS-disken från en virtuell räddningsdator.
 - Montera och chroot till filsystemen på den anslutna OS-disken på en virtuell räddningsdator korrekt genom att följa chroot-instruktionerna.
 - När innehållet i kopian av den berörda OS-disken har använts följer du steg 4 till 7 i lösning 1: Åtgärda NIC MAC-adressmatchningsfel med seriekonsolen för att göra nätverksändringar eller rensa filen obj.pkl .
 - När ändringarna har tillämpats använder du 
az vm repair restorekommandot för att utföra ett automatiskt os-diskbyte med den ursprungliga virtuella datorn och starta om systemet. 
Scenario 3: Andra Hyper-V-drivrutiner är inaktiverade
Om du får startproblem med andra Hyper-V-drivrutiner kan du förmodligen inte SSH till en virtuell dator eftersom nätverkstjänster inte är tillgängliga. Du är nedsläppt till ett dracut-skal. Det här problemet kan visas via seriekonsolen från Azure Portal. Du kan se följande fel i seriekonsolen eller den senaste serieloggen i fönstret Startdiagnostik i Azure Portal:
 dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts
 dracut-initqueue[455]: Warning: Could not boot.
         Starting Setup Virtual Console...
[  OK  ] Started Setup Virtual Console.
         Starting Dracut Emergency Shell...
Warning: /dev/mapper/rootvg-rootlv does not exist
Generating "/run/initramfs/rdsosreport.txt"
 
Entering emergency mode. Exit the shell to continue.
Type "journalctl" to view system logs.
You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot
after mounting them and attach it to a bug report.
dracut:/#
Eller
Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  UUID=143c811b-9b9c-48f3-b0c8-040f6e65f50aa does not exist.  Dropping to a shell!
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs)
Lösning: Aktivera Hyper-V-drivrutiner
Om den virtuella datorn inte är tillgänglig på grund av att andra Hyper-V-drivrutiner har inaktiverats använder du en offlinemetod för att återaktivera drivrutinerna eftersom initramferna inte kan läsas in.
Använd kommandot az vm repair för att få åtkomst till innehållet på den problematiska OS-disken från en virtuell dator för räddning.
Montera och chroot till filsystemen på den anslutna OS-disken på en virtuell räddningsdator korrekt enligt chroot-instruktionerna.
Väl i chroot-miljön går du till katalogen /etc/modprobe.d och letar efter alla rader som kan inaktivera drivrutinen hv_utils, hv_vmbus, hv_storvsc eller hv_netvsc.
Kör följande kommando för att identifiera filen som inaktiverar drivrutinen hv_utils, hv_vmbus, hv_storvsc eller hv_netvsc och motsvarande radnummer.
sudo egrep -nr "hv_utils|hv_vmbus|hv_storvsc|hv_netvsc" /etc/modprobe.d/Ändra motsvarande fil och kommentera ut eller ta bort posterna hv_utils, hv_vmbus, hv_storvsc eller hv_netvsc. Posterna är oftast något av följande (eller båda):
              
              
            
              
              
            
sudo vi /etc/modprobe.d/disable.conf
Viktigt!
- Posterna som inaktiverar drivrutiner definieras av Linux-operativsystemet, inte av Microsoft.
 - Ersätt 
disable.confmed motsvarande filnamn där Hyper-V-drivrutinerna är inaktiverade. 
Återskapa den första RAMdisk-avbildningen för den aktuella inlästa kerneln:
För RHEL/SLES-baserade bilder
sudo dracut -f -vFör Ubuntu/Debian-baserade bilder
sudo mkinitramfs -k -o /boot/initrd.img-$(uname -r)
När ändringarna har tillämpats använder du
az vm repair restorekommandot för att utföra ett automatiskt os-diskbyte med den ursprungliga virtuella datorn och starta om systemet.
Ta alltid en säkerhetskopia av den ursprungliga ursprungliga RAMdisk-avbildningen för att underlätta återställningen om det behövs.
Om problemet fortfarande inte är löst kan du gå till Den virtuella Azure Linux-datorn kan inte startas och anger dracut emergency shell för att undersöka dracut-problem.
Nästa steg
Om det specifika startfelet inte är ett Hyper-V-problem kan du läsa Felsöka startfel för virtuella Azure Linux-datorer för ytterligare felsökningsalternativ.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.