次の方法で共有


Azure Linux 仮想マシンでの SLES 移行に関する問題のトラブルシューティング

適用対象: ✔️ Linux VM

この記事では、SUSE Linux Enterprise サーバー (SLES) の移行中に発生する問題について説明し、それらに対するソリューションを提供します。

注意事項

この記事のプロセスに従うと、データ プレーンと仮想マシン (VM) の コントロール プレーン が切断されます。 ゲストの自動パッチ適用OS イメージの自動アップグレードホット パッチの適用Azure Update Manager などの Azure の機能は利用できなくなります。 これらの機能を利用するには、インプレース アップグレードを実行する代わりに、希望するオペレーティング システムを使用して新しい VM を作成することをお勧めします。

前提条件

VM の世代バージョンを確認する

生成バージョンは、次のいずれかの方法を使用して確認できます。

  • SLES ターミナルで次のコマンドを実行します。

    sudo dmidecode | grep -i hyper
    

    第 1 世代 VM の場合、出力は返されません。

    第 2 世代 VM の場合は、次のテキストのような出力が表示されます。

    Version: Hyper-V UEFI Release v4.1
    Version: Hyper-V UEFI Release v4.1
    Version: Hyper-V UEFI Release v4.1
    Version: Hyper-V UEFI Release v4.1
    
  • Azure ポータルで VM Properties に移動し、次のように VM の生成 フィールドを確認します。

シナリオ 1: SLES 12 から SLES 15 への移行は成功しますが、SLES 15 SP1 から SP2 へのアップグレードは失敗します

sudo zypper migration コマンドを実行すると、移行が失敗し、次の出力が表示されます。

Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'HPC Module 12 x86_64' are not activated on the system.

または

Can't get available migrations from server: SUSE::Connect::ApiError: Invalid combination of  products registered.

/var/log/messagesまたは/var/log/distro-migration.log ファイルで出力を見つけることもできます。

原因

SLES 12 と SLES 15 の大きな変更点の 1 つは、ハイ パフォーマンス コンピューティング (HPC) がスタンドアロン製品になることです。 そのため、SLES として登録されているシステムでは HPC モジュールを使用できなくなります。 この変更により、移行ターゲットがターゲットを見つけるのに失敗し、移行プロセスが失敗します。

解決方法

この問題を解決するには、次のコマンドを実行して、移行を開始する前に HPC モジュールを削除します。

sudo zypper rm sle-module-hpc-release-POOL sle-module-hpc-release

回避策

この問題を回避するには、 sle-module-hpc.prod/etc/products.d/ ディレクトリから一時的な場所に移動し、もう一度移行を試してください。 これを行うには、次の コマンドを実行します。

cd /etc/products.d
sudo mv sle-module-hpc.prod /tmp/
sudo zypper migration

詳細については、「パブリック クラウドの Major distros」を参照してくださいAzure で移行が失敗

シナリオ 2: "suse-migration-sles15-activation" パッケージのインストールが失敗する

suse-migration-sles15-activation パッケージをインストールすると、移行が失敗し、次の出力が表示されます。

'suse-migration-sle15-activation' not found in package names. Trying capabilities. No provider of 'suse-migration-sle15-activation' found.

この出力は、 /var/log/messages または /var/log/distro-migration.log ファイルでも見つけることができます。

原因

SLES 12 パブリック クラウド モジュールは、既定では有効になっていません。

解決方法

