Dela via


Låsa upp en krypterad Linux-disk för offlinereparation

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

I den här artikeln beskrivs hur du låser upp en ADE-aktiverad OS-disk (Azure Disk Encryption) för offlinereparation.

Azure Disk Encryption kan tillämpas på Microsoft-godkända virtuella Linux-datorer (VM). Här följer några grundläggande krav för att aktivera Azure Disk Encryption på virtuella Linux-datorer:

Symtom

Om ADE är aktiverat på OS-disken kan du få följande felmeddelanden när du försöker montera disken på en virtuell reparationsdator:

montering: fel fs-typ, dåligt alternativ, felaktig superblockering på /dev/sda2, saknade kodsida eller hjälpprogram eller annat fel

montering: okänd filsystemtyp "LVM2_member"

Förberedelse

Slutför följande uppgifter innan du låser upp den krypterade OS-disken för offlinereparation:

  1. Bekräfta att ADE är aktiverat på disken.
  2. Avgör om OS-disken använder ADE version 0 (kryptering med dubbla pass) eller ADE version 1 (enkel pass-kryptering).
  3. Avgör om OS-disken hanteras eller hanteras ohanterad.
  4. Välj metoden för att låsa upp den krypterade disken.

Kontrollera att ADE är aktiverat på disken

Du kan göra det här steget i Azure-portalen, PowerShell eller Azure-kommandoradsgränssnittet (Azure CLI).

Azure Portal

Visa bladet Översikt för den misslyckade virtuella datorn i Azure-portalen. Under Disk visas posten för Azure-diskkryptering som antingen Aktiverad eller Inte aktiverad, enligt följande skärmbild.

Skärmbild av översiktsbladet för en V M i Azure-portalen som visar att A D E är aktiverat på disken.

PowerShell

Du kan använda cmdleten Get-AzVmDiskEncryptionStatus för att avgöra om operativsystemet eller datavolymerna för en virtuell dator krypteras med hjälp av ADE. Följande exempelutdata anger att ADE-kryptering är aktiverat på OS-volymen:

Get-AzVmDiskEncryptionStatus -ResourceGroupName "ResourceGroupName" -VMName "VmName" 

Mer information om cmdleten finns i Get-AzureRmDiskEncryptionStatus Get-AzVMDiskEncryptionStatus (Az.Compute).

Azure CLI

Du kan använda az vm encryption show kommandot för att kontrollera om ADE är aktiverat på virtuella datordiskar:

az vm encryption show --name MyVM --resource-group MyResourceGroup --query "disks[].encryptionSettings[].enabled"

Mer information om kommandot finns i az vm encryption show az vm encryption show.

Kommentar

Om ADE inte är aktiverat på disken kan du läsa följande artikel om hur du ansluter en disk till en virtuell reparationsdator: Felsöka en virtuell Linux-dator genom att ansluta OS-disken till en virtuell reparationsdator.

Avgöra om OS-disken använder ADE version 0 (kryptering med dubbla pass) eller ADE version 1 (enkel pass-kryptering)

Du kan identifiera ADE-versionen i Azure-portalen genom att öppna egenskaperna för den virtuella datorn och sedan välja Tillägg för att öppna bladet Tillägg . På bladet Tillägg visar du versionsnumret för AzureDiskEncryptionForLinux.

  • Om versionsnumret är 0.*använder disken kryptering med dubbla pass.
  • Om versionsnumret är 1.* eller en senare version använder disken enkelpassningskryptering.

Om disken använder ADE version 0 (kryptering med dubbla pass) använder du metod 3 för att låsa upp disken.

Avgöra om OS-disken hanteras eller inte hanteras

Om du inte vet om OS-disken är hanterad eller ohanterad kan du läsa Ta reda på om OS-disken är hanterad eller ohanterad.

Om OS-disken är en ohanterad disk följer du stegen i Metod 3 för att låsa upp disken.

Välj metoden för att låsa upp den krypterade disken

