Устранение неполадок в linux VM путем крепления диска ОС к VM восстановления с помощью портала Azure

Если виртуальная машина Linux (VM) столкнулась с ошибкой загрузки или диска, может потребоваться выполнить действия по устранению неполадок на самом виртуальном жестком диске. Распространенным примером может быть недействительный вход, /etc/fstab который не позволяет VM успешно загрузиться. В этой статье подробно сообщается, как использовать портал Azure для подключения виртуального жесткого диска к другому виртуальному компьютеру Linux для устранения ошибок, а затем повторного создания исходного виртуального компьютера.

Обзор процесса восстановления

Процесс устранения неполадок следующим образом:

  1. Остановите затронутый VM.
  2. Снимок для диска ОС VM.
  3. Создайте виртуальный жесткий диск из снимка.
  4. Прикрепить и установить виртуальный жесткий диск к другому VM Linux для устранения неполадок.
  5. Подключение устранение неполадок. Изменение файлов или запуск любых средств для устранения проблем на исходном виртуальном жестком диске.
  6. Отсоединить виртуальный жесткий диск от устранения неполадок.
  7. Обмен диском ОС для VM.

Примечание

Эта статья не применяется к VM с неугодным диском. Для зашифрованного диска Linux см. в примере Unlocking an encrypted Linux disk for offline repair.

Определение проблем загрузки

Изучите диагностику загрузки и снимок экрана VM, чтобы определить, почему ваш VM не может правильно загрузиться. Распространенным примером может быть недействительный вход в /etc/fstabили удаление или перемещение виртуального жесткого диска.

Выберите свой VM на портале и прокрутите вниз в раздел Поддержка и устранение неполадок . Щелкните диагностику загрузки, чтобы просмотреть сообщения консоли, стримингуемой из вашего VM. Просмотрите журналы консоли, чтобы узнать, можно ли определить причину, по которой УАМ сталкивается с проблемой. В следующем примере показан застрять VM в режиме обслуживания, требуемом ручного взаимодействия:

Снимок экрана просмотра журналов консоли диагностики загрузки V M.

Вы также можете щелкнуть снимок экрана в верхней части журнала диагностики загрузки, чтобы скачать снимок экрана VM.

Снимок диска OS

Снимок — это полная, только для чтения копия виртуального жесткого диска (VHD). Прежде чем сделать снимок, рекомендуется закрыть VM, чтобы очистить все процессы, которые находятся в процессе. Чтобы сделать снимок диска ОС, выполните следующие действия:

  1. Перейдите на портал Azure. Выберите виртуальные машины из боковой панели, а затем выберите виртуальный компьютер с проблемой.

  2. На левой области выберите диски, а затем выберите имя диска ОС.

    Снимок экрана показывает имя диска операционной системы.

  3. На странице Обзор диска ОС выберите Создать снимок.

  4. Создайте снимок в том же расположении, что и диск ОС.

Создание диска из снимка

Чтобы создать диск из снимка, выполните следующие действия:

  1. Выберите облачную оболочку на портале Azure.

    Снимок экрана кнопки Cloud Shell на портале Azure.

  2. Запустите следующие команды PowerShell, чтобы создать управляемый диск из снимка. Следует заменить эти примерные имена соответствующими именами.

    #Provide the name of your resource group
    $resourceGroupName ='myResourceGroup'
    
    #Provide the name of the snapshot that will be used to create Managed Disks
    $snapshotName = 'mySnapshot' 
    
    #Provide the name of theManaged Disk
    $diskName = 'newOSDisk'
    
    #Provide the size of the disks in GB. It should be greater than the VHD file size. In this sample, the size of the snapshot is 127 GB. So we set the disk size to 128 GB.
    $diskSize = '128'
    
    #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
    $storageType = 'Standard_LRS'
    
    #Provide the Azure region (e.g. westus) where Managed Disks will be located.
    #This location should be same as the snapshot location
    #Get all the Azure location using command below:
    #Get-AzLocation
    $location = 'westus'
    
    $snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName 
    
    $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id
    
    New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
    
  3. Если команды успешно работают, вы увидите новый диск в предоставленной группе ресурсов.

Присоединение диска к другому VM

В следующих нескольких шагах для устранения неполадок используется другой VM. После крепления диска к VM-адресу устранения неполадок можно просматривать и изменять содержимое диска. Этот процесс позволяет исправить ошибки конфигурации или просмотреть дополнительные файлы журнала приложений или систем. Чтобы прикрепить диск к другому VM, выполните следующие действия:

  1. Выберите группу ресурсов на портале, а затем выберите устранение неполадок. Выберите диски, выберите Изменить и нажмите кнопку Добавить диск данных:

    Снимок экрана параметра Добавить диск данных на портале Azure.

  2. В списке Диски данных выберите диск ОПЕРАЦИОННОй системы VM, который вы идентифицировали. Если вы не видите диск ОС, убедитесь, что устранение неполадок VM и диска ОС находится в том же регионе (расположении).

  3. Выберите Сохранить , чтобы применить изменения.

