서론

Linux를 사용하면서 가장 큰 불편함이라 한다면 한컴, ms office와 같은 프로그램을 사용하지 못한다는 것이다. 물론 이를 대체하기 위한 여러 워드 프로세서가 존재하지만 완벽하게 호환이 되지 않고 차라리 윈도우에서 프로그램을 사용하는 것이 더 편한 상황이 존재한다.

물론 가상화를 사용하면 대부분의 문제가 해결이 가능하긴 하다. 하지만 나의 경우 굳이 성능을 손해보면서 까지 Linux 내부에서 가상화를 사용하고 싶진 않았다. 그래서 듀얼 부팅으로 윈도우와 Linux를 사용하기로 했고 현재 GRUB를 활용하여 듀얼부팅 환경을 구성하여 사용하고 있다.

듀얼 부팅을 하면 빠질 수 없는 프로그램이 있는데 os prober이다. 듀얼 부팅을 설정하는 과정은 간단하게 설명하면 다음과 같다.

EFI 파티션 마운트 > GRUB 설치 > GRUB config

마지막 단계로 grub config를 하게 되면 /etc/default/grub/etc/grub.d에 있는 script를 바탕으로 /boot/grub/grub.cfg에 grub config 파일이 만들어지게 된다. mkconfig를 활용하여 grub config를 만들때 os prober를 사용하게 되는 때 이때 부트 이미지를 탐색하고 자동으로 config 파일에 entry menu를 추가하게 된다.

문제

처음 설치할 때 usb 부팅을 해서 위와 같은 과정을 거치면 정상적으로 잘 듀얼부팅이 설정이 된다. 하지만 이후에 GRUB설정을 변경하거나 다른 부트이미지를 추가하여 다시 grub config를 만들 때 os prober를 동작시키면 이상하게 다른 부트이미지를 찾지 못한다.
나의 경우에는 GRUB의 timeout 시간을 변경하기 위해 GRUB 설정을 변경했고 다시 grub config를 만들자 Windows의 부트 이미지를 찾지 못하였다.

해결 과정

이 증상에 대해 어느 곳을 뒤져봐도 답은 찾을 수 없었다. 모든 사이트에서 해보라는 방법으로 해도 증상을 똑같았다. Windows의 이미지도 정상적으로 존재했고 바이오스의 모든 설정을 건드려도 제대로 동작하지 않았다. Config 파일에 직접 entry menu를 추가 했을 때 추가 되는 것을 보아 os prober가 부트 이미지를 제대로 탐지하지 않았음이 분명했다.
처음 설치할 때는 제대로 되는데 지금 안되는 이유를 곰곰히 생각해 보았다. 설치하고 나서 내가 한 행위를 차례로 생각해 보았을 때 영향을 줄 수 있는 것은 로케일이라는 생각이 들었고 로케일을 기본으로 바꾸자 마자 os prober가 정상적으로 동작 하였다! 👍 아마 로케일을 변경했을 때 출력되는 결과가 달라서 오작동 되는 것으로 보인다.

해결 방법

로케일을 기본 로케일로 변경하면 된다.

export LC_ALL=C

os prober 동작 이후 원래 로케일로 변경하면 된다.