Välj någon av följande metoder för att låsa upp den krypterade disken:

  • Om disken hanteras och krypteras med ADE version 1 och din infrastruktur- och företagsprincip gör att du kan tilldela en offentlig IP-adress till en reparations-VM använder du metod 1: Lås upp den krypterade disken automatiskt med hjälp av kommandot az vm repair.
  • Om disken både hanteras och krypteras med ADE version 1, men din infrastruktur- eller företagsprincip hindrar dig från att tilldela en offentlig IP-adress till en virtuell reparationsdator, använder du Metod 2: Lås upp den krypterade disken med nyckelfilen i BEK-volymen. En annan anledning att välja den här metoden är om du saknar behörighet att skapa en resursgrupp i Azure.
  • Om någon av dessa metoder misslyckas, eller om disken är ohanterad eller krypterad med ADE version 1 (kryptering med dubbla pass), följer du stegen i Metod 3 för att låsa upp disken.

Metod 1: Lås upp den krypterade disken automatiskt med hjälp av kommandot az vm repair

Den här metoden förlitar sig på az vm repair-kommandon för att automatiskt skapa en reparations-VM, koppla OS-disken för den misslyckade virtuella Linux-datorn till den reparerade virtuella datorn och sedan låsa upp disken om den är krypterad. Den här metoden kräver att du använder en offentlig IP-adress för den virtuella reparationsdatorn och låser upp den krypterade disken oavsett om ADE-nyckeln är packad eller omsluten med hjälp av en nyckelkrypteringsnyckel (KEK).

Om du vill reparera den virtuella datorn med den här automatiserade metoden följer du stegen i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för Azure Virtual Machine.

Om din infrastruktur- och företagsprincip inte tillåter att du tilldelar en offentlig IP-adress, eller om az vm repair kommandot inte låser upp disken, går du till nästa metod.

Metod 2: Lås upp den krypterade disken med nyckelfilen i BEK-volymen

Följ dessa steg för att låsa upp och montera den krypterade disken manuellt:

  1. Skapa en ny reparations-VM och koppla den krypterade disken till den här virtuella datorn när den virtuella datorn skapas.

    Du måste koppla den krypterade disken när du skapar den virtuella reparationsdatorn. Detta beror på att systemet identifierar att den anslutna disken är krypterad. Därför hämtar den ADE-nyckeln från ditt Azure-nyckelvalv och skapar sedan en ny volym med namnet "BEK VOLUME" för att lagra nyckelfilen.

  2. Logga in på den virtuella reparationsdatorn och demontera sedan eventuella monterade partitioner på den krypterade disken.

  3. Identifiera ADE-nyckelfilen i BEK-volymen.

  4. Identifiera huvudfilen i startpartitionen för det krypterade operativsystemet.

  5. Lås upp den krypterade disken med hjälp av ADE-nyckelfilen och huvudfilen.

  6. Montera partitionen: LVM, RAW eller icke-LVM.

Skapa en virtuell reparationsdator

  1. Ta en ögonblicksbild av den krypterade OS-disken.

  2. Skapa en disk från ögonblicksbilden. För den nya disken väljer du samma plats och tillgänglighetszon som för den virtuella problemdator som du vill reparera.

  3. Skapa en virtuell dator som baseras på följande riktlinjer:

    • På Azure Marketplace väljer du samma avbildning för den virtuella reparationsdatorn som användes för den misslyckade virtuella datorn. (Operativsystemets version bör vara densamma.)
    • Välj en storlek som allokerar minst 8 GB minne till den virtuella datorn.
    • Tilldela den nya virtuella datorn till samma resursgrupp, region och tillgänglighetsinställningar som du använde för den nya disken som du skapade i steg 2.
  4. På sidan Diskar i guiden Skapa en virtuell dator kopplar du den nya disken (som du nyss skapade från ögonblicksbilden) som en datadisk.

Viktigt!

Eftersom krypteringsinställningarna bara identifieras när den virtuella datorn skapas kontrollerar du att du ansluter disken när du skapar den virtuella datorn. På så sätt kan en volym som innehåller ADE-nyckelfilen läggas till automatiskt på den virtuella datorn.

