19 07 2015
데비안 Wheezy 기반인 라즈비안을 데비안 Jessie로 업그레이드 했다. 사실 별다른 이유가 있어서 한 건 아니고, 그냥 흥미가 생겨서… 구글+의 염재현 님의 Wheezy를 Jessie로 업글했다는 포스팅과 더불어 딱히 라즈비안의 새 버전이 나오지 않았는데도 Jessie로 업그레이드가 가능하다는걸 보니 좀 흥미가 동해서 해봤다.
사실 실제로 서비스를 운영하고 있는 서버라면 이런 테스트는 꿈도 못꾸겠지만, 이런 테스트를 그런데로 자유롭게 할 수 있는것이 라즈베리 파이의 장점이 아닌가 한다. 운영체제가 비교적 작은 용량의 SD 카드에 담겨있다 보니 그냥 SD 카드의 이미지를 떠놓고 바로 테스트를 했다가, 문제가 생기면 다시 복원해주면 되니.
Wheezy에서 Jessie로의 업그레이드는 아래 글을 참고했다. 제목에 Sessie라고 적혀있는건 Jessie의 오타인 것 같다.
나의 경우는 아래와 같은 순서로 진행했다. 절차 자체는 생각보다 간단해서 싱거울 정도였지만, 업그레이드에 걸리는 시간이 생각보다 오래 걸리기 때문에(지금 생각해보면 믿기지 않지만, 거의 하루 반나절 걸렸다) 그냥 느긋하게 게임이라도 하면서 구경하면 되겠다-_-
여담으로, 이 문서는 내가 진행한 경과만을 기록해둘 뿐, 이 내용에 대해 아무런 보증을 하지 않는다. 정확한 내용은 Upgrades from Debian 7 (wheezy)를 참고하자. 또한 업그레이드 후의 Jessie에서 발생할 수 있는 문제점을 설명한 Issues to be aware of foe jessie도 참고해두면 좋을 것 같다 난 둘 다 안봄 . 그리고 사실 아직 라즈베리 파이 공식 홈페이지에 Jessie 기반의 라즈비안이 올라오지 않은 이상, 이에 대한 보증도 이뤄지지 않을 것 같은데 그런 부분도 기억해두자.
또한 공식 홈페이지를 살펴보면 알겠지만, 데미안 Jessie로의 업그레이드는 Wheezy에서만 지원하기 때문에 이전 버전을 사용하고 있다면 먼저 Wheezy로의 업그레이드가 선행되어야 한다. …라지만, Wheezy 이하의 라즈비안을 쓰는 사람이 있기나 한지는 잘 모르겠다.
일단 참고삼아 설치된 데비안과 커널의 버전을 확인한다.
|
$ cat /etc/debian_version 7.8 $ uname -r 3.18.11+ |
내 경우 데비안 버전은 7.8, 커널 버전은 3.18.11+이다.
운영체제 업그레이드 후에 네트워크 설정이 변경된다는 이야기가 있어서, 나중에 간단하게 설정 복원하려고 네트워크 설정 파일을 따로 백업해뒀다. 백업한 파일은 다음과 같다.
- /etc/network/interfaces
- /etc/wpa_supplicant/wpa_supplicant.conf
SD 카드를 사용하는 라즈베리 파이인 만큼, 단순히 네트워크 정보만 백업할게 아니라 아예 SD 카드 자체를 통채로 이미징해 두는 것이 낫지 않을까 싶다. 나도 SD 카드를 백업해두고 진행했기도 하고. SD 카드 백업하는건 여기서 따로 언급하지는 않는다.
여하튼 백업도 끝났다면 기존에 설치해 두었던 패키지들은 최대한 업그레이드를 해 둔다.
|
apt-get update && apt-get upgrade |
설치된 패키지들의 업그레이드가 완료되면, 일단 apt의 저장소 정보를 수정해야 한다. 자주 사용하는 편집기를 사용해서 /etc/apt/sources.list
파일을 수정한다.
내 경우 해당 파일의 내용은 아래와 같았다. 내용은 사용자마다 다를 수 있다.
|
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ wheezy main contrib non-free rpi |
위 내용 중 wheezy
라고 명시된 부분을 모두 jessie
로 고친다. 수정하면 아래와 같은 모습이 될 것이다.
|
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ jessie main contrib non-free rpi |
여담으로, 수정할 때 jessie
로 고치는 대신 stable
이라고 수정하면 차기 데비안의 새로운 버전이 stable 버전이 되었을 때 자동으로 업그레이드 된다고 한다. 다만, 그 경우 의도치 않은 시스템 업그레이드가 발생할 수 있음에 주의하자. 나는 그냥 jessie
로만 업그레이드 하고, 필요할때는 그때 업그레이드하기로 했다.
여하튼 해당 파일을 수정했다면 저장 후 패키지 목록을 업그레이드한다.
패키지 목록이 업그레이드 되었다면 일단 upgrade 명령으로 기존에 설치된 패키지들을 업그레이드한다.
upgrade 명령으로 업그레이드할 때는 설치된 모든 패키지 중 다른 패키지와의 의존성 없이 업그레이드가 가능한 패키지만을 업그레이드한다고 한다. 이것은 공식 홈페이지에는 최소 시스템 업그레이드(Minimal system upgrade)라고 명시되어 있다.

