이번 윈도우 10 레드스톤부터 윈도우 10 내에 내장된 bash shell (우분투)를 지원한다는 소식은 알 만한 분들은 이미 다 알고 계실 것 같습니다.


이 글에서는 그 우분투의 설치 및 bash 실행에 대한 방법과, 또 해당 우분투를 최신 배포판으로 업그레이드하는 방법, 마지막으로 우분투 이미지를 (재설치 등의 이유로) 제거하는 방법을 소개하려 합니다.








Bash on Windows (우분투) 설치





1. '제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄기 - Linux용 Windows 하위 시스템' 체크 후 확인 버튼 클릭합니다.


Windows 기능 창


이후 재부팅 안내가 나오면 재부팅을 한 후 기다립니다.





2. cmd나 PowerShell 둘 중 아무 거나 실행시킨 후 'bash' 명령을 입력합니다.

(또는 그냥 '윈도우 키'를 누른 후 바로 'bash' 를 쳐서 (즉, 검색창에 bash를 검색해서) 바로 명령 실행해도 됩니다)



처음 실행 시 초기 설치가 진행됩니다.


(1) Windows 계열 Shell prompt를 통해 실행시키는 화면


(2) 검색창 (윈도우 키를 누른 후 'bash' 타이핑)을 통해 실행시키는 화면



도중에 계정 이름과 암호를 묻게 되면 원하는 아이디와 패스워드를 입력합니다.






3. 설치가 끝나면 정상적으로 우분투 14.04 가 설치된 것을 확인할 수 있습니다.






(번외 ps. 'C 드라이브'와 같은 각 로컬 파티션 ('내 컴퓨터'의 '로컬 디스크') 들은 /mnt 경로에 해당 드라이브 문자로 마운트되어 있습니다)






Bash on Windows (우분투) 배포판 업그레이드





14.04도 꽤 괜찮은 배포판이지만, 아무래도 수 년 전의 구형 배포판이다 보니 최신 버전의 유틸리티가 지원되지 않는 경우도 많고 해서 (...혹시 직접 소스를 컴파일해 쓰신다면 말리지는 않겠지만...) 업그레이드해야 할 필요성을 느낄 수 있습니다.


윈10 레드스톤 초기 때는 배포판 업그레이드 시도가 실패했는데, 이번에는 큰 문제 없이 되는 것 같아 올려봅니다.

(※ 다만 부작용은 있습니다. 아래에 설명해 두겠지만, 그 점 감안해서 진행해주시기 바랍니다.)




1. /etc/apt/sources.list 파일을 수정하기 위해 에디터로 엽니다. (에디터는 편한 것으로 사용하세요)


우분투 설치 시 기본으로 있는 vim 에디터 사용.

단 처음 보는 사람에겐 그다지 권장하지 않는 에디터이다




2. 'trusty' 부분을 원하는 배포판 코드네임(예 : Ubuntu 16.04의 경우 'xenial')으로 바꿉니다.


출시 시기(Version)에 따른 코드네임(Adjective)https://wiki.ubuntu.com/DevelopmentCodeNames 에서 확인할 수 있습니다.


수정 전 스샷



아래는 수정 후의 스샷입니다. 우분투 16.04 으로 올리고 싶었으므로 'trusty' 를 모두 'xenial' 로 바꾸었습니다.


(다만 리포지토리 자체도 아무래도 외국 서버보다 상대적으로 속도가 빠른 한국 미러로 바꾸었는데, 바꾸시려는 분은 아래 스샷의 주소를 참고하시기 바랍니다)


수정 후 스샷





3. 아래의 명령을 실행합니다. 진행 중 아래에 있는 스샷과 같이 몇몇 오류 메세지가 뜰 수 있습니다.


sudo apt update

sudo apt full-upgrade


에러 메세지


업그레이드 완료 화면




4. 모든 설치가 끝나고 exit 후 다시 bash 로 들어오면 해당 버전의 배포판이 설치된 것을 알 수 있습니다.


버전 확인


16.04 기준 gcc 최신 버전이 설치된 모습. 14.04 버전에서는 apt를 이용해 설치될 수 없는 버전이다


추후 개인적으로 별도 커스텀 prompt를 적용한 모습






※ 배포판 업그레이드 시 주의 및 참고 사항



1. 이런 업그레이드 작업 자체가 윈도우 내의 '색다른'(?) 변종 리눅스 내에서 이뤄진 탓에, 오류가 있을 수 있으며 정상 작동 보증을 받기는 힘듭니다.


