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:
- Azure Key Vault
- Azure CLI- eller Windows PowerShell-cmdletar
- Device-mapper (DM)-Crypt
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:
- Bekräfta att ADE är aktiverat på disken.
- Avgör om OS-disken använder ADE version 0 (kryptering med dubbla pass) eller ADE version 1 (enkel pass-kryptering).
- Avgör om OS-disken hanteras eller hanteras ohanterad.
- 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.
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:
-
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.
Identifiera huvudfilen i startpartitionen för det krypterade operativsystemet.
Lås upp den krypterade disken med hjälp av ADE-nyckelfilen och huvudfilen.
Montera partitionen: LVM, RAW eller icke-LVM.
Skapa en virtuell reparationsdator
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.
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.
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
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
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.
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.
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.
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.
Skapa en katalog med namnet "azure_bek_disk" under mappen "/mnt":
mkdir /mnt/azure_bek_disk
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
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".
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.
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
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.
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}
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".
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/
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.
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
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
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.
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"):
- För LVM-partitionen, till exempel "LVM_member", se Montera LVM-partitionenRAW eller icke-LVM.
- Information om icke-LVM-partitionen finns i Montera icke-LVM-partitionen.
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.
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)
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".
Aktivera den nya volymgruppen:
vgimportclone -n rescuemevg /dev/mapper/osencrypt vgchange -a y rescuemevg
Byt namn på den gamla rootvg-volymgruppen. I det här exemplet använder vi namnet "oldvg".
vgrename rootvg oldvg
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.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.
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
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
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
Ändra active directory till den monterade rotpartitionen på den krypterade disken:
cd /investigateroot
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/
Ange chroot-miljön:
chroot /investigateroot/
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
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.
Montera den olåst disken och ange chroot-miljön (RAW/icke-LVM)
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}
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/
Försök att visa innehållet i katalogen /investigateroot/ för att kontrollera att den monterade partitionen nu är olåst:
ls /investigateroot/
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.
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.Montera startpartitionen på den krypterade disken till katalogen "/investigateroot/boot/" som i följande exempel:
mount /dev/sdc2 /investigateroot/boot/
Ändra active directory till den monterade rotpartitionen på den krypterade disken:
cd /investigateroot
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/
Ange chroot-miljön:
chroot /investigateroot/
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.
Metod 3: Kryptera om disken för att hämta nyckelfilen och låsa upp den krypterade disken
Skapa den virtuella reparationsdatorn och bifoga en kopia av den låsta disken till en virtuell reparationsdator:
- En hanterad disk finns i Felsöka en virtuell Linux-dator genom att ansluta den hanterade OS-disken till en virtuell reparationsdator.
- För en ohanterad disk använder du Storage Explorer för att skapa en kopia av den berörda virtuella datorns OS-disk. Mer information finns i Koppla en ohanterad disk till en virtuell dator för offlinereparation.
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
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.