Odblokowywanie zaszyfrowanego dysku z systemem Linux na potrzeby naprawy w trybie offline

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

W tym artykule opisano sposób odblokowywania dysku systemu operacyjnego z obsługą usługi Azure Disk Encryption (ADE) na potrzeby naprawy w trybie offline.

Usługę Azure Disk Encryption można zastosować do zatwierdzonych przez firmę Microsoft maszyn wirtualnych z systemem Linux. Poniżej przedstawiono kilka podstawowych wymagań dotyczących włączania usługi Azure Disk Encryption na maszynach wirtualnych z systemem Linux:

  • Azure Key Vault
  • Polecenia cmdlet interfejsu wiersza polecenia platformy Azure lub programu Windows PowerShell
  • Device-mapper (DM)-Crypt

Objawy

Jeśli usługa ADE jest włączona na dysku systemu operacyjnego, po próbie zainstalowania dysku na maszynie wirtualnej naprawy może zostać wyświetlony następujący komunikat o błędzie:

instalacja: nieprawidłowy typ fs, zła opcja, bad superblock na /dev/sda2, brak strony kodowej lub programu pomocniczego lub inny błąd

instalacja: nieznany typ systemu plików "LVM2_member"

Przygotowywanie

Przed odblokowaniem zaszyfrowanego dysku systemu operacyjnego do naprawy w trybie offline wykonaj następujące zadania:

  1. Upewnij się, że usługa ADE jest włączona na dysku.
  2. Ustal, czy dysk systemu operacyjnego korzysta z szyfrowania ADE w wersji 0 (szyfrowanie dwuprzepustowe) lub ADE w wersji 1 (szyfrowanie jednoprzepustowe).
  3. Określ, czy dysk systemu operacyjnego jest zarządzany, czy niezarządzany.
  4. Wybierz metodę, aby odblokować zaszyfrowany dysk.

Sprawdź, czy usługa ADE jest włączona na dysku

Ten krok można wykonać w witrynie Azure Portal, programie PowerShell lub interfejsie wiersza polecenia platformy Azure (interfejs wiersza polecenia platformy Azure).

Azure Portal

Wyświetl blok Przegląd dla maszyny wirtualnej, która zakończyła się niepowodzeniem w witrynie Azure Portal. Pod dyskiem wpis szyfrowania dysków platformy Azure będzie wyświetlany jako Włączony lub Nie włączono, jak pokazano na poniższym zrzucie ekranu.

Zrzut ekranu przedstawiający blok przeglądu maszyny wirtualnej W witrynie Azure Portal pokazujący, że usługa A D E jest włączona na dysku.

PowerShell

Za pomocą Get-AzVmDiskEncryptionStatus polecenia cmdlet można określić, czy system operacyjny lub woluminy danych maszyny wirtualnej są szyfrowane przy użyciu usługi ADE. Następujące przykładowe dane wyjściowe wskazują, że szyfrowanie ADE jest włączone na woluminie systemu operacyjnego:

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

Aby uzyskać więcej informacji na temat Get-AzureRmDiskEncryptionStatus polecenia cmdlet, zobacz Get-AzVMDiskEncryptionStatus (Az.Compute).

Interfejs wiersza polecenia platformy Azure

Możesz użyć az vm encryption show polecenia , aby sprawdzić, czy usługa ADE jest włączona na dyskach maszyn wirtualnych:

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

Aby uzyskać więcej informacji na temat az vm encryption show polecenia, zobacz az vm encryption show.

Uwaga

Jeśli usługa ADE nie jest włączona na dysku, zobacz następujący artykuł, aby dowiedzieć się, jak dołączyć dysk do maszyny wirtualnej naprawy: Rozwiązywanie problemów z maszyną wirtualną z systemem Linux przez dołączenie dysku systemu operacyjnego do maszyny wirtualnej naprawy.

Ustal, czy dysk systemu operacyjnego korzysta z usługi ADE w wersji 0 (szyfrowanie dwuprzepustowe) lub ADE w wersji 1 (szyfrowanie jednoprzepustowe)

