Dela via


Felsöka en virtuell Linux-dator genom att ansluta OS-disken till en återställnings-VM med Azure CLI

Gäller för: ✔️ Virtuella Linux-datorer

Om den virtuella Linux-datorn (VM) får ett start- eller diskfel kan du behöva utföra felsökningsstegen på själva den virtuella hårddisken. Ett vanligt exempel är en ogiltig post i /etc/fstab som förhindrar att den virtuella datorn kan startas. Den här artikeln beskriver hur du använder Azure CLI för att ansluta din virtuella hårddisk till en annan virtuell Linux-dator för att åtgärda eventuella fel och sedan återskapa den ursprungliga virtuella datorn.

Översikt över återställningsprocessen

Så här ser felsökningsprocessen ut:

  1. Stoppa den berörda virtuella datorn.
  2. Ta en ögonblicksbild från den virtuella datorns OS-disk.
  3. Skapa en disk från ögonblicksbilden av operativsystemets disk.
  4. Koppla och montera den nya OS-disken till en annan virtuell Linux-dator i felsökningssyfte.
  5. Anslut till den virtuella felsökningsdatorn. Redigera filer eller kör verktyg för att åtgärda problem på den nya OS-disken.
  6. Demontera och koppla från den nya OS-disken från den virtuella felsökningsdatorn.
  7. Ändra OS-disken för den berörda virtuella datorn.

För att utföra de här felsökningsstegen behöver du den senaste Azure CLI-versionen installerad och inloggad på ett Azure-konto med az login.

Du kan använda reparationskommandona för virtuella datorer för att automatisera steg 1, 2, 3, 4, 6 och 7. Mer dokumentation och instruktioner finns i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för virtuella Azure-datorer.

Viktigt!

Skripten i den här artikeln gäller endast för de virtuella datorer som använder Managed Disk.

I följande exempel ersätter du parameternamn med dina egna värden, till exempel myResourceGroup och myVM.

Fastställa startproblem

Granska serieutdata för att avgöra varför den virtuella datorn inte kan starta korrekt. Ett vanligt exempel är en ogiltig post i /etc/fstab, eller den underliggande virtuella hårddisken som tas bort eller flyttas.

Hämta startloggarna med az vm boot-diagnostics get-boot-log. I följande exempel hämtas serieutdata från den virtuella datorn med namnet myVM i resursgruppen med namnet myResourceGroup:

az vm boot-diagnostics get-boot-log --resource-group myResourceGroup --name myVM

Granska serieutdata för att avgöra varför den virtuella datorn inte kan startas. Om serieutdata inte ger någon indikation kan du behöva granska loggfilerna när /var/log du har den virtuella hårddisken ansluten till en felsöknings-VM.

Stoppa den virtuella datorn

I följande exempel stoppas den virtuella datorn med namnet myVM från resursgruppen med namnet myResourceGroup:

az vm stop --resource-group MyResourceGroup --name MyVm

Ta en ögonblicksbild från OS-disken för den berörda virtuella datorn

En ögonblicksbild är en fullständig, skrivskyddad kopia av en virtuell hårddisk. Den kan inte kopplas till en virtuell dator. I nästa steg skapar vi en disk från den här ögonblicksbilden. I följande exempel skapas en ögonblicksbild med namn mySnapshot från OS-disken på den virtuella datorn med namnet "myVM".

#Get the OS disk Id 
$osdiskid=(az vm show -g myResourceGroup -n myVM --query "storageProfile.osDisk.managedDisk.id" -o tsv)

#creates a snapshot of the disk
az snapshot create --resource-group myResourceGroupDisk --source "$osdiskid" --name mySnapshot

Skapa en disk från ögonblicksbilden

Det här skriptet skapar en hanterad disk med namnet myOSDisk från ögonblicksbilden med namnet mySnapshot.

#Provide the name of your resource group
$resourceGroup="myResourceGroup"

#Provide the name of the snapshot that will be used to create Managed Disks
$snapshot="mySnapshot"

#Provide the name of the Managed Disk
$osDisk="myNewOSDisk"

#Provide the size of the disks in GB. It should be greater than the VHD file size.
$diskSize=128

#Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
$storageType="Premium_LRS"

#Provide the OS type
$osType="linux"

#Get the snapshot Id 
$snapshotId=(az snapshot show --name $snapshot --resource-group $resourceGroup --query id -o tsv)

# Create a new Managed Disks using the snapshot Id.

az disk create --resource-group $resourceGroup --name $osDisk --sku $storageType --size-gb $diskSize --source $snapshotId

Om resursgruppen och källögonblicksbilden inte finns i samma region får du felet "Resursen hittades inte" när du kör az disk create. I det här fallet måste du ange --location <region> för att skapa disken i samma region som källögonblicksbilden.

Nu har du en kopia av den ursprungliga OS-disken. Du kan montera den här nya disken på en annan virtuell Windows-dator i felsökningssyfte.