Установка подключенного диска данных

Примечание

В следующих примерах подробно рассказывается о действиях, необходимых для VM Ubuntu. Если вы используете другой дистрибутив Linux, например Red Hat Enterprise Linux или SUSE, mount расположение файлов журнала и команды могут быть немного другими. Обратитесь к документации для конкретного дистро для соответствующих изменений в командах.

  1. SSH для устранения неполадок vM с помощью соответствующих учетных данных. Если этот диск является первым диском данных, подключенным к вашему VM-компьютеру, он, скорее всего, подключен к /dev/sdc. Используйте dmseg для списка присоединенных дисков:

    dmesg | grep SCSI
    

    Вывод аналогиен следующему примеру:

    [    0.294784] SCSI subsystem initialized
    [    0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [    7.110271] sd 2:0:0:0: [sda] Attached SCSI disk
    [    8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk
    [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
    

    В предыдущем примере диск ОС находится на уровне, /dev/sda а временный диск, предоставленный для каждого VM, находится на уровне /dev/sdb. Если у вас несколько дисков данных, они должны быть на /dev/sdd, и /dev/sdeтак далее.

  2. Создайте каталог для установки существующего виртуального жесткого диска. В следующем примере создается каталог с именем troubleshootingdisk:

    sudo mkdir /mnt/troubleshootingdisk
    
  3. Если на существующем виртуальном жестком диске имеется несколько разделов, смонтировать необходимый раздел. В следующем примере устанавливается первый первичный раздел по следующим разделам /dev/sdc1:

    sudo mount /dev/sdc1 /mnt/troubleshootingdisk
    

    Примечание

    Лучше всего установить диски данных на виртуальных компьютерах в Azure с помощью универсального уникального идентификатора (UUID) виртуального жесткого диска. Для этого короткого сценария устранения неполадок установка виртуального жесткого диска с помощью UUID не требуется. Однако при нормальном использовании /etc/fstab изменение установки виртуальных жестких дисков с использованием имени устройства, а не UUID может привести к сбой загрузки VM.

Устранение проблем на исходном виртуальном жестком диске

С помощью существующего виртуального жесткого диска теперь можно выполнять любые действия по обслуживанию и устранению неполадок по мере необходимости. После решения проблем продолжайте следующие действия.

Отсоединять и отсоединить исходный виртуальный жесткий диск

После устранения ошибок отсоедините существующий виртуальный жесткий диск от устранения неполадок. Вы не можете использовать виртуальный жесткий диск с любым другим виртуальным компьютером до тех пор, пока не будет выпущена аренда, привязывающий виртуальный жесткий диск к VM- устранению неполадок.

  1. От сеанса SSH до устранения неполадок VM отостановите существующий виртуальный жесткий диск. Сначала измените родительский каталог для точки установки:

    cd /
    

    Теперь разгрузка существующего виртуального жесткого диска. В следующем примере устройство не будет перенагружено по следующему примеру /dev/sdc1:

    sudo umount /dev/sdc1
    
  2. Теперь отсоединим виртуальный жесткий диск от виртуального компьютера. Выберите свой VM на портале и нажмите диски. Выберите существующий виртуальный жесткий диск и нажмите кнопку Detach:

    Снимок экрана, чтобы отсоедидить виртуальный жесткий диск от V M.

    Подождите, пока VM успешно отсоединил диск данных, прежде чем продолжить.

Обмен диском ОС для VM

Портал Azure теперь поддерживает изменение операционного диска VM. Для этого выполните следующие действия:

  1. Перейдите на портал Azure. Выберите виртуальные машины из боковой панели, а затем выберите виртуальный компьютер с проблемой.

  2. На левой области выберите диски и выберите диск Swap OS.

    Снимок экрана параметра Swap O S Disk на портале Azure.

  3. Выберите новый диск, который вы отремонтировали, а затем введите имя VM, чтобы подтвердить изменение. Если диск не в списке, подождите 10 ~ 15 минут после отсоединения диска от устранения неполадок. Также убедитесь, что диск находится в том же расположении, что и VM.

  4. Нажмите OK.

Дальнейшие действия

Если возникли проблемы с подключением к вашему VM, см. в примере Устранение неполадок подключения SSH к azure VM. О проблемах с доступом к приложениям, работающим на вашем VM, см. в выпуске Устранение неполадок с подключением приложений в VM Linux.

Дополнительные сведения об использовании диспетчера ресурсов см. в обзоре Azure Resource Manager.