InfraPlatform

리눅스 VirtualBox Guest Addition설치와 VBoxLinuxAdditions.run 설치오류 해결

IT오이시이 2020. 10. 22. 00:42
728x90


VirtualBox Guest Addition 은?


VirtualBox Guest Addition 은 VirtualBox 가상 머신에 설치되는 소프트웨어 패키지로, 게스트 운영 체제와 호스트 사이의 통합성을 향상시킵니다. 이 패키지에는 그래픽 드라이버, 3D가속화, 마우스 및 키보드 통합, 파일 공유 및 기타 기능이 포함되어 있습니다. 이를 통해 가상 머신의 성능과 편의성을 향상시킬 수 있습니다.


 

리눅스 커널 업데이트후 VBoxLinuxAdditions 설치가  안되는 경우

 

해결 방법1. 게스트 어디션 재설치 합니다.
     (커널 컴파일 업데이트 관련 패키지 추가 설치 후 재설치, 어려움)

해결 방법 2. VirtualBox 어플리케이션을 최신 버전을 다시 다운 받아서 설치 합니다. (제일 쉬움)
* 방법1을 해보고 안될경우 사용함(본문참조)



VirtualBox의 Linux Kernel을 업데이트 후 게스트 에디션 (VBoxLinuxAdditions.run)설치가 안되는 경우 입니다.

안되는 이유를 살펴보니 리눅스의 경우 커널이 업데이트되거나 하면  VBoxLinuxAdditions 재설치가 잘 안되는 경우 가 발생합니다.

종종 이런 경우가 있을지 모르겠습니다. 저는 자주 리눅스 커널을 업그레이드하거나 테스트를 하는 경우가 있어서 본 글을 작성해 두었습니다.

  이유를 잊어버리고 오류가 발생하면 찾으면서 고생을 했었습니다.


이 글을 읽으시려면 리눅스 커널 컴파일을 한번은 해보신 분은 대충 이해가 쉽겠지만 처음이신 분은 무슨글인지도 이해하기 힘들 듯 합니다. 
다만 리눅스가 필요한 기능을 커널 코어에 라이브러리 모듈로 등록하는 경우에 대한 이해로 봐두십시요.


공유폴더 사용 : 버추얼 박스 게스트 어디션 VBoxLinuxAdditions.run 설치 하면 좋은점은 호스트와 파일공유입니다.



VBoxLinuxAdditions
를 설치하고 Addition 패키지를 설치하면 호스트 PC의 로컬 디스크를 공유 하여 리눅스 머신에서 파일을 읽고 쓸수가 있습니다.

주로 PC에서 프로그램 개발이나 파일을 리눅스에 저장하고 테스트 하기 용이 합니다.


아래와 같이 윈도우나 리눅스 가상머신(VM)에서 공유 폴더를 사용하려면 VBoxLinuxAdditions 을 설치해야 합니다.

 

 

[VBoxLinuxAdditions 설치]


VirtualboxGuestAddieion.iso 이미지를 가상머신의 cdrom으로 마운트하여 VBoxLinuxAdditions.run 를 실행하면 설치가 됩니다.


1. 가상머신의 cdrom에  VirtualboxGuestAddieion.iso을 마운트 한다.

리눅스 콘솔에서 다음을 실행 합니다.
2.  mount /dev/chrome /mnt
3. cd /mnt
4. ./VBoxLinuxAdditions.run  실행
5. 리부팅



우선 "C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso" 이미지를 아래와 같이 가상머신의 디스크로 마운트하고  가상머신(VM)을 시작합니다.

 

VBoxLinuxAdditions 설치 오류가 나는 경우


보통은 아래와 같이 iso 이미지를  마운트하고 
리눅스 콘솔에서  "VBoxLinuxAdditions.run" 라고 실행하면 설치가 되는 것이 정상입니다.

그런데 오류가 나면서 설치가 되지 않는 경우가 있습니다.

[root@localhost]# mount /dev/cdrom  /mnt
[root@localhost]# cd  /mnt
[root@localhost mnt]# ./VBoxLinuxAdditions.run
 

 


설치시 오류가 발생하는 원인


이련 경우는 커널 버전이 VBoxLinuxAdditions 설치에 필요한 프로그램이 설치되지 않은 경우로 커널모듈을 컴파일 하지 못해서 생기는 문제로 보여 집니다.  

 우선  Vbox 관련 모듈이 커널로 탑재가 되기 위해서 커널 모듈을 컴파일 하기 위해 아래 어야 하는 상황이고 아래와 같은 패키지가 설치가 되어야 합니다.


[VBoxLinuxAdditions.run 실행을 위해 필요한 패키지 준비]

 gcc make perl bison m4 flex
 elfutils-libelf-devel
 kernel  kernel-headers  kernel-devel (필수)

위의 kernel-devl 패키지를 통해서 필요한 vbox 모듈을 컴파일해서 추가를 해야하는데 커널 컴파일을  환경이 구성에 문제가 있어 컴파일이 안되는 것으로 파악이 되었습니다.
 그래서 커널 컴파일에 필요한 패키지 들이 설치가 되어야 하고 VBoxLinuxAdditions.run를 실행하기 위해 다음과  같이 실행을 해 보면서 누락된 패키지를 설치해 보았습니다.

 

