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

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ługa Azure Disk Encryption może być stosowana do maszyn wirtualnych z systemem Linux zatwierdzonych przez firmę Microsoft. Poniżej przedstawiono podstawowe wymagania dotyczące włączania usługi Azure Disk Encryption na maszynach wirtualnych z systemem Linux:

Symptomy

Jeśli usługa ADE jest włączona na dysku systemu operacyjnego, po próbie zainstalowania dysku na maszynie wirtualnej naprawy mogą zostać wyświetlone następujące komunikaty o błędach:

instalowanie: nieprawidłowy typ fs, zła opcja, nieprawidłowa superblok na /dev/sda2, brakujące strony kodowej lub program pomocniczy lub inny błąd

instalacja: nieznany typ systemu plików "LVM2_member"

Przygotowanie

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. Określ, czy dysk systemu operacyjnego używa szyfrowania ADE w wersji 0 (szyfrowanie dwuprzepustowe) czy ADE w wersji 1 (szyfrowanie jednoprzepustowe).
  3. Określ, czy dysk systemu operacyjnego jest zarządzany, czy niezarządzany.
  4. Wybierz metodę odblokowywania zaszyfrowanego dysku.

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

Ten krok można wykonać w 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 uległa awarii w Azure Portal. W obszarze Dysk wpis szyfrowania dysków platformy Azure będzie wyświetlany jako Włączone lub Nie włączone, jak pokazano na poniższym zrzucie ekranu.

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

PowerShell

Za pomocą Get-AzVmDiskEncryptionStatus polecenia cmdlet można określić, czy woluminy systemu operacyjnego lub danych dla 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ć polecenia , az vm encryption show 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 używa szyfrowania ADE w wersji 0 (szyfrowanie dwuprzepustowe) czy ADE w wersji 1 (szyfrowanie jednoprzepustowe)

Wersję ADE można zidentyfikować w 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 podwójnego dostępu.
  • Jeśli numer wersji to 1.* lub nowsza wersja, dysk używa szyfrowania jednoprzepustowego.

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ę odblokowywania zaszyfrowanego dysku

Wybierz jedną z następujących metod odblokowywania zaszyfrowanego dysku:

  • Jeśli dysk jest zarządzany i szyfrowany przy użyciu usługi ADE w wersji 1, a zasady infrastruktury i firmy umożliwiają przypisanie publicznego adresu IP do naprawy maszyny wirtualnej, użyj metody 1: automatyczne odblokowywanie zaszyfrowanego dysku za pomocą polecenia az vm repair.
  • Jeśli dysk jest zarządzany i szyfrowany przy użyciu usługi ADE w wersji 1, ale zasady infrastruktury lub firmy uniemożliwiają przypisanie publicznego adresu IP do naprawy maszyny wirtualnej, użyj metody 2: Odblokuj zaszyfrowany dysk za pomocą pliku Klucz w woluminie BEK. Innym powodem wybrania tej metody jest brak uprawnień do tworzenia grupy zasobów na platformie Azure.
  • Jeśli któraś z tych metod nie powiedzie się lub dysk jest niezarządzany lub zaszyfrowany przy użyciu usługi ADE w wersji 1 (szyfrowanie z podwójnym przekazywaniem), 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ć naprawczą maszynę wirtualną, dołączyć dysk systemu operacyjnego nieudanej maszyny wirtualnej z systemem Linux do tej maszyny wirtualnej naprawy, a następnie odblokować dysk, jeśli jest zaszyfrowany. Ta metoda wymaga użycia publicznego adresu IP na potrzeby naprawy maszyny wirtualnej i odblokowuje zaszyfrowany dysk niezależnie od tego, czy klucz ADE jest nieopakowany, czy opakowywany przy użyciu klucza szyfrowania klucza (KEK).

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

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

Metoda 2. Odblokowywanie zaszyfrowanego dysku za pomocą pliku klucza w woluminie BEK

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

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

    Podczas tworzenia maszyny wirtualnej do 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 naprawy maszyny wirtualnej, a następnie odinstaluj wszystkie zainstalowane partycje na zaszyfrowanym dysku.

  3. Zidentyfikuj plik klucza ADE w woluminie BEK.

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

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

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

