다음을 통해 공유


Azure용 CentOS 기반 가상 머신 준비

적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합

CentOS 기반 OS(Linux 운영 체제)가 포함된 Azure VHD(가상 하드 디스크)를 만들고 업로드하는 방법을 알아봅니다. 자세한 내용은 다음을 참조하세요.

주의

이 문서에서는 EOL(수명 종료) 상태에 근접한 Linux 배포인 CentOS를 참조합니다. 사용 및 계획을 적절하게 고려합니다. 자세한 내용은 CentOS 수명 종료 지침을 참조하세요.

필수 조건

이 문서에서는 이미 CentOS(또는 유사한 파생) Linux OS를 VHD에 설치했다고 가정합니다. .vhd 파일을 만드는 도구는 여러 가지가 있습니다. 예를 들어 Hyper-V와 같은 가상화 솔루션이 있습니다. 지침은 Hyper-V 역할 설치 및 VM 구성을 참조하세요.

CentOS 설치 정보

  • Azure용 Linux를 준비하는 방법에 대한 추가 팁은 일반 Linux 설치 참고 사항을 참조하세요.
  • VHDX 형식은 Azure에서 지원되지 않습니다. 고정된 VHD만 지원됩니다. Hyper-V 관리자 또는 convert-vhd cmdlet을 사용하여 디스크를 VHD 형식으로 변환할 수 있습니다. VirtualBox를 사용하는 경우 디스크를 만들 때 동적으로 할당되는 기본값과 달리 고정 크기를 선택합니다.
  • 커널에서 vfat 커널 모듈을 사용하도록 설정해야 합니다.
  • Linux 시스템을 설치하는 경우 설치 기본값인 경우가 많은 LVM(논리 볼륨 관리자)이 아닌 표준 파티션을 사용하는 것이 좋습니다. 파티션을 사용하면 특히 문제 해결을 위해 OS 디스크를 다른 동일한 VM에 연결해야 하는 경우 복제된 VM과 LVM 이름 충돌을 방지할 수 있습니다. 데이터 디스크에서 LVM 또는 RAID를 사용할 수도 있습니다.
  • UDF(사용자 정의 함수) 파일 시스템 탑재를 위한 커널 지원이 필요합니다. Azure에서 처음 부팅할 때 프로비저닝 구성은 게스트에 연결된 UDF 형식 미디어를 사용하여 Linux VM에 전달됩니다. Azure Linux 에이전트 또는 cloud-init UDF 파일 시스템을 탑재하여 구성을 읽고 VM을 프로비전해야 합니다.
  • 2.6.37 미만의 Linux 커널 버전은 더 큰 VM 크기의 Hyper-V NUMA를 지원하지 않습니다. 이 문제는 주로 업스트림 Centos 2.6.32 커널을 사용하는 이전 배포에 영향을 미치며 Centos 6.6(커널-2.6.32-504)에서 해결되었습니다. 2.6.37보다 오래된 사용자 지정 커널 또는 2.6.32-504보다 오래된 RHEL(Red Hat Enterprise Linux) 기반 커널을 실행하는 시스템은 numa=off의 커널 명령줄에서 부팅 매개 변수 를 설정해야 합니다. 자세한 내용은 Red Hat KB 436883 참조하세요.
  • OS 디스크에서 스왑 파티션을 구성하지 마세요.
  • Azure의 모든 VHD에는 1MB로 정렬된 가상 크기가 있어야 합니다. 원시 디스크에서 VHD로 변환할 때 변환하기 전에 원시 디스크 크기가 1MB의 배수인지 확인해야 합니다. 자세한 내용은 Linux 설치 참고 사항을 참조하세요.

비고

