Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
O acordo de nível de serviço (SLA) da plataforma Azure aplica-se às máquinas virtuais (VMs) que executam o sistema operativo Linux apenas quando está a usar uma das distribuições endossadas. Para distribuições endossadas, o Azure Marketplace fornece imagens Linux pré-configuradas. Para obter mais informações, consulte:
Todas as outras distribuições a correr no Azure, incluindo distribuições apoiadas pela comunidade e não endossadas, têm alguns pré-requisitos.
Este artigo foca-se em orientações gerais para executar a sua distribuição Linux no Azure. Este artigo não pode ser abrangente, porque cada distribuição é diferente. Mesmo que cumpra todos os critérios que este artigo descreve, pode ser necessário ajustar significativamente o seu sistema Linux para que funcione corretamente.
Notas gerais de instalação do Linux
Importante
Os passos de preparação remota para o NVMe neste artigo são opcionais. Preencha-os apenas se estiver a criar uma imagem que pretende implementar com um controlador remoto de disco NVMe. Se a VM de destino usar SCSI, ignore todos os passos rotulados para NVMe remoto e mantenha as definições padrão. O NVMe remoto requer uma imagem Gen2 e uma versão suportada do sistema operativo. Verifique a capacidade do tamanho exato da DiskControllerTypes VM de destino e consulte as imagens de sistema operativo suportadas para NVMe remoto. Não infiras o tipo de controlador apenas a partir da geração da série VM.
Azure não suporta o formato Hyper-V disco rígido virtual (VHDX). O Azure suporta apenas VHD fixo. Pode converter o disco para formato VHD usando Hyper-V Manager ou o cmdlet Convert-VHD. Se estiveres a usar o VirtualBox, seleciona Tamanho Fixo em vez do padrão (Alocado Dinamicamente) ao criar o disco.
O Azure suporta máquinas virtuais Gen1 (arranque BIOS) e Gen2 (arranque UEFI).
O módulo do kernel da tabela virtual de alocação de ficheiros (VFAT) deve estar ativado no kernel.
O tamanho máximo permitido para o VHD é de 1.023 GB.
Ao instalar o sistema Linux, recomendamos que use partições padrão em vez do Logical Volume Manager (LVM). O LVM é o padrão para muitas instalações.
Usar partições padrão evitará conflitos de nomes LVM com VMs clonadas, especialmente se um disco do sistema operativo for ligado a outra VM idêntica para resolução de problemas. Pode usar LVM ou RAID em discos de dados.
É necessário o suporte do kernel para montar sistemas de ficheiros de função definida pelo utilizador (UDF). No primeiro arranque no Azure, a configuração de provisionamento é passada para a VM Linux através de media formatada em UDF que está ligada ao convidado. O agente Azure Linux deve montar o sistema de ficheiros UDF para ler a sua configuração e provisionar a VM.
As versões do kernel Linux anteriores à 2.6.37 não suportam Acesso à Memória Não Uniforme (NUMA) em Hyper-V com VMs de maior dimensão. Este problema afeta principalmente distribuições mais antigas que utilizam o kernel upstream Red Hat 2.6.32. Foi corrigido no Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504).
Sistemas a executar kernels personalizados anteriores à 2.6.37, ou kernels baseados em RHEL anteriores à 2.6.32-504, devem definir o parâmetro
numa=offde arranque na linha de comandos do kernel em grub.conf. Para obter mais informações, consulte Red Hat KB 436883.Não configures uma partição swap no disco do sistema operativo. Pode configurar o agente Linux para criar um ficheiro de swap no disco de recurso temporário, conforme descrito mais adiante neste artigo.
Todos os VHDs no Azure devem ter um tamanho virtual alinhado a 1 MB (1024 x 1024 bytes). Quando estiver a converter de um disco bruto para VHD, certifique-se de que o tamanho bruto do disco é múltiplo de 1 MB antes da conversão, conforme descrito mais adiante neste artigo.
Use a versão da distribuição, os pacotes e o software mais atualizados.
Remover utilizadores e contas do sistema, chaves públicas, dados sensíveis, software e aplicações desnecessários.
Note
A versão 21.2 ou posterior do cloud-init remove o requisito UDF. Mas sem o udf módulo ativado, o CD-ROM não monta durante o provisionamento, o que impede que os dados personalizados sejam aplicados. Uma solução alternativa é aplicar dados do utilizador. No entanto, ao contrário dos dados personalizados, os dados do utilizador não estão encriptados. Para mais informações, consulte formatos de dados de utilizador na documentação cloud-init.
Instale módulos do kernel sem Hyper-V
Azure corre no hipervisor Hyper-V, por isso o Linux exige que certos módulos do kernel corram em Azure. Se tiveres uma VM criada fora do Hyper-V, os instaladores Linux podem não incluir os drivers para Hyper-V no disco RAM inicial (initrd ou initramfs), a menos que a VM detete que está a correr num ambiente Hyper-V.
Quando estás a usar um sistema de virtualização diferente (como o VirtualBox ou o KVM) para preparar a tua imagem Linux, poderás ter de reconstruir o initrd para que, pelo menos, os módulos do kernel hv_vmbus e hv_storvsc estejam disponíveis no disco RAM inicial. Este problema conhecido aplica-se a sistemas baseados na distribuição upstream do Red Hat, e possivelmente a outros.
O mecanismo para reconstruir a imagem initrd ou initramfs pode variar, dependendo da distribuição. Consulte a documentação correspondente ou o suporte técnico da sua distribuição para obter o procedimento adequado. Aqui está um exemplo para reconstruir o Initrd usando a mkinitrd utilidade:
Faça backup da imagem original existente:
cd /boot sudo cp initrd-`uname -r`.img initrd-`uname -r`.img.bakReconstrua o initrd utilizando os módulos do kernel
hv_vmbusehv_storvsc:sudo mkinitrd --preload=hv_storvsc --preload=hv_vmbus -v -f initrd-`uname -r`.img `uname -r`
Redimensionar VHDs
As imagens VHD no Azure devem ter um tamanho virtual alinhado a 1 MB. Normalmente, os VHDs criados através de Hyper-V estão alinhados corretamente. Se o VHD não estiver alinhado corretamente, pode receber uma mensagem de erro semelhante ao exemplo seguinte quando tentar criar uma imagem a partir do seu VHD:
The VHD http://<mystorageaccount>.blob.core.windows.net/vhds/MyLinuxVM.vhd has an unsupported virtual size of 21475270656 bytes. The size must be a whole number (in MBs).
Neste caso, redimensione a VM usando a consola Hyper-V Manager ou o cmdlet PowerShell Redimension-VHD. Se não estiver a correr num ambiente Windows, recomendamos usar qemu-img para converter (se necessário) e redimensionar o VHD.
Note
Há um bug conhecido no qemu-img para a versão 2.2.1 do QEMU e algumas versões posteriores que resulta num VHD mal formatado. O problema foi corrigido no QEMU 2.6. Recomendamos usar a versão 2.2.0 ou anterior, ou a versão 2.6 ou posterior.
Redimensionar diretamente o VHD utilizando ferramentas como
qemu-imgouvbox-managepode resultar num VHD não arrancável. Recomendamos primeiro converter o VHD para uma imagem de disco raw usando o seguinte código.Se a imagem da VM foi criada como imagem de disco bruto, podes saltar este passo. Criar a imagem da VM como imagem de disco bruto é o padrão em alguns hipervisores, como o KVM.
sudo qemu-img convert -f vpc -O raw MyLinuxVM.vhd MyLinuxVM.rawCalcule o tamanho necessário da imagem de disco para que o tamanho virtual fique alinhado a 1 MB. O seguinte script shell Bash usa
qemu-img infopara determinar o tamanho virtual da imagem de disco, e depois calcula o tamanho para o próximo 1 MB:rawdisk="MyLinuxVM.raw" vhddisk="MyLinuxVM.vhd" MB=$((1024*1024)) size=$(qemu-img info -f raw --output json "$rawdisk" | \ gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}') rounded_size=$(((($size+$MB-1)/$MB)*$MB)) echo "Rounded Size = $rounded_size"Redimensione o disco bruto usando
$rounded_size:sudo qemu-img resize MyLinuxVM.raw $rounded_sizeConverter o disco bruto de volta para um VHD de tamanho fixo:
sudo qemu-img convert -f raw -o subformat=fixed,force_size -O vpc MyLinuxVM.raw MyLinuxVM.vhdOu, com versões do QEMU anteriores à 2.6, remover a
force_sizeopção:sudo qemu-img convert -f raw -o subformat=fixed -O vpc MyLinuxVM.raw MyLinuxVM.vhd
Requisitos do kernel Linux
Os controladores dos Serviços de Integração Linux (LIS) para Hyper-V e Azure são integrados diretamente no kernel principal do Linux. Muitas distribuições que incluem uma versão recente do kernel Linux (como a 3.x) já têm estes drivers disponíveis, ou de outra forma fornecem versões retroportadas desses drivers com os seus kernels.
Os drivers LIS estão constantemente a ser atualizados no kernel principal com correções e novas funcionalidades. Sempre que possível, recomendamos executar uma distribuição endossada que inclua estas correções e atualizações.
Se estiver a usar uma variante do RHEL, nas versões 6.0 a 6.3, tem de instalar os drivers LIS mais recentes para Hyper-V. A partir do RHEL 6.4+ (e derivados), os drivers LIS já estão incluídos no kernel, por isso não precisas de pacotes de instalação adicionais.
Se for necessário um kernel personalizado, recomendamos uma versão recente do kernel (como a 3.8+). Para distribuições ou fornecedores que mantêm o seu próprio kernel, é necessário retroportar regularmente os controladores LIS do kernel principal para o seu kernel personalizado.
Mesmo que já esteja a usar uma versão do kernel relativamente recente, recomendamos vivamente que acompanhe eventuais correções introduzidas a montante nos controladores LIS e as retroporte conforme necessário. As localizações dos ficheiros fonte do driver LIS são especificadas no ficheiro MAINTAINERS na árvore de código-fonte do kernel Linux:
F: arch/x86/include/asm/mshyperv.h
F: arch/x86/include/uapi/asm/hyperv.h
F: arch/x86/kernel/cpu/mshyperv.c
F: drivers/hid/hid-hyperv.c
F: drivers/hv/
F: drivers/input/serio/hyperv-keyboard.c
F: drivers/net/hyperv/
F: drivers/scsi/storvsc_drv.c
F: drivers/video/fbdev/hyperv_fb.c
F: include/linux/hyperv.h
F: tools/hv/
O kernel ativo da VM deve incluir os seguintes patches. Esta lista não pode estar completa para todas as distribuições.
- ata_piix: transfere os discos para os drivers de Hyper-V por defeito
- storvsc: Contabilizar os pacotes em trânsito no caminho RESET
- STORVSC: Evite o uso de WRITE_SAME
- storvsc: Desative o WRITE SAME para RAID e drivers do adaptador de host virtual
- storvsc: correcção de desreferência do ponteiro NULL
- STORVSC: Falhas do anel buffer podem resultar em congelamento de I/O
- scsi_sysfs: proteger contra a dupla execução de __scsi_remove_device
Agente Linux do Azure
O Azure Linux Agent (waagent) prevê uma máquina virtual Linux em Azure. Pode obter a versão mais recente, reportar problemas ou submeter pull requests no Linux Agent GitHub repositório.
Aqui estão algumas considerações para usar o Azure Linux Agent:
- O agente Linux é lançado sob a licença Apache 2.0. Muitas distribuições já fornecem pacotes .rpm ou .deb para o agente. Pode instalar e atualizar facilmente estes pacotes.
- O Azure Linux Agent requer Python v2.6+.
- O agente também necessita do
python-pyasn1módulo. A maioria das distribuições fornece este módulo como um pacote separado para ser instalado. - Em alguns casos, o Azure Linux Agent pode não ser compatível com o NetworkManager. Muitos dos pacotes (.rpm ou .deb) fornecidos pelas distribuições configuram o NetworkManager como um conflito com o
waagentpacote. Nestes casos, o agente desinstala o NetworkManager quando instala o pacote do agente Linux. - O Azure Linux Agent deve estar igual ou acima da versão mínima suportada.
Note
Certifica-te de que os udf módulos e vfat estão ativados. Desativar o udf módulo causará uma falha de provisionamento. Desativar o vfat módulo causa falhas tanto no provisionamento como no arranque. Cloud-init versão 21.2 ou posterior pode provisionar VMs sem necessidade de UDF se ambas as condições existirem:
- Criaste a VM usando chaves públicas SSH e não palavras-passe.
- Não forneceste quaisquer dados personalizados.
Requisitos gerais do sistema Linux
Modifique a linha de inicialização do kernel no GRUB ou GRUB2 para incluir os seguintes parâmetros, para que todas as mensagens do console sejam enviadas para a primeira porta serial. Estas mensagens podem ajudar o suporte do Azure a depurar quaisquer problemas.
GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"Recomendamos também a remoção dos seguintes parâmetros, caso existam:
rhgb quiet crashkernel=autoO arranque gráfico e silencioso não são úteis num ambiente na cloud, onde queres que todos os registos sejam enviados para a porta serial. Pode deixar a
crashkernelopção configurada se necessário, mas este parâmetro reduz a quantidade de memória disponível na VM em pelo menos 128 MB. Reduzir a memória disponível pode ser problemático para VMs de tamanhos mais pequenos.Depois de terminares de editar /etc/default/grub, reconstrói a configuração do GRUB. Executa apenas o comando apropriado para a tua distribuição.
Para distribuições baseadas em Debian ou Ubuntu, execute:
sudo update-grubPara distribuições que fornecem
grub2-mkconfig, como RHEL, Oracle Linux e SUSE, execute:sudo grub2-mkconfig -o /boot/grub2/grub.cfgNas distribuições que fornecem
grub-mkconfigem vez disso, executa:sudo grub-mkconfig -o /boot/grub/grub.cfgO caminho de configuração do GRUB pode ser diferente para instalações UEFI. Se a sua distribuição usar outro caminho, use o caminho documentado para essa distribuição.
Adicione os módulos Hyper-V ao disco RAM inicial. Execute apenas o procedimento que corresponda às ferramentas usadas pela sua distribuição.
- Para uma distribuição baseada em dracut, execute:
cd /boot sudo cp initramfs-<kernel-version>.img <kernel-version>.img.bak sudo dracut -f -v initramfs-<kernel-version>.img <kernel-version> --add-drivers "hv_vmbus hv_netvsc hv_storvsc"- Para uma distribuição que utiliza
mkinitramfs, execute este procedimento em vez do procedimento de dracut:
cd /boot sudo cp initrd.img-<kernel-version> initrd.img-<kernel-version>.bak sudo mkinitramfs -o initrd.img-<kernel-version> <kernel-version> --with=hv_vmbus,hv_netvsc,hv_storvscSó se estiveres a criar uma imagem para um controlador remoto de disco NVMe, configura e verifica o suporte ao arranque NVMe. Caso contrário, ignore esta etapa. Os comandos exatos podem variar consoante a distribuição.
Reconstrua o initramfs com os controladores NVMe, utilizando o método da sua distribuição.
Para uma distribuição baseada em dracut, faça os drivers NVMe persistentes em futuras imagens initramfs e reconstrua os initramfs atuais:
sudo mkdir -p /etc/dracut.conf.d printf '%s\n' 'add_drivers+=" nvme nvme_core "' | sudo tee /etc/dracut.conf.d/azure-nvme.conf sudo dracut --forcePara uma distribuição baseada no initramfs-tools, torne os controladores NVMe persistentes e reconstrua o initramfs:
printf '%s\n' nvme nvme_core | sudo tee -a /etc/initramfs-tools/modules sudo update-initramfs -u -k allAdicione
nvme_core.io_timeout=240à linha de comandos existente do kernel em/etc/default/grub, e depois reconstrua a configuração GRUB usando o comando apropriado para a sua distribuição.Verifique se ambos os módulos de driver NVMe estão disponíveis no sistema. Execute ambos os comandos:
modinfo nvme modinfo nvme_coreCada comando deve devolver informações sobre o seu módulo. Se nenhum dos módulos for encontrado, instale-o ou ative-o seguindo a documentação da sua distribuição antes de continuar.
Verifique se ambos os drivers NVMe estão incluídos no initramfs. Executa apenas o comando da tua distribuição.
Para uma distribuição baseada em dracut, execute:
sudo lsinitrd /boot/initramfs-$(uname -r).img | grep -E 'nvme(_core)?\.ko'Para uma distribuição baseada em ferramentas initramfs, execute:
sudo lsinitramfs /boot/initrd.img-$(uname -r) | grep -E 'nvme(_core)?\.ko'A saída deve mostrar tanto o driver
nvmecomo onvme_core. Se não acontecer, consulte a documentação da sua distribuição e reconstrói o disco RAM inicial antes de continuar.
Certifique-se de que o servidor SSH está instalado e configurado para iniciar no momento da inicialização. Esta configuração é geralmente a padrão.
Instala o Azure Linux Agent.
O Azure Linux Agent é necessário para provisionar uma imagem Linux no Azure. Muitas distribuições fornecem o agente como um pacote .rpm ou .deb. O pacote é normalmente chamado
WALinuxAgentouwalinuxagent. Também pode instalar o agente manualmente seguindo os passos do guia Azure Linux Agent.Note
Certifica-te de que os
udfmódulos evfatestão ativados. Removê-los ou desativá-los pode causar uma falha de provisionamento ou de arranque. A versão 21.2 ou posterior do cloud-init remove o requisito UDF.Instale o Azure Linux Agent, o cloud-init e outras utilidades necessárias. Executa apenas o comando do gestor de pacotes disponível no teu sistema.
Para
dnf, executa:sudo dnf install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemonsSe o seu sistema fornecer
yumem vez dednf, substituirdnfporyumno comando anterior.Para
apt, executa:sudo apt install walinuxagent cloud-init cloud-utils-growpart gdisk hyperv-daemonsPara
zypper, executa:sudo zypper install python-azure-agent cloud-init cloud-utils-growpart gdisk hyperv-daemonsDepois ativa o agente e o cloud-init em todas as distribuições:
sudo systemctl enable waagent.service sudo systemctl enable cloud-init.serviceNão cries espaço de troca no disco do sistema operativo.
Podes usar o Azure Linux Agent ou o cloud-init para configurar swap space através do disco de recurso local. O Azure associa este disco de recurso à VM após o provisionamento. O disco de recurso local é temporário e pode ser esvaziado quando a VM é desprovisionada.
Importante
Estas instruções aplicam-se quer o controlador remoto de disco seja SCSI ou NVMe. Exigem um tamanho de VM que inclua um disco de recurso temporário local. O tipo de controlador remoto de disco não determina se um disco de recurso está disponível.
Escolha e configure um método para gerir o espaço de troca.
Para usar o Azure Linux Agent, modifique os seguintes parâmetros em /etc/waagent.conf:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: Set this to your desired size.Para usar cloud-init em vez disso, configure o cloud-init para gerir o provisionamento e impedir que o Azure Linux Agent formate o disco de recurso ou crie espaço de troca:
sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confSe escolheste cloud-init, escolhe como fornecer a configuração de swap.
Pode fornecer uma configuração de cloud-init através de
customdatasempre que criar uma VM. Use este método.Alternativamente, adicione uma diretiva cloud-init à imagem para que o espaço de swap seja configurado sempre que uma VM é criada. Para usar este método, crie um ficheiro .cfg:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' | sudo tee -a /etc/systemd/system.conf cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/00-azure-swap.cfg #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Configure o cloud-init para gerir o provisionamento:
Configurar
waagentpara cloud-init:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=cloud-init/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confSe estiveres a migrar uma máquina virtual específica e não quiseres criar uma imagem generalizada, define
Provisioning.Agent=disableda configuração /etc/waagent.conf .Configurar pontos de montagem:
echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgConfigure a fonte de dados do Azure:
echo "Allow only Azure datasource, disable fetching network setting via IMDS" cat << EOF | sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOFRemova o ficheiro de swap existente se tiver configurado um:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swap file by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fiConfigure o registo do cloud-init:
echo "Add console log file" cat << EOF | sudo tee -a /etc/cloud/cloud.cfg.d/05_logging.cfg # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Valida a configuração de montagem do disco antes de desprovisionares a máquina virtual. Esta validação aplica-se tanto a imagens SCSI como remotas NVMe.
Reveja
/etc/fstab. Não use nomes de dispositivos como/dev/sd*ou/dev/nvme*, porque os nomes dos dispositivos podem mudar durante reinicios ou quando o controlador de disco muda. Use UUIDs do sistema de ficheiros ou outros identificadores persistentes em vez disso.Liste os dispositivos de bloco e os seus identificadores persistentes para que possa compará-los com as entradas em
/etc/fstab:sudo blkidVerifique
/etc/fstabpara ver se existem erros de sintaxe, opções de montagem inválidas e referências que não podem ser resolvidas:sudo findmnt --verify --verboseSó se estiveres a criar uma imagem para um controlador de disco NVMe remoto, verifica o timeout de I/O configurado. Se a VM de origem usar atualmente NVMe, execute:
cat /sys/module/nvme_core/parameters/io_timeoutO valor deve ser
240. Uma VM de origem SCSI pode não expor este parâmetro de runtime; nesse caso, verifique senvme_core.io_timeout=240está presente na configuração GRUB e se a configuração reconstruída o contém.
Execute os seguintes comandos para desprovisionar a máquina virtual.
Atenção
Se estás a migrar uma máquina virtual específica e não quiseres criar uma imagem generalizada, salta a etapa de desprovisionamento. Executar o comando
waagent -force -deprovision+usertorna a máquina de origem inutilizável. Esta etapa destina-se apenas a criar uma imagem generalizada.sudo rm -f /var/log/waagent.log sudo cloud-init clean sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0No VirtualBox, pode aparecer uma mensagem de erro após a execução
waagent -force -deprovisionque diz[Errno 5] Input/output error. Esta mensagem de erro não é crítica e pode ignorá-la.Desliga a máquina virtual e carrega o VHD para o Azure.
Passos seguintes
Crie uma VM Linux a partir de um disco personalizado usando o CLI do Azure
Para uma VM Azure existente que precisa de passar de SCSI para NVMe, use Convert VMs Linux e Windows de SCSI para NVMe. Para informações sobre arquitetura e suporte, consulte a visão geral do NVMe.