이번 윈도우 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' 를 실행시키면 다시 설치 안내가 뜨며 이미지를 다운로드 받는 과정부터 시작하게 됩니다.



저작자 표시 비영리
신고

설정

트랙백

댓글

리눅스 우분투에서 배터리 잔량 등의 정보를 확인하는 방법 중, 터미널(CLI)로 확인하는 방법은 다음과 같습니다.



유틸리티 upower 를 활용하여 확인이 가능한데,


1. upower -e



먼저

upower -e

를 입력하면 배터리 정보를 보는 데 필요한 경로를 표시해줍니다.



2-1. upower -i [경로]



그 다음

upower -i [경로]

로 해당 배터리의 상태를 자세히 확인할 수 있습니다.



2-2. upower -i [경로] | grep percentage



또는 간단히 배터리의 특정 상태만 표시하고 싶다면 grep을 이용하면 됩니다. 예를 들어 위 경우 배터리 잔량을 확인하고 싶다면,

upower -i [경로] | grep percentage

만 입력하면 간단하게 배터리 잔량만 표시되게 됩니다.



※ 이 모든 게 귀찮고 한 번에 바로 알 수 있는 방법 없나 하시면 upower -e | upower -i | grep percentage 를 입력하셔도 됩니다. 다만 단순히 이렇게 실행하면 원하는 정보를 얻지 못할 가능성도 있기에..


저작자 표시 비영리
신고

설정

트랙백

댓글