Cloud-init >= 21.2는 UDF 요구 사항을 제거합니다. 그러나 UDF 모듈을 사용하도록 설정하지 않으면 프로비전하는 동안 CD-ROM 탑재되지 않으므로 사용자 지정 데이터가 적용되지 않습니다. 이 상황에 대한 해결 방법은 사용자 데이터를 사용하여 사용자 지정 데이터를 적용하는 것입니다. 사용자 지정 데이터와 달리 사용자 데이터는 암호화되지 않습니다. 자세한 내용은 사용자 데이터 형식을 참조하세요.

CentOS 6.x

중요합니다

CentOS 6은 EOL에 도달했으며 CentOS 커뮤니티에서 더 이상 지원되지 않습니다. 이 버전에 대한 추가 업데이트 또는 보안 패치는 릴리스되지 않으므로 잠재적인 보안 위험에 취약합니다. 시스템의 안전성과 안정성을 보장하기 위해 최신 버전의 CentOS로 업그레이드하는 것이 좋습니다. 추가 지원은 IT 부서 또는 시스템 관리자에게 문의하세요.

  1. Hyper-V 관리자에서 VM을 선택합니다.

  2. 연결을 선택하여 VM에 대한 콘솔 창을 엽니다.

  3. CentOS 6 NetworkManager 에서 Azure Linux 에이전트를 방해할 수 있습니다. 이 패키지를 제거합니다.

    sudo rpm -e --nodeps NetworkManager
    
  4. 파일을 /etc/sysconfig/network 만들거나 편집하고 다음 텍스트를 추가합니다.

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. 파일을 /etc/sysconfig/network-scripts/ifcfg-eth0 만들거나 편집하고 다음 텍스트를 추가합니다.

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    
  6. 이더넷 인터페이스에 대한 정적 규칙을 생성하지 않도록 udev 규칙을 수정합니다. 이러한 규칙은 Azure 또는 Hyper-V에서 VM을 복제할 때 문제를 일으킬 수 있습니다.

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
    
  7. 네트워크 서비스가 부팅 시 시작되는지 확인합니다.

    sudo chkconfig network on
    
  8. Azure 데이터 센터 내에서 호스트되는 OpenLogic 미러를 사용하려면 /etc/yum.repos.d/CentOS-Base.repo 파일을 다음의 리포지토리로 교체합니다. 또한 이 작업은 Azure Linux 에이전트와 같은 추가 패키지를 포함하는 [openlogic] 리포지토리를 추가합니다.

    [openlogic]
    name=CentOS-$releasever - openlogic packages for $basearch
    baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/
    enabled=1
    gpgcheck=0
    
    [base]
    name=CentOS-$releasever - Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #additional packages that might be useful
    [extras]
    name=CentOS-$releasever - Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    
    #contrib - packages by Centos Users
    [contrib]
    name=CentOS-$releasever - Contrib
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/contrib/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    

    비고

    이 문서의 나머지 부분에서는 최소 [openlogic] 리포지토리를 사용하고 있다고 가정하며, 이는 Azure Linux 에이전트를 설치하는 데 사용됩니다.

  9. 다음 줄을 /etc/yum.conf에 추가합니다.

    http_caching=packages
    
  10. 현재 yum 메타데이터를 지우고 최신 패키지로 시스템을 업데이트합니다.

    sudo yum clean all
    

    이전 버전의 CentOS에 대한 이미지를 만들지 않는 한 모든 패키지를 최신 패키지로 업데이트하는 것이 좋습니다.

    sudo yum -y update
    

    이 명령을 실행한 후 다시 부팅해야 할 수 있습니다.

  11. 선택 사항: Linux LIS(Integration Services)용 드라이버를 설치합니다.

    중요합니다

    이 단계는 CentOS 6.3 이하 버전에 필요하며 이후 릴리스에서는 선택 사항입니다.

    sudo rpm -e hypervkvpd  ## (might return an error if not installed, that's OK)
    sudo yum install microsoft-hyper-v
    

    또는 LIS 다운로드 페이지의 수동 설치 지침에 따라 VM에 RPM을 설치할 수 있습니다.

  12. Azure Linux 에이전트 및 종속성을 설치합니다. 서비스를 시작하고 사용하도록 설정합니다.waagent

    sudo yum install python-pyasn1 WALinuxAgent
    sudo service waagent start
    sudo chkconfig waagent on
    

    WALinuxAgent 패키지는 3단계에서 설명한 대로 아직 제거되지 않은 경우 NetworkManagerNetworkManager-gnome 패키지를 제거합니다.

  13. Azure에 대한 다른 커널 매개 변수를 포함하도록 grub 구성에서 커널 부팅 라인을 수정합니다. 이 단계를 수행하려면 텍스트 편집기에서 열고 /boot/grub/menu.lst 기본 커널에 다음 매개 변수가 포함되어 있는지 확인합니다.

    console=ttyS0 earlyprintk=ttyS0 rootdelay=300
    

    또한 이 수정을 통해 모든 콘솔 메시지가 첫 번째 직렬 포트로 전송되어 Azure 지원에서 디버깅 문제를 지원할 수 있습니다.

    또한 다음 매개 변수를 제거하는 것이 좋습니다.

    rhgb quiet crashkernel=auto
    

    그래픽 및 자동 부팅은 모든 로그를 직렬 포트로 보내려는 클라우드 환경에서는 유용하지 않습니다. 원하는 경우 옵션을 crashkernel 그대로 구성된 상태로 둘 수 있습니다. 그러나 이 매개 변수는 VM에서 사용 가능한 메모리 양을 128MB 이상 줄여 더 작은 VM 크기에 문제가 될 수 있습니다.

    중요합니다

    CentOS 6.5 이하도 커널 매개 변수 numa=off를 설정해야 합니다. 자세한 내용은 Red Hat KB 436883 참조하세요.

  14. Secure Shell 서버가 설치되고 부팅 시 시작되도록 구성되었는지 확인합니다. 이 설정이 일반적으로 기본값입니다.

  15. OS 디스크에 스왑 공간을 만들지 마세요.

    Azure Linux 에이전트는 VM이 Azure에서 프로비전된 후 VM에 연결된 로컬 리소스 디스크를 사용하여 스왑 공간을 자동으로 구성할 수 있습니다. 로컬 리소스 디스크는 임시 디스크이며 VM 프로비전 해제 시 비워질 수 있습니다. Azure Linux 에이전트를 설치한 후(이전 단계 참조) 다음 매개 변수 /etc/waagent.conf 를 적절하게 수정합니다.

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.
    
  16. VM 프로비전을 해제하고 Azure에서 프로비저닝을 준비합니다.

    sudo waagent -force -deprovision+user
    sudo export HISTSIZE=0
    

    비고

    특정 VM을 마이그레이션하고 일반화된 이미지를 만들지 않으려면 프로비전 해제 단계를 건너뜁니다.

  17. Hyper-V 관리자에서 작업>종료를 선택합니다. 이제 Linux VHD를 Azure에 업로드할 준비가 되었습니다.