Wersję programu ADE można zidentyfikować w witrynie Azure Portal, otwierając właściwości maszyny wirtualnej, a następnie wybierając pozycję Rozszerzenia , aby otworzyć blok Rozszerzenia . W bloku Rozszerzenia wyświetl numer wersji elementu AzureDiskEncryptionForLinux.

  • Jeśli numer wersji to 0.*, dysk używa szyfrowania dwuprzepustowego.
  • Jeśli numer wersji to 1.* lub nowsza wersja, dysk używa szyfrowania z jednym przekazywaniem.

Jeśli dysk używa SZYFROWANIA ADE w wersji 0 (szyfrowanie dwuprzepustowe), użyj metody 3 , aby odblokować dysk.

Określanie, czy dysk systemu operacyjnego jest zarządzany, czy niezarządzany

Jeśli nie wiesz, czy dysk systemu operacyjnego jest zarządzany, czy niezarządzany, zobacz Określanie, czy dysk systemu operacyjnego jest zarządzany, czy niezarządzany.

Jeśli dysk systemu operacyjnego jest dyskiem niezarządzanym, wykonaj kroki opisane w metodzie 3 , aby odblokować dysk.

Wybierz metodę, aby odblokować zaszyfrowany dysk

Wybierz jedną z następujących metod, aby odblokować zaszyfrowany dysk:

  • Jeśli dysk jest zarządzany i szyfrowany przy użyciu programu ADE w wersji 1, a zasady infrastruktury i firmy umożliwiają przypisanie publicznego adresu IP do naprawy maszyny wirtualnej, użyj metody 1: Odblokuj zaszyfrowany dysk automatycznie przy użyciu polecenia az vm repair.
  • Jeśli dysk jest zarządzany i szyfrowany przy użyciu programu ADE w wersji 1, ale infrastruktura lub zasady firmy uniemożliwiają przypisanie publicznego adresu IP do maszyny wirtualnej naprawy, użyj metody 2: Odblokuj zaszyfrowany dysk przez plik klucza w woluminie szyfrowania kluczy. Innym powodem wyboru tej metody jest brak uprawnień do tworzenia grupy zasobów na platformie Azure.
  • Jeśli którakolwiek z tych metod zakończy się niepowodzeniem lub jeśli dysk jest niezarządzany lub zaszyfrowany przy użyciu programu ADE w wersji 1 (szyfrowanie dwuprzepustowe), wykonaj kroki opisane w metodzie 3 , aby odblokować dysk.

Metoda 1. Automatyczne odblokowywanie zaszyfrowanego dysku przy użyciu polecenia az vm repair

Ta metoda opiera się na poleceniach az vm repair, aby automatycznie utworzyć maszynę wirtualną naprawy , dołączyć dysk systemu operacyjnego maszyny wirtualnej z systemem Linux do tej naprawy maszyny wirtualnej, a następnie odblokować dysk, jeśli jest zaszyfrowany. Ta metoda wymaga użycia publicznego adresu IP do naprawy maszyny wirtualnej i odblokuje zaszyfrowany dysk niezależnie od tego, czy klucz programu ADE jest niezapisany, czy opakowany przy użyciu klucza szyfrowania klucza (KEK).

Aby naprawić maszynę wirtualną przy użyciu tej metody automatycznej, wykonaj kroki opisane w temacie Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

Jeśli infrastruktura i zasady firmy nie zezwalają na przypisanie publicznego adresu IP lub jeśli az vm repair polecenie nie odblokuje dysku, przejdź do następnej metody.

Metoda 2. Odblokowywanie zaszyfrowanego dysku przez plik klucza w woluminie szyfrowania kluczy