대표적으로 제가 겪고 있는 문제 중 하나는 sudo 첫 실행 시 'sudo: no tty present and no askpass program specified' 라는 에러를 내고 아무 작업도 실행되지 않는 것인데, 아무래도 업데이트 후 내부적인 tty 동작에 무언가 문제가 있는 것 같습니다.


이 문제의 해결책은 아래와 같습니다.


sudo -S [명렁어]


업데이트 후 sudo 가 생각대로 잘 되지 않는다


이 문제는 sudo 를 처음 실행했을 때 password 를 입력받아야 하는데, Bash on Windows 의 어떤 내부 사정으로 인해 tty로부터 password 를 입력받을 수 없는 상황이 원인입니다. sudo 중 -S (대문자 S) 옵션은 sudo가 password 를 tty 로부터가 아닌 stdin (즉 현재 입력 중인 터미널) 로부터 직접 받을 수 있게 해 줍니다.


따라서 처음 sudo를 실행했을 때 password 를 입력해야 하는데, 그걸 'sudo -S' 와 같이 실행시키면 정상적으로 password 를 받아 실행되는 것을 볼 수 있습니다.



일단 한 번 sudo -S 를 사용해서 입력받은 password 가 유지되는 상황이라면 (sudo 실행 때마다 매번 password를 받지는 않죠), 당분간은 그냥 원래의 sudo 를 계속 사용할 수 있습니다. 즉 sudo -S 는 '패스워드를 입력해야 할 필요가 있을 경우'에만 사용하면 됩니다.

간단하게는 sudo 실행 시 저런 에러 메세지가 뜬다면 그 때만 -S 옵션을 붙여 재실행하면 되겠죠.



저 -S 옵션에 관해서 일일히 신경쓰기 싫다면 ~/.bashrc (현재 유저만 적용) 또는 /etc/bash.bashrc (모든 유저에게 적용하고 싶을 경우) 파일 맨 아래쪽에 아래와 같은 명령어 한 줄을 추가하셔도 됩니다.


alias sudo='sudo -S'


bashrc 파일 내에 적용된 alias


이렇게 하면 해당 유저가 실행한 bash 안에서는 'sudo' 가 'sudo -S'로 자동으로 변환 인식됩니다. 그냥 평소처럼 sudo 라고만 쓸 수 있게 되죠.


다만 위 에러 내용을 보았을 때, tty 를 사용하는 유틸리티는 비슷한 문제를 발생시킬 가능성이 있다고 볼 수 있습니다. 최신 배포판으로 업데이트하기 전에 관련 내용을 확인해 둬야겠죠.




이처럼 배포되는 변종 14.04 외에는 마소&캐노니컬 에서 정식 지원되지 않는 범위라 예상치 못한 다양한 문제가 있을 수 있으니, 그런 문제가 발생하면 다시 윈도우 정식 배포판으로 내려올 생각은 미리 해 두시는 게 좋습니다.






2. 커널 업그레이드는 안 되는 것으로 보입니다.


일단 apt install 로 최신 커널 설치 자체는 되는데, 문제는 윈도우 계열 쉘 프롬프트에서 'bash' 를 입력해서 실행시키는 것 자체가 이미 초기 커널을 베이스로 하는 것을 기본값으로 두고 있기에 설치된 커널로 '부팅'하는 게 불가능합니다.


뭐 사실 애초에 기존 커널 자체도 윈도우 내에서 돌아가기 위해 상당한 깊이로 수정되었을 것이기에, 설사 새 커널로 바꿀 수 있도록 지원한다 하더라도 실제로는 안 됐을 가능성이 높았을 것 같군요.








Bash on Windows (우분투) 이미지 삭제 (및 재설치)




우분투를 재설치해야 하는 경우가 있을 수 있습니다. 또는 더이상 사용하지 않지만 이미지 용량 때문에 삭제를 해야 할 수도 있겠죠. 이 경우 처음의 제어판에 있던 '프로그램 기능'에서 체크를 해제하는 것만으로는 이미지가 삭제되지 않습니다. 별도의 명령어를 통해 삭제해줘야 합니다.



삭제하는 명령어는 간단합니다. cmd나 PowerShell 에서 아래의 명령어를 치면 됩니다.


lxrun /uninstall /full


우분투 이미지 삭제 화면


y 를 입력하고 엔터를 치면 빠르게 우분투가 제거됩니다.


이후 재설치를 원한다면 처음처럼 그냥 'bash' 를 실행시키면 다시 설치 안내가 뜨며 이미지를 다운로드 받는 과정부터 시작하게 됩니다.



저작자 표시 비영리
신고

설정

트랙백

댓글