CentOS 7.0 이상

CentOS 7.0+를 사용하는 경우 다음 섹션의 단계를 따릅니다.

CentOS 7의 변경 내용(및 유사한 파생 항목)

Azure용 CentOS 7 VM을 준비하는 것은 CentOS 6과 비슷합니다. 몇 가지 중요한 차이점은 주목할 가치가 있습니다.

  • 패키지가 NetworkManager 더 이상 Azure Linux 에이전트와 충돌하지 않습니다. 이 패키지는 기본적으로 설치되며 제거하지 않는 것이 좋습니다.

  • 이제 GRUB2가 기본 부팅 로더로 사용되므로 커널 매개 변수를 편집하는 절차가 변경되었습니다. ("구성 단계" 섹션을 참조하세요.)

  • 이제 XFS가 기본 파일 시스템입니다. 원하는 경우 ext4 파일 시스템을 계속 사용할 수 있습니다.

  • CentOS 8 Stream 이상은 기본적으로 더 이상 포함되지 network.service 않으므로 수동으로 설치해야 합니다.

    sudo yum install network-scripts
    sudo systemctl enable network.service
    

구성 단계

  1. Hyper-V 관리자에서 VM을 선택합니다.

  2. 연결을 선택하여 VM에 대한 콘솔 창을 엽니다.

  3. 파일을 /etc/sysconfig/network 만들거나 편집하고 다음 텍스트를 추가합니다.

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. 파일을 /etc/sysconfig/network-scripts/ifcfg-eth0 만들거나 편집하고 다음 텍스트를 추가합니다.

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  5. 이더넷 인터페이스에 대한 정적 규칙을 생성하지 않도록 udev 규칙을 수정합니다. 이러한 규칙은 Azure 또는 Hyper-V에서 VM을 복제할 때 문제를 일으킬 수 있습니다.

    sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
    
  6. Azure 데이터 센터 내에서 호스트되는 미러를 사용 OpenLogic 하려면 /etc/yum.repos.d/CentOS-Base.repo 파일을 다음 리포지토리로 바꿉니다. 또한 이 작업은 Azure Linux 에이전트에 대한 패키지를 포함하는 [openlogic] 리포지토리를 추가합니다.

    [openlogic]
    name=CentOS-$releasever - openlogic packages for $basearch
    baseurl=http://olcentgbl.trafficmanager.net/openlogic/$releasever/openlogic/$basearch/
    enabled=1
    gpgcheck=0
    
    [base]
    name=CentOS-$releasever - Base
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #released updates
    [updates]
    name=CentOS-$releasever - Updates
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that might be useful
    [extras]
    name=CentOS-$releasever - Extras
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus]
    name=CentOS-$releasever - Plus
    #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
    baseurl=http://olcentgbl.trafficmanager.net/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    비고

    이 문서의 나머지 부분에서는 최소 [openlogic] 리포지토리를 사용하고 있다고 가정하며, 이는 Azure Linux 에이전트를 설치하는 데 사용됩니다.

  7. 현재 yum 메타데이터를 지우고 업데이트를 설치합니다.

    sudo yum clean all
    

    이전 버전의 CentOS에 대한 이미지를 만들지 않는 한 모든 패키지를 최신 패키지로 업데이트하는 것이 좋습니다.

    sudo yum -y update
    

    이 명령을 실행한 후 다시 부팅해야 할 수 있습니다.

  8. Azure에 대한 다른 커널 매개 변수를 포함하도록 grub 구성에서 커널 부팅 라인을 수정합니다. 이 단계를 수행하려면 텍스트 편집기에서 열고 /etc/default/grub 매개 변수를 편집합니다 GRUB_CMDLINE_LINUX . 다음은 그 예입니다.

    GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    또한 이 수정을 통해 모든 콘솔 메시지가 첫 번째 직렬 포트로 전송되어 Azure 지원에서 디버깅 문제를 지원할 수 있습니다. 또한 네트워크 인터페이스 카드에 대한 새로운 CentOS 7 명명 규칙도 해제합니다. 또한 다음 매개 변수를 제거하는 것이 좋습니다.

    rhgb quiet crashkernel=auto
    

    그래픽 및 자동 부팅은 모든 로그를 직렬 포트로 보내려는 클라우드 환경에서는 유용하지 않습니다. 원하는 경우 해당 옵션을 crashkernel로 설정된 상태로 남겨둘 수 있습니다. 그러나 이 매개 변수는 VM에서 사용 가능한 메모리 양을 128MB 이상 줄여 더 작은 VM 크기에 문제가 될 수 있습니다.

  9. 편집 /etc/default/grub을 완료한 후 grub 구성을 다시 빌드합니다.

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

    비고

    UEFI를 사용하는 VM을 업로드하는 경우, grub를 업데이트하기 위한 명령어는 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg입니다. 또한 커널에서 vfat 커널 모듈을 사용하도록 설정해야 합니다. 그렇지 않으면 프로비저닝이 실패합니다.

    udf 모듈이 사용하도록 설정되어 있는지 확인합니다. 제거하거나 사용하지 않도록 설정하면 프로비전 또는 부팅 오류가 발생합니다. (_Cloud-init >= 21.2는 udf 요구 사항을 제거합니다. 자세한 내용은 문서 상단을 참조하세요.)

  10. VMware, VirtualBox 또는 KVM에서 이미지를 빌드하는 경우 Hyper-V 드라이버가 initramfs에 포함되어 있는지 확인합니다.

    1. 콘텐츠 편집 /etc/dracut.conf 및 추가:

      add_drivers+=" hv_vmbus hv_netvsc hv_storvsc "
      
    2. initramfs를 다시 빌드합니다.

      sudo dracut -f -v
      
  11. Azure VM 확장에 대한 Azure Linux 에이전트 및 종속성을 설치합니다.

    sudo yum install python-pyasn1 WALinuxAgent
    sudo systemctl enable waagent
    
  12. cloud-init을(를) 설치하여 프로비저닝을 처리합니다.

    sudo yum install -y cloud-init cloud-utils-growpart gdisk hyperv-daemons
    
    • cloud-init에 대한 waagent 구성:
    sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/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.conf
    
    sudo 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.cfg
    
    sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS"
    sudo cat > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF
    datasource_list: [ Azure ]
    datasource:
        Azure:
            apply_network_config: False
    EOF
    
    if [[ -f /mnt/swapfile ]]; then
    echo Removing swapfile - RHEL uses a swapfile by default
    swapoff /mnt/swapfile
    rm /mnt/swapfile -f
    fi
    
    echo "Add console log file"
    cat >> /etc/cloud/cloud.cfg.d/05_logging.cfg <<EOF
    
    # 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
    
  13. 스왑 구성:

    1. OS 디스크에 스왑 공간을 만들지 마세요.

      이전에는 Azure Linux 에이전트를 사용하여 VM이 Azure에서 프로비전된 후 VM에 연결된 로컬 리소스 디스크를 사용하여 스왑 공간을 자동으로 구성했습니다. 그러나 cloud-init 이제 이 단계를 처리합니다. Linux 에이전트를 사용하여 리소스 디스크의 형식을 지정하여 스왑 파일을 만들 면 안 됩니다 . 다음 매개 변수 /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.conf
      
    2. 스왑 파일을 탑재, 서식 지정 및 만들려는 경우 다음 중 하나를 수행할 수 있습니다.

      • VM을 만들 때마다 cloud-init 구성으로 이 명령을 전달합니다.

      • VM을 생성할 때마다 이 단계를 수행하기 위해 이미지에 통합된 cloud-init 지시문을 사용합니다.

        sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf
        sudo cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF
        #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"]
          - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"]
        EOF
        
  14. 다음 명령을 실행하여 VM 프로비전을 해제하고 Azure에서 프로비저닝을 준비합니다.

    비고

    특정 VM을 마이그레이션하고 일반화된 이미지를 만들지 않으려면 프로비전 해제 단계를 건너뜁니다.

    sudo rm -f /var/log/waagent.log
    sudo cloud-init clean
    sudo waagent -force -deprovision+user
    sudo rm -f ~/.bash_history
    sudo export HISTSIZE=0
    
  15. Hyper-V 관리자에서 작업>종료를 선택합니다. 이제 Linux VHD를 Azure에 업로드할 준비가 되었습니다.

이제 CentOS Linux VHD를 사용하여 Azure에서 새 VM을 만들 준비가 되었습니다. .vhd 파일을 Azure에 처음 업로드하는 경우 사용자 지정 디스크에서 Linux VM 만들기를 참조하세요.