Aby odblokować i zainstalować zaszyfrowany dysk ręcznie, wykonaj następujące kroki:

  1. Utwórz nową maszynę wirtualną naprawy i dołącz zaszyfrowany dysk do tej maszyny wirtualnej podczas tworzenia maszyny wirtualnej.

    Podczas tworzenia maszyny wirtualnej naprawy należy dołączyć zaszyfrowany dysk. Dzieje się tak, ponieważ system wykrywa, że dołączony dysk jest zaszyfrowany. W związku z tym pobiera klucz ADE z magazynu kluczy platformy Azure, a następnie tworzy nowy wolumin o nazwie "BEK VOLUME" do przechowywania pliku klucza.

  2. Zaloguj się do maszyny wirtualnej naprawy, a następnie odinstaluj wszystkie zainstalowane partycje na zaszyfrowanym dysku.

  3. Zidentyfikuj plik klucza programu ADE w woluminie SZYFROWANIA kluczy.

  4. Zidentyfikuj plik nagłówka w partycji rozruchowej zaszyfrowanego systemu operacyjnego.

  5. Odblokuj zaszyfrowany dysk przy użyciu pliku klucza usługi ADE i pliku nagłówka.

  6. Zainstaluj partycję: LVM, RAW lub non-LVM.

Tworzenie maszyny wirtualnej naprawy

  1. Utwórz migawkę zaszyfrowanego dysku systemu operacyjnego.

  2. Utwórz dysk na podstawie migawki. W przypadku nowego dysku wybierz tę samą lokalizację i strefę dostępności co maszyna wirtualna, która ma zostać naprawiona.

  3. Utwórz maszynę wirtualną, która jest oparta na następujących wytycznych:

    • W witrynie Azure Marketplace wybierz ten sam obraz maszyny wirtualnej naprawy, która została użyta dla maszyny wirtualnej, która zakończyła się niepowodzeniem. (Wersja systemu operacyjnego powinna być taka sama).
    • Wybierz rozmiar, który przydziela co najmniej 8 GB pamięci do maszyny wirtualnej.
    • Przypisz tę nową maszynę wirtualną do tej samej grupy zasobów, regionu i ustawień dostępności, które zostały użyte dla nowego dysku utworzonego w kroku 2.
  4. Na stronie Dyski kreatora Tworzenie maszyny wirtualnej dołącz nowy dysk (utworzony właśnie na podstawie migawki) jako dysk danych.

Ważne

Ponieważ ustawienia szyfrowania są wykrywane tylko podczas tworzenia maszyny wirtualnej, upewnij się, że podczas tworzenia maszyny wirtualnej dołącz dysk. Umożliwia to automatyczne dodanie woluminu zawierającego plik klucza usługi ADE do maszyny wirtualnej.

Odinstalowywanie wszystkich zainstalowanych partycji na zaszyfrowanym dysku

  1. Po utworzeniu maszyny wirtualnej naprawy protokół SSH na maszynie wirtualnej naprawy, zaloguj się przy użyciu odpowiednich poświadczeń, a następnie podnieś poziom konta do katalogu głównego:

    sudo -s 
    
  2. Wyświetl listę dołączonych urządzeń przy użyciu polecenia lsblk . W danych wyjściowych powinno zostać wyświetlonych wiele dołączonych dysków. Te dyski obejmują aktywny dysk systemu operacyjnego i zaszyfrowany dysk. Mogą one być wyświetlane w dowolnej kolejności.

  3. Zidentyfikuj zaszyfrowany dysk przy użyciu następujących informacji:

    • Dysk będzie miał wiele partycji
    • Dysk nie wyświetli katalogu głównego ("/") jako punktu instalacji dla żadnej z jego partycji.
    • Dysk będzie zgodny z rozmiarem zanotowany podczas jego tworzenia na podstawie migawki.

    W poniższym przykładzie dane wyjściowe wskazują, że "sdd" to zaszyfrowany dysk. Jest to jedyny dysk, który ma wiele partycji i nie wyświetla listy "/" jako punkt instalacji.

    Obraz przedstawiający pierwszy przykład

  4. Odinstalowywanie partycji na zaszyfrowanym dysku danych, który został zainstalowany w systemie plików. Na przykład w poprzednim przykładzie należy odinstalować zarówno "/boot/efi"* jak i "/boot".

    umount /boot/efi 
    
    umount /boot 
    

Identyfikowanie pliku klucza usługi ADE