Demontera eventuella monterade partitioner på den krypterade disken

  1. När den virtuella reparationsdatorn har skapats loggar SSH till den virtuella reparationsdatorn, loggar in med lämpliga autentiseringsuppgifter och höjer sedan kontot till roten:

    sudo -s 
    
  2. Visa en lista över anslutna enheter med hjälp av kommandot lsblk . I utdata bör du se flera anslutna diskar. Dessa diskar omfattar den aktiva OS-disken och den krypterade disken. De kan visas i valfri ordning.

  3. Identifiera den krypterade disken med hjälp av följande information:

    • Disken har flera partitioner
    • Disken visar inte rotkatalogen ("/") som en monteringspunkt för någon av dess partitioner.
    • Disken matchar den storlek som du antecknade när du skapade den från ögonblicksbilden.

    I följande exempel anger utdata att "sdd" är den krypterade disken. Det här är den enda disken som har flera partitioner och som inte listar "/" som en monteringspunkt.

    Bilden om det första exemplet

  4. Demontera alla partitioner på den krypterade datadisken som har monterats i filsystemet. I föregående exempel skulle du till exempel behöva demontera både "/boot/efi"* och "/boot".

    umount /boot/efi 
    
    umount /boot 
    

Identifiera ADE-nyckelfilen

Du måste ha både nyckelfilen och huvudfilen för att låsa upp den krypterade disken. Nyckelfilen lagras i BEK-volymen och huvudfilen finns i startpartitionen på den krypterade OS-disken.

  1. Avgör vilken partition som är BEK-volymen:

    lsblk -fs | grep -i bek 
    

    Följande exempelutdata anger att sdb1 är BEK-volymen:

    >sdb1  vfat   BEK VOLUME      04A2-FE67 
    

    Om det inte finns någon BEK-volym skapar du den virtuella reparationsdatorn igen genom att ha den krypterade disken ansluten. Om BEK-volymen fortfarande inte ansluts automatiskt kan du försöka med metod 3 för att hämta BEK-volymen.

  2. Skapa en katalog med namnet "azure_bek_disk" under mappen "/mnt":

    mkdir /mnt/azure_bek_disk 
    
  3. Montera BEK-volymen i katalogen "/mnt/azure_bek_disk". Om sdb1 till exempel är BEK-volymen anger du följande kommando:

    mount /dev/sdb1 /mnt/azure_bek_disk 
    
  4. Visa en lista över tillgängliga enheter igen:

    lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT  
    

    Obs! Du ser att partitionen som du bestämde dig för att vara BEK-volymen nu är monterad i "/mnt/azure_bek_disk".

  5. Visa innehållet i katalogen "/mnt/azure_bek_disk/":

    ls -l /mnt/azure_bek_disk
    

    Du bör se följande filer i utdata (ADE-nyckelfilen är "LinuxPassPhraseFileName"):

    >total 1 
    
     -rwxr-xr-x 1 root root 148 Aug  4 01:04 CRITICAL_DATA_WARNING_README.txt 
     -r-xr-xr-x 1 root root 172 Aug  4 01:04 LinuxPassPhraseFileName
    

    Du kan se flera "LinuxPassPhraseFileName" om mer än en disk är ansluten till den krypterade virtuella datorn. "LinuxPassPhraseFileName" räknas upp enligt antalet diskar i samma ordning som deras logiska enhetsnummer (LUN).

Identifiera rubrikfilen

