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:
- Stoppa den berörda virtuella datorn.
- Ta en ögonblicksbild från den virtuella datorns OS-disk.
- Skapa en disk från ögonblicksbilden av operativsystemets disk.
- Koppla och montera den nya OS-disken till en annan virtuell Linux-dator i felsökningssyfte.
- Anslut till den virtuella felsökningsdatorn. Redigera filer eller kör verktyg för att åtgärda problem på den nya OS-disken.
- Demontera och koppla från den nya OS-disken från den virtuella felsökningsdatorn.
- Ä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.
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änddmesg
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/sde
och så vidare.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
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.
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
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.