[root@localhost mnt]# yum install gcc make perl bison m4 flex elfutils-libelf-devel 
[root@localhost mnt]# yum install kernel kernel-headers kernel-devel 
[root@localhost mnt]# rpm -qa | grep kernel | sort 
kernel-4.18.0-193.19.1.el8_2.x86_64 
kernel-4.18.0-193.el8.x86_64 
kernel-core-4.18.0-193.19.1.el8_2.x86_64 
kernel-core-4.18.0-193.el8.x86_64 
kernel-devel-4.18.0-193.19.1.el8_2.x86_64 
kernel-headers-4.18.0-193.19.1.el8_2.x86_64 
kernel-modules-4.18.0-193.19.1.el8_2.x86_64 
kernel-modules-4.18.0-193.el8.x86_64 
kernel-tools-4.18.0-193.el8.x86_64 
kernel-tools-libs-4.18.0-193.el8.x86_6
 
 
종종 리눅스 기본 설치가 아닌 커널을 업그레이드 해야 하는 상황이 있어서 VBoxLinuxAdditions.run 를 실행하여 설치할때 특정 커널 버전을 맞추어 설치하는 방법도 알아 둘 필요가 있습니다.
[root@localhost mnt]# /sbin/rcvboxadd
Usage: /sbin/rcvboxadd {start|stop|restart|status|setup|quicksetup|cleanup} [quiet]
 
/sbin/rcvboxadd quicksetup <version>
/sbin/rcvboxadd setup 4.18.0-193.19.1.el8_2

 

게스트 어디션 설치 오류 해결 방법은 아래 두가지 입니다.


리눅스 커널 업그레이드 후  guest addition 설치가 안되는 경우 다음 두가지 방법으로 해결 할 수 있습니다.

방법1. 게스트 어디션 재설치 합니다.
           (커널 컴파일 업데이트 관련 패키지 추가 설치 후 재설치, 어려움)

방법 2. VirtualBox 어플리케이션을 최신 버전을 다시 받아서 설치 합니다. (제일 쉬움)

 단  방법2는  방법1의 과정에서  필요한 linux kernel-devel 패키지가 반드시 설치 되어야 합니다



[Reinstall VirtualBox Guest Additions]

  - VBoxGuestAdditions 을 제거한 후에 진행하는 방법입니다.

# VBoxGuestAdditions을 제거 합니다.

#> cd /opt/VBoxGuestAdditions-6.1.22

#> sh uninstall.sh
Removing installed version 6.1.22 of VirtualBox Guest Additions...

 
 

[설치가 안되는 경우의 메시지]

VBoxLinuxAdditions.run를 실행하여 설치를 시도하면 아래와 같이 실패합니다.
설치의 과정은 커널의 버전에 맞게 커널 모듈을 컴파일 하기위한 과정에서 생기는 문제인데 "kernel-devel-* " 패키지와 관련이 있습니다. 주로 해당 패키지들의 버전 이름이 정확이 일치하지 않아서 컴파일이 안되는 경우였습니다.
아래 예시는 컴파일은 했는데 완료 되었다는 말은 아니고 "Building the modules for kernel 4.18.0-193.19.1.el8_2.x86_64." 을 설치하다가 에러가 발생 하였다고 합니다.

[root@localhost]# cd  /mnt

[root@localhost mnt]# ./VBoxLinuxAdditions.run
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup &lt;version&gt;
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-193.19.1.el8_2.x86_64.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong
ValueError: File context for /opt/VBoxGuestAdditions-6.1.6/other/mount.vboxsf already defined
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.
d

 
[커널 컴파일 환경을 설정합니다.]
설치된 커널 소스 디렉토리로 이동하여 커널 컴파일이 가능한지 확인해 보았습니다. 주로 아래 작업에서 오류가 나서 컴파일이 안되고 있었기 때문에 아래 작업에 문제가 없도록 부족한 패키지 설치를 해주면 된다는 것입니다.

쉽기는 하지만 아래 까지 하면 된다는 것은 에러 로그에 남아 있지 않기 때문에 그냥포기하고 커널을 업그레이드 하지 않는 것이 좋겠습니다.

[root@localhost]#cd /usr/src/kernels/4.18.0-193.19.1.el8_2.x86_64
[root@localhost 4.18.0-193.19.1.el8_2.x86_64]#make
[root@localhost 4.18.0-193.19.1.el8_2.x86_64]# ls -al include/config/auto.conf
-rw-r--r--. 1 root root 187644 Sep 14 10:44 include/config/auto.conf
 

 

[다시 설치 재시도를 해봅니다. ]

VBoxLinuxAdditions.run를 실행하여 컴파일을 하고 나면 리부팅 하라고 합니다.  뭔가 설치가 되었다고 보여집니다.
" VirtualBox Guest Additions: Running kernel modules will not be replaced until the system is restarted " 라고 하는 것을 보면 설치는 되었다고 보입니다.

[root@localhost mnt]# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.6 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 6.1.6 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup &lt;version&gt;
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-193.19.1.el8_2.x86_64.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what
went wrong
ValueError: File context for /opt/VBoxGuestAdditions-6.1.6/other/mount.vboxsf already defined
VirtualBox Guest Additions: Running kernel modules will not be replaced until
the system is restarted
 

 


리부팅후 작동 되는지 확인하면 됩니다.  성공했다고 합니다.

[root@localhost mnt]# /sbin/rcvboxadd status
The VirtualBox Additions are currently running.

 

 
728x90
반응형