Aby odblokować zaszyfrowany dysk, musisz mieć zarówno plik klucza, jak i plik nagłówka. Plik klucza jest przechowywany w woluminie BEK, a plik nagłówkowy znajduje się w partycji rozruchowej zaszyfrowanego dysku systemu operacyjnego.

  1. Ustal, która partycja jest woluminem szyfrowania danych:

    lsblk -fs | grep -i bek 
    

    Następujące przykładowe dane wyjściowe wskazują, że sdb1 jest woluminem BEK:

    >sdb1  vfat   BEK VOLUME      04A2-FE67 
    

    Jeśli nie istnieje wolumin BEK, utwórz ponownie maszynę wirtualną naprawy, dołączając zaszyfrowany dysk. Jeśli wolumin beK nadal nie jest dołączany automatycznie, wypróbuj metodę 3, aby pobrać wolumin BEK.

  2. Utwórz katalog o nazwie "azure_bek_disk" w folderze "/mnt":

    mkdir /mnt/azure_bek_disk 
    
  3. Zainstaluj wolumin BEK w katalogu "/mnt/azure_bek_disk". Jeśli na przykład sdb1 jest woluminem BEK, wprowadź następujące polecenie:

    mount /dev/sdb1 /mnt/azure_bek_disk 
    
  4. Ponownie wyświetl listę dostępnych urządzeń:

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

    Uwaga: Zobaczysz, że partycja, która została określona jako wolumin szyfrowania plików BEK, jest teraz zainstalowany w pliku "/mnt/azure_bek_disk".

  5. Wyświetl zawartość w katalogu "/mnt/azure_bek_disk/":

    ls -l /mnt/azure_bek_disk
    

    W danych wyjściowych powinny zostać wyświetlone następujące pliki (plik klucza usługi ADE to "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
    

    Może zostać wyświetlonych wiele "LinuxPassPhraseFileName", jeśli do zaszyfrowanej maszyny wirtualnej jest dołączony więcej niż jeden dysk. Wartość "LinuxPassPhraseFileName" zostanie wyliczona zgodnie z liczbą dysków w tej samej kolejności co numery jednostek logicznych (LUN).

Identyfikowanie pliku nagłówka

Partycja rozruchowa zaszyfrowanego dysku zawiera plik nagłówka. Użyjesz tego pliku wraz z plikiem klucza "LinuxPassPhraseFileName", aby odblokować zaszyfrowany dysk.

  1. Użyj następującego polecenia, aby wyświetlić wybrane atrybuty dostępnych dysków i partycji:

    lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT
    
  2. Na zaszyfrowanym dysku zidentyfikuj partycję systemu operacyjnego (partycję główną). Jest to największa partycja na zaszyfrowanym dysku. W poprzednich przykładowych danych wyjściowych partycja systemu operacyjnego to "sda4". Ta partycja musi zostać określona podczas uruchamiania polecenia odblokowywania.

  3. W katalogu głównym ("/") struktury plików utwórz katalog, w którym należy zainstalować partycję główną zaszyfrowanego dysku. Ten katalog będzie używany później po odblokowaniu dysku. Aby odróżnić ją od aktywnej partycji systemu operacyjnego maszyny wirtualnej naprawy, nadaj jej nazwę "zbadajroot".

    mkdir /{investigateboot,investigateroot}
    
  4. Na zaszyfrowanym dysku zidentyfikuj partycję rozruchową zawierającą plik nagłówka. Na zaszyfrowanym dysku partycja rozruchowa jest drugą co do wielkości partycją, która nie zawiera wartości w kolumnie LABEL lub PARTLABEL. W poprzednich przykładowych danych wyjściowych partycja rozruchowa zaszyfrowanego dysku to "sda2".

  5. Zainstaluj partycję rozruchową zidentyfikowaną w kroku 4 w katalogu /investigateboot/. W poniższym przykładzie partycja rozruchowa zaszyfrowanego dysku to sda2. Jednak lokalizacja w systemie może się różnić.

    mount /dev/sda2 /investigateboot/ 
    

    Jeśli instalowanie partycji nie powiedzie się i zwraca komunikat o błędzie "nieprawidłowy typ fs, zła opcja, zły superblock", spróbuj ponownie za pomocą mount -o nouuid polecenia, jak w poniższym przykładzie:

    mount -o nouuid /dev/sda2 /investigateboot/ 
    
  6. Wyświetl listę plików znajdujących się w katalogu /investigateboot/. Podkatalog "luks" zawiera plik nagłówka, który należy odblokować dysk.

  7. Wyświetl listę plików znajdujących się w katalogu /investigateboot/luks/. Plik nagłówka nosi nazwę "osluksheader".

    ls -l /investigateboot/luks 
    

Użyj pliku klucza programu ADE i pliku nagłówka, aby odblokować dysk

  1. cryptsetup luksOpen Użyj polecenia , aby odblokować partycję główną na zaszyfrowanym dysku. Jeśli na przykład ścieżka do partycji głównej zawierającej zaszyfrowany system operacyjny to /dev/sda4 i chcesz przypisać nazwę "osencrypt" do odblokowanej partycji, uruchom następujące polecenie:

    cryptsetup luksOpen --key-file /mnt/azure_bek_disk/LinuxPassPhraseFileName --header /investigateboot/luks/osluksheader /dev/sda4 osencrypt 
    
  2. Po odblokowaniu dysku odinstaluj partycję rozruchową zaszyfrowanego dysku z katalogu /investigateboot/:

    umount /investigateboot/ 
    

    Uwaga: później musisz zainstalować tę partycję w innym katalogu.

    Następnym krokiem jest zainstalowanie właśnie odblokowanej partycji. Metoda używana do instalowania partycji zależy od struktury mapowania urządzenia (LVM lub innej niż LVM), która jest używana przez dysk.

  3. Wyświetl listę informacji o urządzeniu wraz z typem systemu plików:

    lsblk -o NAME,FSTYPE 
    

    Zobaczysz odblokowaną partycję i przypisaną do niej nazwę (w naszym przykładzie ta nazwa to "osencrypt"):

Zainstaluj odblokowaną partycję i wprowadź środowisko chroot (tylko LVM)

Jeśli dyski korzystają ze struktury mapowania urządzenia LVM, należy wykonać dodatkowe kroki, aby zainstalować dysk i wprowadzić środowisko chroot. Aby używać narzędzia chroot razem z zaszyfrowanym dyskiem, odblokowana partycja ("osencrypt") i jego woluminy logiczne muszą być rozpoznawane jako grupa woluminów o nazwie rootvg. Jednak domyślnie partycja systemu operacyjnego naprawy maszyny wirtualnej i jej woluminy logiczne są już przypisane do grupy woluminów, która ma nazwę rootvg. Musimy rozwiązać ten konflikt, zanim będziemy mogli kontynuować.

  1. Użyj polecenia , pvs aby wyświetlić właściwości woluminów fizycznych LVM. Mogą zostać wyświetlone komunikaty ostrzegawcze, jak w poniższym przykładzie, które wskazują, że odblokowana partycja ("/dev/mapper/osencrypt") i inne urządzenie używają zduplikowanych unikatowych identyfikatorów (UUID). Alternatywnie mogą zostać wyświetlone dwie partycje przypisane do katalogu rootvg.

    Uwaga

    Chcesz, aby odblokowana partycja ("osencrypt") została przypisana do grupy woluminów rootvg, aby można było uzyskać dostęp do jego woluminów logicznych za pośrednictwem narzędzia chroot. Aby rozwiązać ten problem, tymczasowo zaimportujesz partycję do innej grupy woluminów i aktywujesz tę grupę woluminów. Następnie zmienisz nazwę bieżącej grupy woluminów rootvg. Dopiero po wprowadzeniu środowiska chroot zmienisz nazwę grupy woluminów zaszyfrowanego dysku na "rootvg".

Przypisywanie odblokowanej partycji (przykład)

  1. Zaimportuj nowo odblokowaną partycję do nowej grupy woluminów. W tym przykładzie tymczasowo nazywamy nową grupę woluminów "rescuemevg". Zaimportuj nowo odblokowaną partycję do nowej grupy woluminów. W tym przykładzie tymczasowo nazywamy nową grupę woluminów "rescuemevg".

  2. Aktywuj nową grupę woluminów:

    vgimportclone -n rescuemevg /dev/mapper/osencrypt
    vgchange -a y rescuemevg
    
  3. Zmień nazwę starej grupy woluminów rootvg. W tym przykładzie użyjemy nazwy "oldvg".

    vgrename rootvg oldvg 
    
  4. Uruchom polecenie lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT , aby przejrzeć dostępne urządzenia. Powinny być teraz widoczne obie grupy woluminów wymienione według przypisanych im nazw.

  5. Zainstaluj wolumin logiczny rescuemevg/rootlv do katalogu /investigateroot/ bez używania zduplikowanych identyfikatorów UUID:

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

    Teraz partycja główna maszyny wirtualnej, która zakończyła się niepowodzeniem, jest odblokowana i zainstalowana, i powinno być możliwe uzyskanie dostępu do partycji głównej, aby rozwiązać problemy. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z rozruchem maszyny wirtualnej z systemem Linux z powodu błędów systemu plików.

    Jeśli jednak chcesz użyć narzędzia chroot do rozwiązywania problemów, kontynuuj, wykonując następujące kroki.

  6. Zainstaluj partycję rozruchową zaszyfrowanego dysku w katalogu /zbadajroot/boot/ bez używania zduplikowanych identyfikatorów UUID. (Pamiętaj, że partycja rozruchowa zaszyfrowanego dysku jest drugą co do wielkości, która nie ma przypisanej etykiety partycji). W naszym bieżącym przykładzie partycja rozruchowa zaszyfrowanego dysku to sda2.

    mount -o nouuid /dev/sda2 /investigateroot/boot
    
  7. Zainstaluj partycję systemową EFI zaszyfrowanego dysku w katalogu /investigateroot/boot/efi. Tę partycję można zidentyfikować przy użyciu etykiety. W naszym bieżącym przykładzie partycja systemowa EFI to sda1.

    mount /dev/sda1 /investigateroot/boot/efi
    
  8. Zainstaluj pozostałe niezainstalowane woluminy logiczne w grupie woluminów zaszyfrowanego dysku do podkatalogów "/zbadajroot/":

    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. Zmień usługę Active Directory na zainstalowanej partycji głównej na zaszyfrowanym dysku:

    cd /investigateroot
    
  10. Wprowadź następujące polecenia, aby przygotować środowisko chroot:

    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. Wprowadź środowisko chroot:

    chroot /investigateroot/
    
  12. Zmień nazwę grupy woluminów rescuemevg na "rootvg", aby uniknąć konfliktów lub możliwych problemów z grub i initramfs. Zachowaj tę samą konwencję nazewnictwa podczas ponownego generowania initramfs. Ze względu na zmiany nazwy maszyny wirtualnej należy pracować nad ratunkiem maszyny wirtualnej. Ponowne uruchomienie nie będzie już przydatne. Maszyna wirtualna ratunkowa powinna być uważana za tymczasową maszynę wirtualną.

    vgrename rescuemevg rootvg
    
  13. Rozwiązywanie problemów w środowisku chroot. Można na przykład odczytywać dzienniki lub uruchamiać skrypt. Aby uzyskać więcej informacji, zobacz Wykonywanie poprawek w środowisku chroot.

  14. Zamknij program chroot i zamień dysk systemu operacyjnego.

Zainstaluj odblokowany dysk i wprowadź środowisko chroot (RAW/non-LVM)

  1. W katalogu głównym ("/") struktury plików utwórz katalog, w którym należy zainstalować partycję główną zaszyfrowanego dysku. Ten katalog będzie używany później po odblokowaniu dysku. Aby odróżnić ją od aktywnej partycji systemu operacyjnego maszyny wirtualnej naprawy, nadaj jej nazwę "zbadajroot".

    mkdir /{investigateboot,investigateroot}
    
  2. Zainstaluj nowo odblokowaną partycję ("osencrypt") do katalogu /investigateroot/:

    mount /dev/mapper/osencrypt /investigateroot/ 
    

    Jeśli instalowanie partycji zakończy się niepowodzeniem i zwróci komunikat o błędzie "nieprawidłowy typ fs, zła opcja, zły superblock", spróbuj ponownie przy użyciu polecenia instalacji -o nouuid :

    mount -o nouuid /dev/mapper/osencrypt /investigateroot/ 
    
  3. Spróbuj wyświetlić zawartość katalogu /investigateroot/, aby sprawdzić, czy zainstalowana partycja jest teraz odblokowana:

    ls /investigateroot/ 
    
  4. Teraz partycja główna maszyny wirtualnej, która zakończyła się niepowodzeniem, jest odblokowana i zainstalowana, możesz uzyskać dostęp do partycji głównej, aby rozwiązać problemy. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z rozruchem maszyny wirtualnej z systemem Linux z powodu błędów systemu plików.

    Jeśli jednak chcesz użyć narzędzia chroot do rozwiązywania problemów, przejdź do następnego kroku.

  5. Użyj polecenia lsblk -o NAME,SIZE,LABEL,PARTLABEL,MOUNTPOINT , aby przejrzeć dostępne urządzenia. Zidentyfikuj partycję rozruchową na zaszyfrowanym dysku jako drugą co do wielkości partycję, która nie ma przypisanej etykiety.

  6. Zainstaluj partycję rozruchową na zaszyfrowanym dysku w katalogu "/zbadajroot/boot/", jak pokazano w poniższym przykładzie:

    mount /dev/sdc2 /investigateroot/boot/ 
    
  7. Zmień usługę Active Directory na zainstalowanej partycji głównej na zaszyfrowanym dysku:

    cd /investigateroot 
    
  8. Wprowadź następujące polecenia, aby przygotować środowisko chroot:

    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. Wprowadź środowisko chroot:

    chroot /investigateroot/ 
    
  10. Rozwiązywanie problemów w środowisku chroot. Dzienniki można odczytywać lub uruchamiać skrypt. Aby uzyskać więcej informacji, zobacz Wykonywanie poprawek w środowisku chroot.

  11. Zamknij program chroot i zamień dysk systemu operacyjnego.

Metoda 3. Ponowne szyfrowanie dysku w celu pobrania pliku klucza i odblokowanie zaszyfrowanego dysku

  1. Utwórz maszynę wirtualną naprawy i dołącz kopię zablokowanego dysku do maszyny wirtualnej naprawy:

  2. Po dołączeniu zaszyfrowanego dysku jako dysku danych do naprawy maszyny wirtualnej użyj usługi Key Vault i klucza szyfrowanego kluczem (KEK), który był używany przez oryginalną maszynę wirtualną do ponownego zaszyfrowania tego dysku danych. Ten proces automatycznie wygeneruje i zainstaluje wolumin BEK przy użyciu pliku klucza BKE na maszynie wirtualnej naprawy. Nie można użyć opcji EncryptFormatAll , ponieważ rozszerzenie programu ADE może zaszyfrować sektor rozruchowy na dysku danych.

    • Jeśli oryginalna maszyna wirtualna jest szyfrowana za pomocą opakowanego klucza szyfrowania kluczy, uruchom następujące polecenie.

       az vm encryption enable -g "resource group" --name "VMName" --disk-encryption-keyvault "keyvault"  --key-encryption-key "kek" --volume-type "data"
      
    • Jeśli oryginalna maszyna wirtualna jest szyfrowana za pomocą klucza szyfrowania kluczy sieciowych, uruchom następujące polecenie:

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

      Aby określić wartości funkcji disk-encryption-keyvault i key-encryption-key, uruchom następujące polecenie:

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

      W poniższej tabeli znajdź wartości w danych wyjściowych. Jeśli wartość keyEncryptionKey jest pusta, maszyna wirtualna jest szyfrowana za pomocą klucza szyfrowania kluczy.

      Parametr Wartość w danych wyjściowych Przykład
      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. Uruchom następujące polecenie, aby sprawdzić, czy jest dołączony nowy dysk:

    lsblk -f
    

    Jeśli nowy dysk jest dołączony, przejdź do pozycji Identyfikowanie pliku klucza usługi ADE w woluminie SZYFROWANIA kluczy, a następnie kontynuuj wykonywanie podanych kroków w celu odblokowania dysku.

Następne kroki

Jeśli masz problemy z nawiązywaniem połączenia z maszyną wirtualną, zobacz Rozwiązywanie problemów z połączeniami SSH z maszyną wirtualną platformy Azure.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.