apt-get upgrade 했더니 이런 용량은 처음이라 급 놀램 (…)
내 경우 위 명령어로 업그레이드를 시도하자 132MB의 공간이 필요했다. 지금까지 라즈베리 파이에 설치된 패키지를 업그레이드하면서 이렇게나 많은 용량이 필요했던 적이 없었는데… 시스템 업그레이드를 하기 때문이니까 그런가보다 하고 계속 진행했다.

시스템 업그레이드를 하다 보내 뭔소린지 모를 화면이 (…)
설치 중 위와 같은 화면이 표시되었는데, 영어에 약한 내 입장에서는 정확한 의미는 모르겠고-_- 업그레이드 도중에 서비스의 재시작 등이 발생할텐데, 패키지 업그레이드 중에 사용자에게 묻지 않고 자동으로 서비스를 재시작할 것이냐…는 의미인 것 같았다. 나는 일단 예
를 선택해서 진행했다.

변경된 설정 파일을 어떻게 할 것이냐는 질문. 이거 생각보다 많이 물어보더라…
또 위와 같은 화면도 표시가 되었는데, 특정 패키지 업그레이드 중에 기존 설정 파일을 어떻게 처리할 것인지 묻는 화면이다. 내 경우는 계속 현재 설정을 유지하는 방향으로 계속 진행하였다.
설치된 패키지들이 업그레이드가 끝났다면, 전체 업그레이드를 실행한다.

아까는 100MB 즈음이 필요하더니, 이번엔 아예 자릿수를 바꿔서 376MB (…)
내 경우 376MB의 공간이 필요했다. 위의 upgrade 명령때도 그랬지만, 이런 큰 용량이 필요했던 적이 없었기 때문에 좀 놀랐… …지만, 바로 앞의 upgrade 시에도 이미 100MB를 넘어서는 용량을 보게 되어서 그렇게까지 놀라지는 않았다.
이건 정말 시간이 오래 걸린다. 커피라도 한잔 마시면서 느긋하게 기다리도록 하자-_-
업그레이드 끝났다면 불필요한 패키지를 삭제한다.

