openEuler 20.03 SP 1のためにVirtualBoxゲスト追加をインストールしてください


この記事は、openEuler 20.03 SP 1にVirtualBoxのゲストの追加をインストールしたときに発生した問題と解決策について主に説明します.
  • openEuler 20.03 SP 1をインストールした後、openEulerにログインします(ここでrootとしてログインします)場合は、通常のユーザーの場合は、使用する必要がありますsudo コマンドを実行するときにDevice -> Insert Guest Additions CD image... 最新バージョンのゲスト追加CDをシステムにロードします.
  • CDをマウントします.
  • mkdir -p /run/media/openeuler/VBoxAdditions
    mount /dev/sr0 /run/media/openeuler/VBoxAdditions
    cd /run/media/openeuler/VBoxAdditions
    
  • いつものように直接インストールすることを選択すると、システムがtar 最小設置の場合の抽出プログラムインストールします
  • dnf update
    dnf install tar
    
  • インストールを実行します
  • ./VBoxLinuxAdditions.run
    

    エラーが存在することがわかります.エラーの詳細を見てみましょう.
    cat /var/log/vboxadd-setup.log
    

    コンパイルエラーであることが分かる.Linuxカーネルドキュメントによるとaccess_ok 関数は、3つのパラメータを渡すことから変更された.vboxadditions Linuxのバージョン番号で3つまたは2つのパラメータを使用するかどうかを判断します.しかし、openEuler 20.03 SP 1で使用されるカーネルのバージョン番号は4ですが、Linuxカーネルバージョン5以降のパッチが適用されています.その結果、access_ok 関数はこの場合、2つのパラメータしか必要としないので、vboxadditionsaccess_ok を指定します.
  • vboxadditionsのソースコードを変更します( vboxadditionsのバージョン番号に従って対応するパスが変更されます).
  • cd /opt/VBoxGuestAdditions-6.1.22/src/vboxguest-6.1.22/vboxguest/r0drv/linux
    vi memuserkernel-r0drv-linux.c
    
    編集して、次の2つの場所を変えてくださいRTLNX_VER_MIN(5,0,0) to RTLNX_VER_MIN(4,0,0) :


    次に、ESC キー:wq 保存して終了します.
    他のファイルにも同じ問題があるので、コマンドを実行し続けてください.
    cd ../../../vboxsf
    vi regops.c
    

    次に、ESC キー:wq 保存して終了します.
  • 最後にインストールを続けます.
  • /sbin/rcvboxadd setup
    

    インストール完了!
    最後に、VirtualBoxゲスト追加は、システムを再起動した後に使用することができます!