Tworzenie naprawczej maszyny wirtualnej

  1. Wykonaj 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 problematyczna maszyna wirtualna, którą chcesz naprawić.

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

    • W Azure Marketplace wybierz ten sam obraz dla maszyny wirtualnej naprawy, która została użyta dla maszyny wirtualnej, która uległa awarii. (Wersja systemu operacyjnego powinna być taka sama).
    • Wybierz rozmiar, który przydziela maszynie wirtualnej co najmniej 8 GB pamięci.
    • 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żna

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

Odinstaluj wszystkie zainstalowane partycje na zaszyfrowanym dysku

  1. Po utworzeniu maszyny wirtualnej naprawy SSH do maszyny 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ą być wyświetlane w dowolnej kolejności.

  3. Zidentyfikuj zaszyfrowany dysk, korzystając z 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 zanotowanym podczas tworzenia go na podstawie migawki.

    W poniższym przykładzie dane wyjściowe wskazują, że "sdd" jest zaszyfrowanym dyskiem. Jest to jedyny dysk, który ma wiele partycji i który nie zawiera listy "/" jako punktu instalacji.

    Obraz przedstawiający pierwszy przykład

  4. Odinstaluj wszystkie partycje na zaszyfrowanym dysku danych, które zostały zainstalowane 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 ADE

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

  1. Określ, która partycja jest woluminem BEK:

    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 wolumin BEK nie istnieje, utwórz ponownie maszynę wirtualną naprawy, dołączając zaszyfrowany dysk. Jeśli wolumin BEK nadal nie jest dołączany automatycznie, spróbuj użyć metody 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 bek jest teraz zainstalowana w "/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 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
    

    Jeśli do zaszyfrowanej maszyny wirtualnej jest dołączony więcej niż jeden dysk, może zostać wyświetlonych wiele elementów "LinuxPassPhraseFileName". Wartość "LinuxPassPhraseFileName" zostanie wyliczona zgodnie z liczbą dysków w tej samej kolejności co ich 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". Tę partycję należy określić podczas uruchamiania polecenia odblokowywania.

  3. W katalogu głównym ("/") struktury plików utwórz katalog, w którym ma zostać zainstalowana partycja główna zaszyfrowanego dysku. Użyjesz tego katalogu później, po odblokowaniu dysku. Aby odróżnić ją od aktywnej partycji systemu operacyjnego naprawy maszyny wirtualnej, nadaj jej nazwę "investigateroot".

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

  5. Zainstaluj partycję rozruchu określoną 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, nieprawidłowe superblokowanie", 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 musi zostać odblokowany.

  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 ADE i pliku nagłówka, aby odblokować dysk

  1. Użyj polecenia , cryptsetup luksOpen 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 odblokowanych 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ę rozruchu zaszyfrowanego dysku z katalogu /investigateboot/:

    umount /investigateboot/ 
    

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

    Następnym krokiem jest zainstalowanie właśnie odblokowanego partycji. Metoda używana do instalowania partycji zależy od struktury mapowania urządzeń (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ą z platformy mapowania urządzeń LVM, musisz wykonać dodatkowe kroki, aby zainstalować dysk i wprowadzić środowisko chroot. Aby używać narzędzia chroot razem z zaszyfrowanym dyskiem, odblokowana partycja ("osencrypt") i jej woluminy logiczne muszą być rozpoznawane jako grupa woluminów o nazwie rootvg. Jednak domyślnie naprawa partycji systemu operacyjnego maszyny wirtualnej i jej woluminów logicznych jest już przypisana do grupy woluminów o nazwie 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, wskazujące, że odblokowana partycja ("/dev/mapper/osencrypt") i inne urządzenie używają zduplikowanych uniwersalnie unikatowych identyfikatorów (UUID). Alternatywnie mogą zostać wyświetlone dwie partycje przypisane do narzędzia rootvg.

    Uwaga

    Chcesz, aby tylko odblokowana partycja ("osencrypt") została przypisana do grupy woluminów rootvg, aby można było uzyskać dostęp do jej 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 zostać wyświetlone obie grupy woluminów wymienione przez przypisane im nazwy.

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

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

    Teraz partycja główna maszyny wirtualnej, która uległa awarii, jest odblokowana i zainstalowana. Aby rozwiązać problemy, powinien być dostępny dostęp do partycji głównej. 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 poniższe kroki.

  6. Zainstaluj partycję rozruchu zaszyfrowanego dysku w katalogu /investigateroot/boot/ bez użycia 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ę systemu EFI zaszyfrowanego dysku w katalogu /investigateroot/boot/efi. Tę partycję można zidentyfikować za pomocą jej etykiety. W naszym bieżącym przykładzie partycja systemu EFI to sda1.

    mount /dev/sda1 /investigateroot/boot/efi
    
  8. Zainstaluj pozostałe nieinstalowane woluminy logiczne w grupie woluminów zaszyfrowanego dysku do podkatalogów "/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. Zmień usługę Active Directory na zainstalowaną partycję główną 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 sieci wirtualnej należy pracować na maszynie wirtualnej ratowniczej. Po ponownym uruchomieniu nie będzie to już przydatne. Maszynę wirtualną ratowniczą należy uznać za tymczasową maszynę wirtualną.

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

  14. Zamknij 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 ma zostać zainstalowana partycja główna zaszyfrowanego dysku. Użyjesz tego katalogu później, po odblokowaniu dysku. Aby odróżnić ją od aktywnej partycji systemu operacyjnego naprawy maszyny wirtualnej, nadaj jej nazwę "investigateroot".

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

    mount /dev/mapper/osencrypt /investigateroot/ 
    

    Jeśli instalowanie partycji nie powiedzie się i zwraca komunikat o błędzie "nieprawidłowy typ fs, zła opcja, nieprawidłowa superblok", spróbuj ponownie za pomocą 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 uległa awarii, 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ę bez etykiety.

  6. Zainstaluj partycję rozruchu na zaszyfrowanym dysku w katalogu "/investigateroot/boot/", jak w poniższym przykładzie:

    mount /dev/sdc2 /investigateroot/boot/ 
    
  7. Zmień usługę Active Directory na zainstalowaną partycję główną 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. Możesz odczytywać dzienniki lub uruchamiać skrypt. Aby uzyskać więcej informacji, zobacz Wykonywanie poprawek w środowisku chroot.

  11. Zamknij chroot i zamień dysk systemu operacyjnego.

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

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

  2. Po dołączeniu zaszyfrowanego dysku jako dysku danych do maszyny wirtualnej do naprawy użyj klucza Key Vault i klucza szyfrowanego (KEK), które były używane dla oryginalnej maszyny wirtualnej do ponownego szyfrowania tego dysku danych. Ten proces spowoduje automatyczne wygenerowanie i zainstalowanie woluminu bek przy użyciu pliku klucza BKE na maszynie wirtualnej naprawy. Nie można użyć opcji EncryptFormatAll , ponieważ rozszerzenie ADE może zaszyfrować sektor rozruchu na dysku danych.

    • Jeśli oryginalna maszyna wirtualna jest szyfrowana za pomocą opakowanego zestawu BEK, 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 przez zestaw BEK, 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 dla 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 BEK.

      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
      klucz szyfrowania klucza keyEncryptionKey:KeyURI https://ContosoKeyvault.vault.azure.net/keys/mykey/00000000987145a3b79b0ed415fa0000
  3. Uruchom następujące polecenie, aby sprawdzić, czy nowy dysk jest dołączony:

    lsblk -f
    

    Jeśli nowy dysk jest dołączony, przejdź do pozycji Identyfikowanie pliku klucza ADE w woluminie BEK, a następnie wykonaj podane kroki, aby odblokować dysk.

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 pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.