Startpartitionen för den krypterade disken innehåller huvudfilen. Du använder den här filen tillsammans med nyckelfilen "LinuxPassPhraseFileName" för att låsa upp den krypterade disken.

  1. Använd följande kommando för att visa valda attribut för tillgängliga diskar och partitioner:

    lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT
    
  2. På den krypterade disken identifierar du OS-partitionen (rotpartitionen). Det här är den största partitionen på den krypterade disken. I föregående exempelutdata är OS-partitionen "sda4". Den här partitionen måste anges när du kör upplåsningskommandot.

  3. I rotkatalogen ("/") i filstrukturen skapar du en katalog som rotpartitionen för den krypterade disken ska monteras på. Du använder den här katalogen senare när disken har låsts upp. Om du vill skilja den från den aktiva OS-partitionen för den virtuella reparationsdatorn ger du den namnet "investigateroot".

    mkdir /{investigateboot,investigateroot}
    
  4. På den krypterade disken identifierar du startpartitionen, som innehåller huvudfilen. På den krypterade disken är startpartitionen den näst största partitionen som inte visar något värde i kolumnen LABEL eller PARTLABEL. I föregående exempelutdata är startpartitionen för den krypterade disken "sda2".

  5. Montera den startpartition som du identifierade i steg 4 i katalogen /investigateboot/. I följande exempel är startpartitionen för den krypterade disken sda2. Platsen i systemet kan dock skilja sig åt.

    mount /dev/sda2 /investigateboot/ 
    

    Om monteringen av partitionen misslyckas och returnerar felmeddelandet "fel fs-typ, felaktigt alternativ, felaktig superblockering" kan du försöka igen med hjälp mount -o nouuid av kommandot, som i följande exempel:

    mount -o nouuid /dev/sda2 /investigateboot/ 
    
  6. Lista de filer som finns i katalogen /investigateboot/. Underkatalogen "luks" innehåller huvudfilen som du måste ha för att låsa upp disken.

  7. Lista de filer som finns i katalogen /investigateboot/luks/. Rubrikfilen heter "osluksheader".

    ls -l /investigateboot/luks 
    

Använd ADE-nyckelfilen och huvudfilen för att låsa upp disken

  1. cryptsetup luksOpen Använd kommandot för att låsa upp rotpartitionen på den krypterade disken. Om sökvägen till rotpartitionen som innehåller det krypterade operativsystemet till exempel är /dev/sda4 och du vill tilldela namnet "osencrypt" till den olåst partitionen kör du följande kommando:

    cryptsetup luksOpen --key-file /mnt/azure_bek_disk/LinuxPassPhraseFileName --header /investigateboot/luks/osluksheader /dev/sda4 osencrypt 
    
  2. Nu när du har låst upp disken demonterar du den krypterade diskens startpartition från katalogen /investigateboot/:

    umount /investigateboot/ 
    

    Obs! Du måste montera partitionen till en annan katalog senare.

    Nästa steg är att montera partitionen som du just har låst upp. Vilken metod du använder för att montera partitionen beror på det enhetsmappningsramverk (LVM eller icke-LVM) som används av disken.

  3. Lista enhetsinformationen tillsammans med filsystemtypen:

    lsblk -o NAME,FSTYPE 
    

    Du ser den olåst partitionen och namnet som du tilldelade den (i vårt exempel är namnet "osencrypt"):

Montera den olåst partitionen och ange chroot-miljön (endast LVM)

Om diskarna använder LVM-enhetsmappningsramverket måste du vidta extra åtgärder för att montera disken och ange chroot-miljön. Om du vill använda chroot-verktyget tillsammans med den krypterade disken måste den olåst partitionen ("osencrypt") och dess logiska volymer identifieras som den volymgrupp som heter rootvg. Men som standard är den virtuella reparationsdatorns OS-partition och dess logiska volymer redan tilldelade till en volymgrupp som har namnet rootvg. Vi måste lösa den här konflikten innan vi kan fortsätta.

  1. pvs Använd kommandot för att visa egenskaperna för de fysiska LVM-volymerna. Du kan se varningsmeddelanden, som i följande exempel, som anger att den olåst partitionen ("/dev/mapper/osencrypt") och en annan enhet använder dubbla universellt unika identifierare (UUID). Du kan också se två partitioner tilldelade till rootvg.

    Kommentar

    Du vill bara att den olåst partitionen ("osencrypt") ska tilldelas till rootvg-volymgruppen så att du kan komma åt dess logiska volymer via chroot-verktyget. För att åtgärda det här problemet importerar du tillfälligt partitionen till en annan volymgrupp och aktiverar volymgruppen. Därefter byter du namn på den aktuella rootvg-volymgruppen. Först när du har angett chroot-miljön byter du namn på den krypterade diskens volymgrupp till "rootvg".