この問題を解決するには、次の手順に従ってください。

  1. パブリック クラウド モジュールを有効にしてから、パッケージをもう一度インストールしてみてください。

    sudo SUSEConnect -p sle-module-public-cloud/12/x86_64
    

    Note

    SLES for SAP インスタンスでは、2 つのパッケージ ( sle-ha-releasesle-ha-release-POOL) は存在しないでください。 この場合、配布移行を開始する前に、 sudo zypper remove sle-ha-release sle-ha-release-POOL コマンドを実行してこれらのパッケージを削除します。

  2. システムでクリーンアップを実行し、再登録します。

    sudo SUSEConnect --cleanup
    
    sudo rm /etc/zypp/{credentials,services,repos}.d/*
    
    sudo rm --force --recursive /var/cache/zypp/*
    
    sudo rm /var/lib/cloudregister/*
    
    sudo registercloudguest --force-new
    
  3. VM の登録状態を確認します。

    sudo SUSEConnect --status
    
  4. 移行を続行します。

    sudo zypper migration
    

詳細については、「パブリック クラウドの Major Distros およびパブリック クラウドでの SUSE Linux Enterprise のアップグレードを参照してください。

シナリオ 3: SLE 15 SP1 から SLE 15 SP2 にアップグレードした後、第 2 世代 VM は停止後に起動に失敗する

第 2 世代 VM が SLES 15 SP1 から SLES 15 SP2 にアップグレードされた後、AZURE portal から停止した後、または init 0 または shutdown -h コマンドを実行しても、VM は起動しません。 シリアル コンソール ログまたは /var/log/ ディレクトリのboot.logに、次の出力が表示されます。

Loading Linux 5.3.18-24.49-default ...  
error: symbol grub_file_filters' not found                                                 
Loading initial ramdisk ...  
error: symbol grub_file_filters' not found
Press any key to continue.

または

Loading Linux 5.3.18-24.49-default ...  
error: symbol grub_verify string' not found                                                 
Loading initial ramdisk ...  
error: symbol grub_verify string' not found
Press any key to continue...

原因

第 2 世代 VM が再起動、停止、または割り当て解除された後、Azure 環境内の Hyper-V はブート エントリを保持しません。 この場合、SUSE Linux VM の起動に失敗します。

解決方法

この問題を解決するには、次の手順に従ってください。

  1. Linux 復旧 VM の Chroot 環境で説明されているように、影響を受ける VM OS スナップショット ディスクから chroot 環境を復旧 VM に設定します

  2. GRUB ブートローダーを再インストールします。

    sudo /usr/sbin/shim-install --config-file=/boot/grub2/grub.cfg
    
  3. Linux 復旧 VM の Chroot 環境で説明されているように、スナップショット ディスクを問題のある VM にスワップ

詳細については、「 grub2 エラー: シンボル 'grub_file_filters' が見つかりませんを参照してください。

シナリオ 4: SLES 15 から SLES 15 SP3 への移行が失敗する

SLES 15 から SLES 15 SP3 への移行が失敗し、次の出力が表示されます。

Can't get available migrations from server: SUSE::Connect::ApiError: The requested products 'SUSE Linux Enterprise High Availability Extension 15 SP1 x86_64, Basesystem Module 15 SP1 x86_64, SUSE Cloud Application Platform Tools Module 15 SP1 x86_64, Containers Module 15 SP1 x86_64, Desktop Applications Module 15 SP1 x86_64, Development Tools Module 15 SP1 x86_64, Legacy Module 15 SP1 x86_64, Public Cloud Module 15 SP1 x86_64, Python 2 Module 15 SP1 x86_64, SAP Applications Module 15 SP1 x86_64, Server Applications Module 15 SP1 x86_64, Web and Scripting Module 15 SP1 x86_64, Transactional Server Module 15 SP1 x86_64' are not activated on the system.
/usr/lib/zypper/commands/zypper-migration' exited with status 1

/var/log/messagesまたは/var/log/distro-migration.logファイルでも見つけることができます。

原因

このエラーは、SLES 15 から新しいバージョンへの SLES の移行が中断、停止、または誤って終了したために発生し、その結果、システムでパッケージの更新が不完全になります。

解決方法

この問題を解決するには、すべてのパッケージを SLES 15 と互換性のあるバージョンにロールバックし、もう一度移行を試してください。

  1. システム内の重複するパッケージを確認します。

    sudo zypper dup
    
  2. 変更をロールバックします。

    sudo zypper rollback
    
  3. 移行をもう一度実行します。

    sudo zypper migration
    

シナリオ 6: 移行後、SUSE が最新のカーネルで起動に失敗し、その後に登録エラーが発生する

移行後、VM は最新のカーネルで起動に失敗します。 さらに、リポジトリは機能せず、リポジトリが定義されていないことを示すエラーが表示されます。

原因

/etc/credentials.d ディレクトリのアクセス許可が正しくないか、このディレクトリ内のファイルの内容が正しくないか破損しています。

解決方法

この問題を解決するには、次の手順に従ってください。

  1. 登録をクリーンアップします。

    sudo rm /var/cache/cloudregister/
    
    sudo rm /etc/zypp/credentials.d/
    
    sudo chmod 0755 /etc/zypp/credentials.d*
    
    sudo registercloudguest --force-new
    
  2. 登録が正常に完了したら、VM にパッチを適用して再起動します。

    sudo zypper update
    
    
    sudo reboot
    

シナリオ 7: regionService ディレクトリの問題により、SLES 12 SP5 から SLES 15 SP1 への移行が失敗する

SLES 12 SP5 から SLES 15 SP1 への移行が失敗し、次の出力が表示されます。

Skipping repository 'SLE-Module-Containers12-Updates' because of the above error.
Error retrieving metadata for 'SLE-Module-HPC12-Pool':
Not ready to read within timeout.
Skipping repository 'SLE-Module-HPC12-Pool' because of the above error.
Error retrieving metadata for 'SLE-Module-HPC12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-HPC12-Updates' because of the above error.
Error retrieving metadata for 'SLE-Module-Legacy12-Pool' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Legacy12-Pool' because of the above err Error retrieving metadata for 'SLE-Module-Legacy12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Legacy12-Updates' because of the above Error retrieving metadata for 'SLE-Module-Public-Cloud12-Pool' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Public-Cloud12-Pool' because of the abo Error retrieving metadata for 'SLE-Module-Public-Cloud12-Updates' :
Not ready to read within timeout.
Skipping repository 'SLE-Module-Public-Cloud12-Updates' because of the

/var/log/messagesまたは/var/log/distro-migration.log ファイルで出力を見つけることもできます。

原因

regionServiceディレクトリは/var/libから/usr/libに移動しますが、DMS スクリプトは、バインド マウントを ISO ランタイム環境に設定するときに、/var/libの下にあるcerts ディレクトリのみを検索します。

解決方法

この問題を解決するには、次の手順に従ってください。

  1. 以前に使用したディレクトリ /var/lib/regionService/certsを作成します。

    sudo mkdir -p /var/lib/regionService/certs
    
  2. 証明書ファイルを /var/lib/regionService/certsにコピーします。

    sudo cp -a /usr/lib/regionService/certs/* /var/lib/regionService/certs/
    
  3. /etc/regionserverclnt.cfg ファイルを変更し、certLocation パラメーターを以前に使用したパス /var/lib/regionService/certsに設定します。

    sudo vi /etc/regionserverclnt.cfg
    
  4. 変更されたファイルを確認します。

    sudo cat /etc/regionserverclnt.cfg
    
    [server]
    api = regionInfo
    #certLocation = /usr/lib/regionService/certs
    certLocation = /var/lib/regionService/certs
    regionsrv = 23.100.36.229,40.121.202.140,52.187.53.250,104.45.31.195,191.237.254.253
    [instance]
    dataProvider = /usr/bin/azuremetadata --api latest --subscriptionId --billingTag --attestedData --signature --xml
    instanceArgs = msftazure
    httpsOnly = true
    
  5. 最新の SLES15-Migration パッケージをインストールします。

    sudo zypper in SLES15-Migration
    
  6. 移行をもう一度実行します。

    sudo zypper migration
    

詳細については、「 SLES 12 SP5 Distribution Migration System (DMS) failedを参照してください。

シナリオ 8: /etc/pki/trust/anchors ディレクトリ内の不明なフォルダーが原因で移行が失敗する

SLES 12 SP5 から SLES 15 SP1 への移行が失敗し、 /var/log/distro_migration.log ファイルに次のエラー メッセージが表示されます。

Mar 11 13:39:15 localhost suse-migration-prepare[1510]: IsADirectoryError: [Errno 21] Is a directory: '/system-root/etc/pki/trust/anchors/temp'
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Main process exited, code=exited, status=1/FAILURE
Mar 11 13:39:15 localhost systemd[1]: Failed to start Prepare For Migration.
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Unit entered failed state.
Mar 11 13:39:15 localhost systemd[1]: suse-migration-prepare.service: Failed with result 'exit-code'.

解決方法

この問題を解決するには、次の手順に従ってください。

  1. /etc/pki/trust/anchors ディレクトリ内の temp フォルダーを /backuplocation/ ディレクトリに移動します。

    sudo mv /etc/pki/trust/anchors/temp /backuplocation/temp
    
  2. 移行パッケージをインストールします。

    sudo zypper install suse-migration-sle15-activation
    
  3. 移行をもう一度実行します。

    sudo zypper migration
    

シナリオ 9: 移行後に SUSE の登録とリポジトリが機能しない

SLES 15 SP3 から SLES 15 SP4 への OS 移行中、プロセスは正常に完了します。 ただし、SLES 15 SP4 から SLES 15 SP5 に移行すると、移行と更新が期待どおりに機能せず、次の出力が表示されます。

         sle-module-desktop-applications/15.3/x86_64 Desktop Applications Module
         sle-module-development-tools/15.3/x86_64 Development Tools Module
         sle-ha/15.3/x86_64          SUSE Linux Enterprise High Availability Extension 15 SP3
         sle-module-sap-applications/15.3/x86 64  SAP Applications Module
         sle-module-live-patching/15.3/x86_64   SUSE Linux Enterprise Live Patching
         PackageHub/15.3/x86 64   SUSE Package Hub 15
         sle-module-certifications/15.3/x86_64   Certifications Module
 Unavailable migrations (product is not mirrored):
         SUSE Linux Enterprise Server for SAP Applications 15 SP6 x86_64 (not available) Basesystem Module 15 SP6 x86_64 (not available) Certifications Module 15 SP6 x86_64 (not available) Containers Module 15 SP6 x86_64 (not available)
         Desktop Applications Module 15 SP6 x86_64 (not available)
         Server Applications Module 15 SP6 x86_64 (not available)
         SUSE Linux Enterprise Live Patching 15 SP6 x86_64 (not available)
         SUSE Package Hub 15 SP6 x86_64 (not available)
         Development Tools Module 15 SP6 x86_64 (not available)
         Legacy Module 15 SP6 x86_64 (not available)
         Public Cloud Module 15 SP6 x86_64 (not available)
         SUSE Linux Enterprise High Availability Extension 15 SP6 x86 64 (not available) Web and Scripting Module 15 SP6 x86_64 (not available)
         SAP Applications Module 15 SP6 x86_64 (not available)
No migration available.
'/usr/lib/zypper/commands/zypper-migration' exited with status 1

解決方法

この問題を解決するには、次の手順に従ってください。

  1. 移行の前に、次のモジュールをアクティブ化してから非アクティブ化します。

    1. 次のモジュールをアクティブにします。

      sudo SUSEConnect -p sle-module-web-scripting/15.3/x86_64
      sudo SUSEConnect -p sle-module-public-cloud/15.3/x86_64
      sudo SUSEConnect -p sle-module-containers/15.3/x86_64
      sudo SUSEConnect -p sle-module-live-patching/15.3/x86_64
      
    2. 次のモジュールを非アクティブ化します。

      sudo SUSEConnect -d -p sle-module-legacy/15.3/x86_64
      sudo SUSEConnect -d -p sle-module-python2/15.3/x86_64
      sudo SUSEConnect -d -p PackageHub/15.3/x86_64
      
  2. システムでクリーンアップを実行し、再登録します。

    sudo SUSEConnect --cleanup
    
    sudo rm /etc/zypp/{credentials,services,repos}.d/*
    
    sudo rm --force --recursive /var/cache/zypp/*
    
    sudo rm /var/lib/cloudregister/*
    
    sudo registercloudguest --force-new
    
  3. VM の登録状態を確認します。

    sudo SUSEConnect --status
    

シナリオ 10: SLES 15 の SP3 から SP4 への移行が、無効な資格情報とリポジトリ エラーで失敗する

SP3 から SP4 への SLES 15 の移行が失敗し、次の出力が表示されます。

sudo SUSEConnect -S
Error: Invalid system credentials, probably because the registered system was deleted in SUSE Customer Center. Check https://scc.suse.com whether your system appears there. If it does not, please call SUSEConnect --cleanup and re-register this system.
sudo zypper migration
Executing '/usr/bin/zypper patch-check-updatestack-only'
Loading repository data...
Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed. Reading installed packages...
O patches needed (0 security patches)
Executing '/usr/bin/zypper ref'
Warning: There are no enabled repositories defined.
Use 'zypper addrepo' or 'zypper modifyrepo' commands to add or enable repositories.
repository refresh failed, exiting
'/usr/lib/zypper/commands/zypper-migration' exited with status 1

/var/log/messagesまたは/var/log/distro-migration.log ファイルで出力を見つけることもできます。

原因

認定モジュールが存在するため、移行は失敗します。

解決方法

この問題を解決するには、次のコマンドを実行して更新前に認定モジュールを無効にし、移行を再試行します。

sudo SUSEConnect -d -p sle-module-certifications/15.3/x86_64

シナリオ 11: サードパーティのモジュールとセキュリティ ツールが原因で移行が失敗する

VM の移行中に、VM がハング状態になったり、ブート エラーが発生したり、zypper モジュール リポジトリで長時間のプロセスが発生したりするなどの問題が発生します。

原因

  • セキュリティ ツールは、操作をブロックしたり、システム ファイルを変更したりして移行を中断し、不安定になる可能性があります。
  • サード パーティのリポジトリでは、公式の SUSE パッケージと競合するパッケージが導入され、アップグレード中にさらに複雑になる可能性があります。

解決方法

SUSE 移行に進む前に、システム上のサード パーティのリポジトリとセキュリティ ツールを無効にすることをお勧めします。 移行中にそれらを無効にすることは、依存関係の競合を防ぎ、システムの安定性を確保し、公式パッケージとの一貫性を維持し、トラブルシューティングを簡素化し、よりスムーズなアップグレード プロセスを提供するために重要です。

次のステップ

問題が解決しない場合は、サポート リクエストを作成。 要求を送信するときに、トラブルシューティングのために /var/log/distromigration.log ファイルのコピーを添付します。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。