심지어는 불필요 패키지의 삭제만으로도 103MB (……)
autoremove때도 역시 평소보다 제법 큰 용량이 확보되었는데, 한번에 103MB가 확보된다고…
여하튼 불필요 패키지까지 삭제하였다면 시스템을 재시작한다.
재시작 후에는 업그레이드가 제대로 되었는지 버전을 확인해보자.
|
$ cat /etc/debian_version 8.0 $ uname -r 3.18.11+ |
데비안의 버전은 7.8에서 8.0으로 업그레이드 되었는데, 커널의 버전은 3.18.11+ 그대로다. Wheezy에서 Jessie로 업그레이드하면 커널도 함께 업그레이드 된다고 들었는데 조금 의아했다. 나중에 한가하면 커널도 한번 업그레이드 해볼까 싶다.
여담이지만, 이 시스템 업그레이드의 계기(?)가 되었던 염재현 님의 이야기와는 달리 나는 네트워크 설정은 날아가지 않았는데, 라즈비안에 설치해 두었던 Deluge의 설정이 좀 꼬였다. NAS+토렌트 머신으로 쓰고 있는 내 입장에서는 약간 치명적인데, 설정이 약간 꼬이기만 했을 뿐 동작에는 별다른 문제가 없는거 같아서 며칠간 두고 보려고 한다 여차하면 백업해둔 이미지로 되돌리면 되고 . 만약 리눅스 시스템을 업그레이드하려고 한다면 업그레이드 후 설치된 서비스들의 설정이 그대로 유지되었는지 확인해볼 필요가 있는 것 같다.
Debian, Jessie, Raspberry, Raspbian, Wheezy, 데비안, 라즈베리파이, 라즈비안, 리눅스 업그레이드
30 06 2015
VMware 등을 위시한 통칭 하이퍼바이저 유형 2의 가상머신 소프트웨어들은 게스트 운영체제에 각 가상머신 소프트웨어에 맞는 추가 유틸리티(이하 툴)를 설치해주지 않으면 가상머신이 온전한 성능을 발휘하지 못한다.
게스트 운영체제로 윈도우 등 GUI 운영체제만 설치해서 사용해본 경우라면 툴의 기능이 데스크탑의 해상도 확장 용도 정도로만 생각하는 경우도 보았고, 심지어는 게스트 운영체제로 GUI 운영체제를 사용할 것이 아니라면 툴이 필요없다고 생각하는 경우도 있는 것 같다. 하지만 사실, 툴은 게스트 운영체제와 호스트 운영체제 간의 상호 통신을 가능하게 해주고, 게스트 운영체제가 온전한 성능을 발휘할 수 있도록 해주며, 가상머신 프로그램이 제공하는 기능을 게스트 운영체제가 사용할 수 있도록 해준다. 이를 테면 VMware Workstation의 게스트 환경으로 윈도우 운영체제를 설치하고 VMware Tools를 설치했다면, 호스트와 게스트간의 파일 액세스가 가능한 공유 폴더 기능을 사용할 수 있다.
VMware에서 제공하는 VMware Tools 설치 및 구성이라는 문서에 의하면 VMware Tools가 제공하는 기능은 다음과 같다. 단, 해당 문서에도 모든 기능이 명시된 것은 아니기 때문에, 몇가지는 직접 추가했다.
- 게스트 운영체제로 GUI 운영체제가 설치된 경우, 운영체제 자체의 그래픽 성능의 향상
- 게스트 운영체제로 Aero를 지원하는 윈도우 운영체제가 설치된 경우, Aero가 훨씬 빠른 속도로 동작하도록 해줌
- 게스트 운영체제의 어플리케이션을 호스트 운영체제의 일반 어플리케이션처럼 보이도록 해주는 Unity 기능 제공
- 게스트와 호스트 간의 텍스트, 그래픽 및 파일의 복사 및 붙여넣기
- 게스트와 호스트 간의 드래그 앤 드롭을 이용한 파일 및 폴더의 복사
- 마우스 성능의 개선
- 게스트 시스템과 호스트 시스템의 클럭 동기화
- 게스트 운영체제 작업의 자동화를 지원하는 스크립트 작성
- 게스트 환경에서 호스트 환경의 파일에 접근할 수 있는 공유 폴더 기능
어째 대부분의 기능이 GUI 운영체제에서나 적용될 것 같다는 점은 일단 넘어가자 이러한 기능들이 있기 때문에, 어느 경우에라도 게스트 운영체제에는 가상머신 툴을 설치하는 것이 낫다. 물론 기능들을 살펴보면 알 수 있듯이, 이 기능들이 모든 게스트 운영체제에 적용되는 것은 아니고, 요새는 가상화 기술도 많이 발전했고 PC의 스펙도 높아졌기 때문에 게스트 운영체제의 성능 향상이 크게 와닿지 않을 수도 있기는 하다.
그런데 게스트 운영체제에 툴을 설치하는 것도 은근히 일이다. 게스트 운영체제가 GUI 운영체제라면 차라리 나은데, 그냥 가상머신 소프트웨어에서 “툴 설치” 메뉴를 선택하면 툴이 저장되어 있는 ISO 파일을 자동으로 게스트 운영체제에 마운트해주고, 이후 바로 설치 화면이 뜨는 경우도 있어서 크게 어렵지 않다. 그런데 게스트 운영체제로 데스크탑 환경이 설치되지 않은 CLI 환경의 리눅스를 설치해서 사용하고 있다면 수동으로 툴을 설치해줘야 하는데, 리눅스 환경이 익숙하지 않다던가 하는 이유로 설치를 어려워하는 경우가 많다 내 얘기임 . 그래서 나중에 필요할때 내가 볼라고 관련 내용을 가상머신 소프트웨어별로 여기에 정리해둔다.
사실 이 글을 보다 보면 알겠지만, 툴 설치는 대부분 빌드 툴 설치 → 커널 헤더파일 설치 → 툴 설치
의 순서대로 진행되는 경우가 일반적이기 때문에, 툴 설치 자체에만 익숙해지면 나중에는 설치한 게스트 운영체제에만 익숙해져도 대부분은 가상머신 소프트웨어와 관계 없이 쉽게 설치할 수 있다. 그렇지만 일단 이 문서는 내용을 죽 따라가면서 설치하는걸 전제로 작성하였기 때문에, 각 가상머신 소프트웨어별로 동일한 내용(사실은 운영체제 차원에서 선행 진행해야 할 내용)도 생략하지 않고 모두 명시했다 한마디로 복사/붙여넣기 .
가상머신 소프트웨어는 각각 VMware Fusion, Parallels Desktop, VirtualBox를 사용했으며, 테스트는 맥에서 진행했지만 Parallels Desktop을 제외한 나머지는 윈도우 PC에서도 동일한 수순으로 진행해서 툴을 설치할 수 있다. 또한 게스트 운영체제는 Ubuntu Server 14.04.2 LTS를 사용했으나, 다른 배포판이라도 해당 배포판에 맞는 패키지 관리자를 사용하는 것 외에는 크게 방법이 다르지 않을 것으로 생각된다.
또한, 각 툴들의 목적은 게스트 운영체제가 최대의 성능을 발휘할 수 있도록 하는 것과 게스트 운영체제가 가상머신 소프트웨어의 기능을 최대한 활용할 수 있도록 하는 것에 있기 때문에, 가상머신 소프트웨어가 업데이트 되었다면 툴도 그에 맞춰서 업데이트 해 줘야 한다. 이 문서에서는 툴의 업데이트에 대해서는 따로 명시하지 않는다 나도 안해봤거든 .
VMware Fusion에 VMware Tools 설치하기
아래 내용은 OS X용 소프트웨어인 VMware Fusion 뿐만 아니라 윈도우용 소프트웨어인 VMware Workstation에서도 동일하게 적용된다.
먼저 아래 명령어를 입력해서 설치된 패키지를 업데이트한다.
|
apt-get update apt-get -y upgrade |
설치된 패키지들을 업데이트 했다면, 프로그래밍에 필요한 빌드 툴을 설치한다.
|
apt-get -y install build-essential |
빌드 툴을 설치했다면 이번에는 사용중인 리눅스의 커널 헤더 파일을 설치한다.
|
apt-get -y install linux-headers-generic linux-headers-$(uname -r) |
커널 헤더 파일도 설치가 끝났다면, VMware Fusion 메뉴의 Virtual Machine > Install VMware Tools
를 선택한다. 해당 메뉴를 선택하면 VMware Tools CD를 가상 머신에 삽입한다는 메시지가 표시되는데, Install을 클릭해서 VMware Tools CD를 가상 머신에 삽입한다.
그리고 아래 명령어로 삽입된 CD를 /mnt 디렉토리에 마운트한다.
CD가 마운트 되었다면, VMware Tools의 설치 파일을 복사할 디렉토리를 생성해야 한다. 이 문서에서는 홈 디렉토리 아래에 tmp 디렉토리를 생성해서 사용하려고 한다.
tmp 디렉토리를 생성한 뒤, 해당 디렉토리로 이동한다.
VMware Tools CD에 들어있는 VMware Tools의 압축 파일을 방금 생성한 tmp 디렉토리로 복사한다. 해당 압축파일의 이름은 VMwareTools-x.x.x-xxxxxxx.tar.gz
형태로, x는 VMware Tools의 버전이나 릴리즈 넘버 등이 들어간다. 이것은 직접 파일 목록을 조회해서 확인하는 수밖에 없다.
|
ls /mnt # VMware Tools의 압축 파일의 이름을 확인 cp /mnt/VMwareTools-9.9.3-2759765.tar.gz ~/tmp |
복사했다면 압축 파일의 압축을 푼다.
|
tar -xvf VMwareTools-9.9.3-2759765.tar.gz |
압축이 모두 풀렸다면, 압축파일의 압축이 풀린 디렉토리로 이동한다.
|
cd ~/tmp/vmware-tools-distrib/ |
이후에는 VMware Tools의 설치 스크립트를 실행한다. 참고로 설치 스크립트는 반드시 관리자 권한으로 실행해야 한다 지금까지도 충분히 관리자 권한으로 실행해야 하는 명령어들이 잔뜩 있었지만 .
설치 스크립트를 실행할 때 사용한 -d
옵션은 툴 설치시에 사용자에게 입력받아야 하는 내용을 입력받지 않고 모두 기본값으로 처리하도록 하는 옵션이다. 사실 다른 가상머신 소프트웨어의 툴에 비해서 VMware의 툴은 설치할때 사용자에게 입력받는 내용이 굉장히 많은 편이다. 물론 일반적인 경우에는 엔터만 치다 보면 다 넘어가기는 하지만, 그게 귀찮을 정도로 물어보니… 만약 -d
옵션을 주고 실행하면 사용자가 입력해야 하는 부분은 모두기본값으로 설치되지만, 해당 옵션을 주지 않고 실행하면 세세하게 설정을 지정해가면서 설치할 수 있다.
참고로 설치 스크립트는 Perl로 작성되어 있다. 만약 스크립트 실행이 안된다면 시스템에 Perl이 설치되어 있는지 확인한 뒤, 설치되어 있지 않다면 Perl을 설치한다. 대부분의 리눅스 배포판에는 Perl이 기본으로 설치되어 있으므로 별다른 문제는 발생하지 않으리라고 생각된다. 이 문서는 Perl을 설치하는 등의 문제 해결에 대해서는 생략한다.
설치가 끝났다면 설치 CD의 마운트를 해제해야 하겠지만, 테스트 결과 VMware Fusion 7.1.2 기준으로 VMware Tools 설치가 완료되면 설치 CD는 자동으로 마운트가 해제되고 가상 머신에서 제거된다. 만약 수동으로 마운트를 해제하려면 아래 명령어를 입력한다.
이렇게 해서 VMware Tools의 설치가 끝났다면 가상머신을 재시작한다.
참고로, VMware의 경우는 게스트 운영체제로 설치된 리눅스가 GUI 데스크톱 환경이 설치되어 있는 환경이어도 동일한 방법으로 툴을 설치한다.
Parallels Desktop에 Parallels Tools 설치하기
패러렐즈에 패러렐즈 툴을 설치하는 것은 VMware랑 거의 비슷하다.
먼저 아래 명령어를 입력해서 설치된 패키지를 업데이트한다.
|
apt-get update apt-get -y upgrade |
설치된 패키지들을 업데이트 했다면, 프로그래밍에 필요한 빌드 툴을 설치한다.
|
apt-get -y install build-essential |
빌드 툴을 설치했다면 이번에는 사용중인 리눅스의 커널 헤더 파일을 설치한다.
|
apt-get -y install linux-headers-generic linux-headers-$(uname -r) |
메뉴에서 작업 > Parallels Tools 설치...
를 선택한다. 해당 메뉴를 선택하면 Parallels Tools 설치 CD를 가상 머신에 삽입한다는 메시지가 표시되는데, 계속
을 클릭해서 설치 CD를 삽입한다.
그리고는 아래 명령어로 삽입된 CD를 마운트한다.
CD가 마운트 되었다면, 마운트 포인트로 이동해서 설치 스크립트를 실행한다. 설치 스크립트는 반드시 관리자 권한으로 실행해야 한다.
Parallels Tools는 텍스트 화면에서 옵션값을 입력받는 VMware와는 달리 대화식 설치 화면이 표시된다. 어렵게 생각할 것 없이 그냥 적당히 Next만 선택해줘도 알아서 잘 설치된다.
설치가 완료되었다면 아래 명령어로 CD의 마운트를 해제한다.
모든 단계가 완료되었다면 게스트 운영체제를 재시작한다.
VirtualBox에 Guest Additions 설치
VirtualBox의 Guest Additions는 공식 문서가 분량이 좀 많아서, 다른 문서를 몇 개 더 인용했다.
먼저 아래 명령어를 입력해서 설치된 패키지를 업데이트한다.
|
apt-get update apt-get -y upgrade |
설치된 패키지들을 업데이트 했다면, 프로그래밍에 필요한 빌드 툴을 설치한다.
|
apt-get -y install build-essential |
빌드 툴을 설치했다면 이번에는 사용중인 리눅스의 커널 헤더 파일을 설치한다.
|
apt-get -y install linux-headers-generic linux-headers-$(uname -r) |
커널 헤더 파일을 설치했다면 DKMS(Dynamic Kernel Module Support)를 설치해야 한다. DKMS라는 것은 영문 위키피디아의 DKMS 항목을 보건데, 커널의 새 버전이 설치되고 업그레이드가 되더라도 별다른 작업 없이 계속 동작하도록 해 주는 모듈인 것 같다. 영어가 딸려서 이 이상은 잘 모르겠다-_-
여하튼, 아래 명령어로 DKMS를 설치한다.
DKMS가 설치되었다면 메뉴에서 Devices > Insert Guest Additions CD Image...
를 선택한다. 선택한 뒤에는 아래 명령어를 입력해서, 가상 머신에 삽입된 Guest Additions CD를 마운트한다.
CD가 마운트 되었다면, 현재 디렉토리를 CD의 마운트 포인트로 이동한 후, 설치 스크립트를 실행한다. 설치 스크립트는 반드시 관리자 권한으로 실행해야 한다.
|
cd /mnt sh ./VBoxLinuxAdditions.run |
설치는 사용자의 별다른 입력같은거 없이 자동으로 이루어지며(설치할 것이냐는 질문 정도는 물어봤던 것도 같다. 그냥 yes
를 입력해주면 된다), 설치가 완료되었다면 CD를 마운트 해제한다.
이후에는 게스트 운영체제를 재시작한다.
참고로, 독특하게도 VirtualBox의 Guest Additions는 패키지 저장소를 이용해서 간편하게 설치할 수도 있다. 하지만 이 방법이 권장되지는 않는데, 왜냐하면 당연하게도 시스템에 설치되어 있는 VirtualBox에 포함되어 있는 Guest Additions가 해당 VirtualBox에 가장 잘 맞는 버전이기 때문이다. 필요에 따라서 구버전 VirtualBox를 사용하고 있다거나, 반대로 최신버전 VirtualBox를 사용하고 있더라도 Guest Additions의 최신 버전은 모종의 이유로 저장소에 등록되지 않는 등, 현재 설치된 VirtualBox와 맞지 않는 Guest Additions를 설치하게 될 가능성은 낮지 않다.
비록 권장되지는 않는 방법이지만, Guest Additions를 저장소를 통해 설치하려 한다면 아래 명령어를 이용해서 설치한다.
|
apt-get -y install virtualbox-guest-x11 |
Guest Additions, Parallels Desktop, Parallels Tools, Ubuntu Server, VirtualBox, VMware, VMware Fusion, VMware Tools, VMware Workstation, 가상머신, 하이퍼바이저 유형 2
20 06 2015
마침 리눅스의 버전을 알아봐야 할 일이 있어서 인터넷 검색을 해봤는데, KLDP의 글이 잘 나와있어서 거진 거의 그대로 가져왔다 (…) 오래된 글이다 보니, 지금 해보면 배포판이나 설정에 따라서 안되는 경우도 있기 때문에, 필요하다면 이 방법을 모두 해보고 가장 만족할만한 결과물로만 취해야하나 싶기도 하다.
이 글은 방법을 제시한 뒤 실제로 실행한 결과를 기록해두는 것으로 했다. 개중에는 오류메시지밖에 나오지 않는것도 있기는 하다-_- 실행 결과는 각각 라즈비안 2015-05-05 릴리즈, 우분투 14.04.2 LTS, 페도라 22 Workstation에서 테스트하였다.
/proc/version 을 확인하는 방법
/proc/version에는 리눅스 커널 버전이 기록되어 있고, 때떄로 배포판의 종류와 버전이 기록되어 있기도 하다. 이 파일의 내용을 조회하면 커널 버전과 배포판의 버전을 알 수 있다.
|
Linux version 3.18.11+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 |
|
Linux version 3.16.0-41-generic (buildd@tipua) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #55~14.04.1-Ubuntu SMP Sun Jun 14 18:44:35 UTC 2015 |
|
Linux version 4.0.4-303.fc22.i686 (mockbuild@bkernel02.phx2.fedoraproject.org) (gcc version 5.1.1 20150422 (Red Hat 5.1.1-1) (GCC) ) #1 SMP Thu May 28 13:10:30 UTC 2015 |
커널의 메시지 버퍼를 조회하는 방법
리눅스는 부팅 중에 발생한 메시지들을 로그와도 같은 형태로 커널의 메시지 버퍼에 쌓아둔다. 대부분의 경우 부팅시 제일 먼저 리눅스 버전과 커널 정보를 출력하므로 리눅스 버전과 커널 정보를 출력하므로, 메시지 버퍼를 출력하는 dmesg의 첫번째 라인을 조회하는 방법으로 사용중인 리눅스의 버전과 배포판의 종류를 조회할 수 있다.
단, 모든 배포판이 부팅되면서 자기 자신의 정보를 출력하는 것은 아니기 때문에 1줄이 아니라 10줄 가량을 조회해야 하기도 하다. 실제로도 테스트를 해 보니 원문이 작성된 시기와 지금의 시기가 달라서인지(…) 대부분의 경우는 하드웨어 초기화 정보가 가장 먼저 표시되었고, 메시지 버퍼의 대략 10줄 정도를 조회하면 중간에 비슷한 내용을 조회할 수 있었다. 단, 이 글에서는 그냥 첫번째 줄만 조회한 결과를 기록했다.
|
[ 0.000000] Booting Linux on physical CPU 0x0 |
|
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x76] high edge lint[0x1]) |
|
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x76] high edge lint[0x1]) |
우분투와 페도라의 메시지가 동일한데, 아마도 둘 모두 VMware로 생성한 가상 머신에서 실행해서 그런 것 같다. 하드웨어가 동일하게 때문에 메시지도 동일하게 나오는듯.
콘솔 접속시의 메시지를 조회하는 방법
/etc/issue에는 콘솔에서 접속시 표시되는 메시지가 저장되어 있는데, 이 파일을 조회하면 대부분의 경우 배포판의 버전을 확인할 수 있다. 이 파일만 조회하면 되는데다가, 대부분의 경우 매우 정확하게 배포판 이름과 버전이 들어있기 때문에, 가장 간단한 방법이라고도 할 수 있다. 단, 보안상의 이유로 다른 내용으로 수정되어 있는 경우도 있다고 한다.
참고로 /etc/issue 파일 외에 /etc/issue.net은 외부에서 로그인 시도시 메시지, /etc/motd는 로그인 후 출력되는 메시지가 저장된다고 한다. (출처: 지킬껀 지키자 :: Linux issue, issue.net, motd file)
|
Raspbian GNU/Linux 7 \n \l |
|
Fedora release 22 (Twenty Two) Kernel \r on an \m (\l) |
grub을 사용하는 경우
grub을 사용하는 경우, 부팅시 표시되는 운영체제 메뉴 텍스트를 조회하는 방법으로 리눅스 버전을 확인할 수 있다. …고는 하는데, 현재 grub은 legacy로 분류되고, grub 2가 개발되고 있어서인지 실제로는 아예 해당 파일 자체가 존재하지 않았다. grub 2의 설정 파일에 관련 내용이 있는지는 확인해보지 않았다.
|
egrep '^[^#]*title' /boot/grub/menu.lst | grep -v 'memtest' |
|
egrep: /boot/grub/menu.lst: 그런 파일이나 디렉터리가 없습니다 |
|
egrep: /boot/grub/menu.lst: 그런 파일이나 디렉터리가 없습니다 |
|
grep: /boot/grub/menu.lst: 그런 파일이나 디렉터리가 없습니다 |
(……)
배포판에서 제공되는 파일을 살펴보는 방법
각 리눅스 배포판은 다음 파일에 버전 정보를 제공한다고 한다. 파일이 존재하는 것으로 어떤 배포판인지 알 수 있고, 그 파일을 조회해보면 버전 정보가 기입되어 있다.
- Debian
- /etc/debian_release, /etc/debian_version
- RedHat
- /etc/readhat-release, /etc/redhat_version
- Fedora Core
- Gentoo
- SuSE
- Mandrake
- Slackware
- /etc/slackware-release, /etc/slackware-version
- Yellow Dog
- Sun JDS
- Solaris / Sparc
어떤 파일이 존재하는지 직접 확인해봐도 좋겠지만, 대부분의 파일명이 -release
로 끝나는 점을 이용해서 아래 명령어로 조회할 수도 있겠다. 물론 배포판에 따라서 안될수도 있고, 그럴때는 그냥 /etc/*release 파일 목록을 전부 조회해보면 되겠다.
|
find /etc/*-release | xargs cat |
|
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)" NAME="Raspbian GNU/Linux" VERSION_ID="7" VERSION="7 (wheezy)" ID=raspbian ID_LIKE=debian ANSI_COLOR="1;31" HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" |
|
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS" NAME="Ubuntu" VERSION="14.04.2 LTS, Trusty Tahr" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 14.04.2 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
Fedora release 22 (Twenty Two) NAME=Fedora VERSION="22 (Twenty Two)" ID=fedora VERSION_ID=22 PRETTY_NAME="Fedora 22 (Twenty Two)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:fedoraproject:fedora:22" HOME_URL="https://fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=22 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=22 PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy VARIANT="Workstation Edition" VARIANT_ID=workstation Fedora release 22 (Twenty Two) Fedora release 22 (Twenty Two) |
번외편: RPM을 사용하는 배포판을 사용하는 경우
RPM을 사용하는 리눅스 배포판을 사용하고 있는 경우, RPM 명령어를 이용해서 정확하게 조회할 수 있다.
|
fedora-release-22-1.noarch |
출처
Linux, 리눅스, 배포판, 버전