Tilldela den olåst partitionen (exempel)

  1. Importera den nyligen olåst partitionen till en ny volymgrupp. I det här exemplet namnger vi tillfälligt den nya volymgruppen "rescuemevg". Importera den nyligen olåst partitionen till en ny volymgrupp. I det här exemplet namnger vi tillfälligt den nya volymgruppen "rescuemevg".

  2. Aktivera den nya volymgruppen:

    vgimportclone -n rescuemevg /dev/mapper/osencrypt
    vgchange -a y rescuemevg
    
  3. Byt namn på den gamla rootvg-volymgruppen. I det här exemplet använder vi namnet "oldvg".

    vgrename rootvg oldvg 
    
  4. Kör lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT för att granska tillgängliga enheter. Du bör nu se båda volymgrupperna listade efter de namn som du har tilldelat dem.

  5. Montera den logiska volymen rescuemevg/rootlv till katalogen /investigateroot/ utan att använda de duplicerade UUID:erna:

    umount /investigateboot
    mount -o nouuid /dev/rescuemevg/rootlv /investigateroot/ 
    

    Nu är rotpartitionen för den misslyckade virtuella datorn upplåst och monterad, och du bör kunna komma åt rotpartitionen för att felsöka problemen. Mer information finns i Felsöka problem med start av virtuella Linux-datorer på grund av filsystemfel.

    Men om du vill använda chroot-verktyget för felsökning fortsätter du med följande steg.

  6. Montera den krypterade diskens startpartition till katalogen /investigateroot/boot/ utan att använda de duplicerade UUID:erna. (Kom ihåg att den krypterade diskens startpartition är den näst största som inte har tilldelats någon partitionsetikett.) I vårt aktuella exempel är den krypterade diskens startpartition sda2.

    mount -o nouuid /dev/sda2 /investigateroot/boot
    
  7. Montera den krypterade diskens EFI-systempartition till katalogen /investigateroot/boot/efi. Du kan identifiera den här partitionen med dess etikett. I vårt aktuella exempel är EFI-systempartitionen sda1.

    mount /dev/sda1 /investigateroot/boot/efi
    
  8. Montera de återstående omonterade logiska volymerna i den krypterade diskens volymgrupp till underkataloger för "/investigateroot/":

    mount -o nouuid /dev/mapper/rescuemevg-varlv /investigateroot/var
    mount -o nouuid /dev/mapper/rescuemevg-homelv /investigateroot/home
    mount -o nouuid /dev/mapper/rescuemevg-usrlv /investigateroot/usr
    mount -o nouuid /dev/mapper/rescuemevg-tmplv /investigateroot/tmp
    mount -o nouuid /dev/mapper/rescuemevg-optlv /investigateroot/opt
    
  9. Ändra active directory till den monterade rotpartitionen på den krypterade disken:

    cd /investigateroot
    
  10. Ange följande kommandon för att förbereda chroot-miljön:

    mount -t proc proc proc
    mount -t sysfs sys sys/
    mount -o bind /dev dev/
    mount -o bind /dev/pts dev/pts/
    mount -o bind /run run/
    
  11. Ange chroot-miljön:

    chroot /investigateroot/
    
  12. Byt namn på volymgruppen rescuemevg till "rootvg" för att undvika konflikter eller eventuella problem med grub och initramfs. Behåll samma namngivningskonvention när du återskapar initramfs. På grund av vg-namnändringarna arbetar du på den virtuella räddningsdatorn. Det är inte längre användbart om du startar om det. Den virtuella räddningsdatorn bör betraktas som en tillfällig virtuell dator.

    vgrename rescuemevg rootvg
    
  13. Felsöka problem i chroot-miljön. Du kan till exempel läsa loggar eller köra ett skript. Mer information finns i Utföra korrigeringar i chroot-miljön.

  14. Avsluta chroot och växla OS-disken.