Koppla den nya virtuella hårddisken till en annan virtuell dator

För de närmaste stegen använder du en annan virtuell dator för felsökning. Du kopplar disken till den här felsökningsdatorn för att bläddra och redigera diskens innehåll. Med den här processen kan du korrigera eventuella konfigurationsfel eller granska ytterligare program- eller systemloggfiler.

Det här skriptet kopplar disken myNewOSDisk till den virtuella datorn MyTroubleshootVM:

# Get ID of the OS disk that you just created.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)

# Attach the disk to the troubleshooting VM
az vm disk attach --disk $myNewOSDiskid --resource-group $resourceGroup --size-gb $diskSize --sku $storageType --vm-name MyTroubleshootVM

Montera den anslutna datadisken

Kommentar

I följande exempel beskrivs de steg som krävs på en virtuell Ubuntu-dator. Om du använder en annan Linux-distribution, till exempel Red Hat Enterprise Linux eller SUSE, kan loggfilens platser och mount kommandon vara lite annorlunda. Se dokumentationen för din specifika distribution för lämpliga ändringar i kommandon.

  1. SSH till den virtuella felsökningsdatorn med lämpliga autentiseringsuppgifter. Om den här disken är den första datadisken som är ansluten till den virtuella felsökningsdatorn är disken troligen ansluten till /dev/sdc. Använd dmesg för att visa anslutna diskar:

    dmesg | grep SCSI
    

    Utdata ser ut ungefär så här:

    [    0.294784] SCSI subsystem initialized
    [    0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [    7.110271] sd 2:0:0:0: [sda] Attached SCSI disk
    [    8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk
    [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
    

    I föregående exempel är OS-disken på /dev/sda och den tillfälliga disken som tillhandahålls för varje virtuell dator är på /dev/sdb. Om du har flera datadiskar bör de vara på /dev/sdd, /dev/sdeoch så vidare.

  2. Skapa en katalog för att montera din befintliga virtuella hårddisk. I följande exempel skapas en katalog med namnet troubleshootingdisk:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Om du har flera partitioner på den befintliga virtuella hårddisken monterar du den partition som krävs. I följande exempel monteras den första primära partitionen på /dev/sdc1:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Kommentar

    Bästa praxis är att montera datadiskar på virtuella datorer i Azure med den virtuella hårddiskens universellt unika identifierare (UUID). För det här korta felsökningsscenariot är det inte nödvändigt att montera den virtuella hårddisken med UUID. Vid normal användning kan dock redigering /etc/fstab för att montera virtuella hårddiskar med enhetsnamn i stället för UUID göra att den virtuella datorn inte kan startas.

Åtgärda problem på den nya OS-disken

Med den befintliga virtuella hårddisken monterad kan du nu utföra alla underhålls- och felsökningssteg efter behov. När du har åtgärdat problemen fortsätter du med följande steg.

Demontera och koppla från den nya OS-disken

När felen har lösts demonterar och kopplar du från den befintliga virtuella hårddisken från den virtuella felsökningsdatorn. Du kan inte använda den virtuella hårddisken med någon annan virtuell dator förrän lånet som kopplar den virtuella hårddisken till den virtuella felsökningsdatorn har släppts.

  1. Från SSH-sessionen till den virtuella felsökningsdatorn demonterar du den befintliga virtuella hårddisken. Byt ut från den överordnade katalogen för monteringspunkten först:

    cd /
    

    Demontera nu den befintliga virtuella hårddisken. I följande exempel demonteras enheten på /dev/sdc1:

    sudo umount /dev/sdc1
    
  2. Koppla nu från den virtuella hårddisken från den virtuella datorn. Avsluta SSH-sessionen till den virtuella felsökningsdatorn:

    az vm disk detach -g MyResourceGroup --vm-name MyTroubleShootVm --name myNewOSDisk
    

Ändra OS-disken för den berörda virtuella datorn

Du kan använda Azure CLI för att växla os-diskarna. Du behöver inte ta bort och återskapa den virtuella datorn.

Det här exemplet stoppar den virtuella datorn med namnet myVM och tilldelar disken med namnet myNewOSDisk som den nya OS-disken.

# Stop the affected VM
az vm stop -n myVM -g myResourceGroup

# Get ID of the OS disk that is repaired.
$myNewOSDiskid=(az disk show -g $resourceGroup -n $osDisk --query id -o tsv)

# Change the OS disk of the affected VM to "myNewOSDisk"
az vm update -g myResourceGroup -n myVM --os-disk $myNewOSDiskid

# Start the VM
az vm start -n myVM -g myResourceGroup

Nästa steg

Om du har problem med att ansluta till den virtuella datorn kan du läsa Felsöka SSH-anslutningar till en virtuell Azure-dator. Problem med att komma åt program som körs på den virtuella datorn finns i Felsöka anslutningsproblem för program på en virtuell Linux-dator.

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.