Låsa upp en krypterad Linux-disk för offlinereparation
Den här artikeln beskriver 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
Symptom
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, dålig 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 (kryptering med enkel åtkomst).
- Avgör om OS-disken är hanterad eller 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 Portal, PowerShell eller Azure-kommandoradsgränssnittet (Azure CLI).
Azure Portal
Visa bladet Översikt för den misslyckade virtuella datorn i Azure Portal. Under Disk visas Posten för Azure-diskkryptering antingen som Aktiverad eller Inte aktiverad, som du ser i 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 Get-AzureRmDiskEncryptionStatus
finns i 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.
Obs!
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 (kryptering med enkel överföring)
Du kan identifiera ADE-versionen i Azure Portal 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 enkel pass-kryptering.
Om disken använder ADE version 0 (kryptering med dubbla passerkort) använder du metod 3 för att låsa upp disken.
Avgöra om OS-disken är hanterad eller ohanterad
Om du inte vet om OS-disken är hanterad eller ohanterad läser du Kontrollera 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 hjälp av 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 på BEK-volymen. En annan anledning till 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 hjälp av ADE version 1 (kryptering med dubbla passerkort) 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 virtuella Azure-datorer.
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 på BEK-volymen
Följ dessa steg för att låsa upp och montera den krypterade disken manuellt:
-
Du måste ansluta den krypterade disken när du skapar den virtuella reparationsdatorn. Det 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 problemdatorn som du vill reparera.
Skapa en virtuell dator som baseras på följande riktlinjer:
- I 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 i den virtuella datorn automatiskt.
Demontera eventuella monterade partitioner på den krypterade disken
När den virtuella reparationsdatorn har skapats loggar du 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 inkluderar 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 storleken 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 visar "/" som en monteringspunkt.
Demontera 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 på BEK-volymen och huvudfilen finns i startpartitionen för den krypterade OS-disken.
Bestäm 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 återskapar du den virtuella reparationsdatorn 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
Observera: 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 kommer att använda 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 startpartitionen 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" försöker du 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 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/
Observera: Du måste montera partitionen till en annan katalog senare.
Nästa steg är att montera partitionen som du precis 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.
Ange 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 det 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 upplåst partitionen ("osencrypt") och dess logiska volymer identifieras som den volymgrupp som heter rootvg. Som standard är dock den virtuella reparationsdatorns OS-partition och dess logiska volymer redan tilldelade till en volymgrupp som har namnet rootvg. Vi måste lösa 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 upplåsda partitionen ("/dev/mapper/osencrypt") och en annan enhet använder dubbla universellt unika identifierare (UUID). Du kan också se två partitioner tilldelade till rootvg.Obs!
Du vill bara att den olåsda 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 den 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 upplåst partitionen till en ny volymgrupp. I det här exemplet namnger vi tillfälligt den nya volymgruppen "rescuemevg". Importera den nyligen upplå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 de tillgängliga enheterna. 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 startproblem för 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 till "/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 att vg-namnet ändras kan du arbeta med den virtuella återställningsdatorn. 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 kommer att använda 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 upplå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" försöker du 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 är upplåst och monterad kan du komma åt rotpartitionen för att felsöka problemen. Mer information finns i Felsöka startproblem för 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 de tillgängliga enheterna. 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 koppla 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 den Key Vault och nyckelkrypterade nyckeln (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 disk-encryption-keyvault och key-encryption-key:
az vm encryption show --name "OriginalVmName" --resource-group "ResourceGroupName"
Leta upp värdena i utdata i följande tabell. 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 nyckelkrypteringsnyckel 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 läser du Felsöka SSH-anslutningar till en virtuell Azure-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.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för