Montera den olåst disken och ange chroot-miljön (RAW/icke-LVM)

  1. I rotkatalogen ("/") i filstrukturen skapar du en katalog där rotpartitionen för den krypterade disken ska monteras. Du använder den här katalogen senare när disken har låsts upp. Om du vill skilja den från den aktiva OS-partitionen för den virtuella reparationsdatorn namnger du den till "investigateroot".

    mkdir /{investigateboot,investigateroot}
    
  2. Montera den nyligen olåst partitionen ("osencrypt") till katalogen /investigateroot/:

    mount /dev/mapper/osencrypt /investigateroot/ 
    

    Om monteringen av partitionen misslyckas och returnerar felmeddelandet "fel fs-typ, felaktigt alternativ, felaktig superblockering" kan du försöka igen med hjälp av monteringskommandot -o nouuid :

    mount -o nouuid /dev/mapper/osencrypt /investigateroot/ 
    
  3. Försök att visa innehållet i katalogen /investigateroot/ för att kontrollera att den monterade partitionen nu är olåst:

    ls /investigateroot/ 
    
  4. Nu när rotpartitionen för den misslyckade virtuella datorn har låsts upp och monterats kan du komma åt rotpartitionen för att felsöka problemen. Mer information finns i Felsöka problem med start av virtuella Linux-datorer på grund av filsystemfel..

    Men om du vill använda chroot-verktyget för felsökning går du till nästa steg.

  5. Använd kommandot lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT för att granska tillgängliga enheter. Identifiera startpartitionen på den krypterade disken som den näst största partitionen som inte har tilldelats någon etikett.

  6. Montera startpartitionen på den krypterade disken till katalogen "/investigateroot/boot/" som i följande exempel:

    mount /dev/sdc2 /investigateroot/boot/ 
    
  7. Ändra active directory till den monterade rotpartitionen på den krypterade disken:

    cd /investigateroot 
    
  8. Ange följande kommandon för att förbereda chroot-miljön:

    mount -t proc proc proc 
    
    mount -t sysfs sys sys/ 
    
    mount -o bind /dev dev/ 
    
    mount -o bind /dev/pts dev/pts/ 
    
    mount -o bind /run run/ 
    
  9. Ange chroot-miljön:

    chroot /investigateroot/ 
    
  10. Felsöka problem i chroot-miljön. Du kan läsa loggar eller köra ett skript. Mer information finns i Utföra korrigeringar i chroot-miljön.

  11. Avsluta chroot och växla OS-disken.

Metod 3: Kryptera om disken för att hämta nyckelfilen och låsa upp den krypterade disken

  1. Skapa den virtuella reparationsdatorn och bifoga en kopia av den låsta disken till en virtuell reparationsdator:

  2. När du har bifogat den krypterade disken som datadisk till den virtuella reparationsdatorn använder du nyckelvalvet och nyckelkrypterad nyckel (KEK) som användes för den ursprungliga virtuella datorn för att kryptera om datadisken. Den här processen genererar och monterar automatiskt en BEK-volym med hjälp av en BKE-nyckelfil på den virtuella reparationsdatorn. Du får inte använda alternativet EncryptFormatAll eftersom ADE-tillägget kan kryptera startsektorn på datadisken.

    • Om den ursprungliga virtuella datorn krypteras med omsluten BEK kör du följande kommando.

       az vm encryption enable -g "resource group" --name "VMName" --disk-encryption-keyvault "keyvault"  --key-encryption-key "kek" --volume-type "data"
      
    • Om den ursprungliga virtuella datorn krypteras av BEK kör du följande kommando:

      az vm encryption enable -g "resource group" --name "VMName" --disk-encryption-keyvault "keyvault"  --volume-type "data"
      

      Kör följande kommando för att fastställa värdena för diskkryptering-keyvault och key-encryption-key:

      az vm encryption show --name "OriginalVmName" --resource-group "ResourceGroupName"
      

      I följande tabell hittar du värdena i utdata. Om värdet keyEncryptionKey är tomt krypteras den virtuella datorn av BEK.

      Parameter Värde i utdata exempel
      disk-encryption-keyvault diskEncryptionKey:id /subscriptions/deb73ff9-0000-0000-0000-0000c7a96d37/resourceGroups/Thomas/providers/Microsoft.KeyVault/vaults/ContosoKeyvault
      key-encryption-key keyEncryptionKey:KeyURI https://ContosoKeyvault.vault.azure.net/keys/mykey/00000000987145a3b79b0ed415fa0000
  3. Kör följande kommando för att kontrollera om en ny disk är ansluten:

    lsblk -f
    

    Om en ny disk är ansluten går du till Identifiera ADE-nyckelfilen i BEK-volymen och fortsätter sedan att följa de angivna stegen för att låsa upp disken.

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.

Kontakta oss om du behöver hjälp

Om du har frågor eller behöver hjälp skapar du en supportbegäran eller frågar Azure Community-support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.