쉘 스크립트란 무엇인가?

Posted by taeho Tae-Ho
2013.09.17 10:24 운영체제

예전의 포스트에서 운영체제의 쉘(shell)에 대해 설명했다.


이전 글 : [Unix / Linux] 쉘을 이해하자. 


그리고 간단하게 쉘의 환경변수에 대한 설명도 했다. 운영체제의 개념과 쉘의 개념에 대해 이해했다면 다음은 쉘스크립트를 공부하는 것이 일반적인 Unix/Linux 운영체제를 공부하는 순서라고 할 수 있다.


  • 쉘 스크립트(Shell Script)란 ?

쉘 스크립트를 이해하려면 먼저 스크립트(Script)가 무엇인지 이해해야 한다. 스크립트란 일반적으로 인터프리트(interpret) 방식으로 동작하는 컴파일되지 않은 프로그램이라고 이해하면 된다. 즉 "프로그램의 한 라인을 읽어 해석하고 실행하는 과정을 반복하도록 만들어진 프로그래밍 언어로 작성된 컴파일되지 않은 파일에 저장된 프로그램"이라는 의미다. 조금 어려운가? 그렇다면 다음과 같이 이해하자.


텍스트 형식으로 저장되는 프로그램으로서 한줄씩 순차적으로 읽어 실행되도록 작성된 프로그램이다.


스크립트는 위의 정의(?)와 같다. 그렇다면 쉘 스크립트는 스크립트와 무엇이 다를까? 아마도 이런 말들을 들어보았을 것이다.


쉘 스크립트, 펄 스크립트, 자바 스크립트 등등등....


스크립트라는 단어 앞에 여러가지 수식어(?)가 붙는다. 이 수식어는 바로 스크립트를 읽어 실행해주는 인터프리트 엔진을 말한다고 이해하면 된다. 즉 쉘스크립트는 운영체제의 쉘 즉 bash, ksh, csh 등이 읽어 실행해주는 스크립트 언어이고 펄 스크립트는 perl 이라고하는 인터프리트 엔진이 읽어 실행해주는 스크립트 언어다. 그렇다면 자바 스크립트는 누가 읽어 실행해 주는 스크립트 언어일까? 그것은 바로 인터넷익스플러어와 같은 웹브라우저다. 물론 크롬 브라우저도 자바스크립트를 읽어 실행해준다.


각각의 스크립트 언어들은 문법이 모두 다르기 때문에 호환되지 않는다. 또한 실행파일을 만들때 작성되는 C언어와도 다르다. 


다음은 C언어와 쉘스크립트로 된 똑같은 기능을 하는 프로그램이다.



C 언어와 Shell스크립트 비교


두 프로그램 모두 실행하면 화면에 "hello~ c~"와 "hello~ script~" 한줄을 출력하는 프로그램이다.  하지만 두 프로그램이 파일로 저장된 뒤 실행되기 까지는 여러 차이점이 있다. 그 차이점을 알아보면 다음과 같다.


  • C언어로 작성된 프로그램은 컴파일(Compile)하여 기계어로 변환된 목적파일(Object File)로 만들어준 뒤 링크(Link)과정을 거치고 실행퍼미션(x)을 주어야만 실행이 가능하지만 쉘스크립트로 작성된 파일은 이러한 과정이 필요없고 실행퍼미션만 주면 된다.
  • C언어로 작성된 프로그램은 실행을 위해 컴파일되면 vi, cat 과 같은 명령으로 내용을 확인할 수 없는 바이너리 구조로 변형되지만 쉘 스크립트는 파일의 변환과정이 없다.
  • C언어로 작성된 프로그램은 기계어로 변환되었기 때문에 커널에 의해 실행되지만 쉘 스크립트는 쉘(bash, sh, ksh) 이 한줄씩 읽어 실행한다.
  • C언어로 작성된 프로그램은 정식 프로세스로 생성되지만 쉘 스크립트로 작성된 프로그램은 이름은 보이지만 정식 프로세스는 아니다.

아래는 위의 두 프로그램의 작성과 파일정보를 확인하는 화면이다. 초심자라면 리눅스에서 똑같이 한번 테스트해보는 것도 좋겠다.


hello.c 의 컴파일은  hello.c를 작성한 뒤 다음의 명령을 통해 수행하면 된다.


#  gcc -o hello hello.c

이 명령을 수행하면 실행파일 hello 가 생성된다.


이 내용을 완전하게 이해했다면 쉘 스크립트 작성을 공부할 준비가 어느정도 되었다고 할 수 있다.


다음글 : 쉘스크립트에서의 사칙연산과 문자열 자르기

신고
이 댓글을 비밀 댓글로

FTP 프토로콜의 Active Mode와 Passive 모드

Posted by taeho Tae-Ho
2013.07.28 12:34 운영체제

얼마 전 1회 정보보안기사 필기시험을 치렀다. 시험 준비를 하면서 평소의 내 좌우명(?) 처럼 좋은 남편, 좋은 아빠, 좋은 회사원을 추구하면서 개인적으로 시험공부까지 하려니 하루를 32시간으로 늘리거나 잠안자고도 멀쩡할 수 있는 초능력을 갖고 싶은 마음이 굴뚝 같았다. (물론 이 세가지를 모두 만족할 만큼 하고 있지는 못하다.. -.-)

그런데.. 정보보안기사 시험에 FTP 프로토콜에 대한 문제가 출제되었고 별다른 생각없이 평소 알고 있는 지식을 이용해 가볍게 문제를 맞췄다. 이 문제는 "FTP프로토콜에서 Passive 모드는 서버가 클라이언트에게 알려준 임의의 포트번호로 클라이언트가 접속하는 방식" 이라는 것과 "패시브 모드는 FTP 클라이언트가 서버에게 pasv 커맨드를 보내 설정한다"는 것을 알면 쉽게 풀 수 있는 문제였다.

그런데 시험을 본 뒤 의외로 많은 논란이 일고 있어 깜짝 놀라게 되었다. 

이슈는 "FTP의 패시브모드 사용을 누가 정하느냐?" 였다. 문제상에 분명 "프로토콜 에서" 라고 명시하고 있는데 FTP서버의 설정에서 패시브 모드의 사용 여부를 정하니 답이 "서버" 라고 많은 사람들이 이해하고 있다는데 놀랄 수 밖에 없었다.

이런 논란은 프로토콜이라고 문제에서 제한하고 있는 것을 못보았거나 Protocol과 Client/Server의 개념에 대한 정확한 이해 부족 그리고 Application의 Configuration에 따른 Daemon의 동작방식"에 대해 정확하게 개념을 잡지 못하고 있기 때문에 발생하는 것이 아닐까 생각된다.

FTP의 Active Mode와 passive 모드에 대해 간단하게 정리한다.


FTP는 기본적으로 서버가 TCP/21 포트에서 Listen하고 있는 상태에서 FTP 클라이언트 프로그램이 서버의 TCP/21 포트에 접속한다. 이 때 맺어진 세션을 Control Session 이라고 한다(혹은 Command Session이라고도 함). 그리고 이 세션에서는 실제 파일의 전송이 이루어지지 않는다. 이 세션은 클라이언트와 서버간에 명령과 명령에 대한 응답이 오가는 역할만을 수행한다.

일단 FTP클라이언트가 FTP서버와 Control Session을 맺고 클라이언트가 dir, get, put 등의 명령을 수행하면 실제 데이터를 전송할 Data Session을 생성하게 되는데 이때 부터 Active Mode냐 Passive Mode냐에 따라 통신 구조가 달라지게 된다.

기본적으로 FTP클라이언트가 FTP서버에 접속하면 Active 모드로 동작하게 된다. 만약 패시브모드로 접속하고 싶다면 FTP서버에 로그인한 뒤 명령행에 pasv 명령을 실행하여야 한다. 알FTP등 클라이언트 도구에서 passive 옵션을 체크한 뒤 접속하면 로그인 뒤 pasv 명령을 클라이언트 프로그램에서 자동으로 실행시켜 주는 것이다.

-       Active Mode

클라이언트가 서버의 21(Control Session)에 접속한 뒤 클라이언트가 1024번 이상의 포트를 열고 Listen한 뒤 해당 포트 번호를 서버에게 알려준다. 서버는 전달받은 포트로 20번 포트에서 클라이언트로 접속을 시도하여 데이터 세션을 생성한다.

따라서 서버가 공인망에 있고 클라이언트가 사설망 혹은 방화벽 안쪽에 있을 경우 접속이 불가한 문제가 있다. 

-       Passive Mode

클라이언트가 서버의 21(Control Session)에 접속한 뒤 클라이언트가 서버에게 pasv 명령을 전달하면 서버는 해당 클라이언트의 데이터세션 생성을 위해 1024 이상의 임의의 포트를 열고 Listen한 뒤 해당 포트번호를 클라이언트에게 알려준다. 클라이언트는 전달받은 서버의 포트번호로 접속하여 데이터세션을 생성한다.

따라서 서버 측에서 클라이언트가 접속할 수 있도록 21번 포트 외에 일정 범위의 포트를 Open해 주어야 한다.


끝...


신고
이 댓글을 비밀 댓글로

[unix / linux] shell (쉘)을 이해하자.

Posted by taeho Tae-Ho
2013.07.17 09:32 운영체제

 유닉스나 리눅스를 공부하는 많은 초심자들이 처음으로 부닥치는 어려움이 바로 Shell(쉘) 이다. 이 쉘을 정확하게 이해하지 않으면 유닉스나 리눅스 서버에서 주로 업무를 하는 엔지니어가 되고자 하나 초심자 수준를 벗어날 수 없다. 그만큼 쉘을 정확하게 이해한다는 것은 유닉스나 리눅스의 운영체제를 얼마나 이해하고 있는지에 대한 수준을 가늠하는 하나의 지표로 써도 될만큼 중요하다.

  • 쉘의 정의

쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램이다. 여기서 쉘을 Unix나 리눅스에만 있는 것으로 생각한다면 오산이다. Windows 운영체제나 다른 운영체제에도 Shell은 필수적으로 존재한다.

운영체제는 로그인한 사용자가 없다면 하나의 쉘도 실행되지 않는 상태다. 

사용자가 로그인을 시도하면 운영체제는 ID와 패스워드를 받아들이는 로그인 프로그램을 실행하게 되고 사용자가 입력한 ID와 패스워드를 검증한 뒤 정상적인 사용자라면 쉘을 실행하여 사용자 세션을 쉘에게 넘겨준다.

쉘의 역할은 사용자가 입력한 명령을 해석하여 대신 실행해주는 것이다. 쉘의 내부 명령어라면 스스로 실행한 뒤 결과를 화면에 표시해주고 내부 명령어가 아니라면 PATH 환경변수에 지정된 경로에서 입력받은 명령과 같은 파일을 찾아 exec() 시스템콜을 호출하여 실행한 뒤 키보드와 마우스 등의 입력장치와 모니터에 해당하는 표준 출력장치의 제어권을 해당 프로그램에게 넘겨준 뒤 프로그램이 끝날 때 까지 대기하는 역할을 수행한다.

  • 쉘의 종류

Unix나 Linux의 경우 ps 명령을 실행하면 보이는 프로세스 중에서 bash, sh, ksh, csh 등이 쉘 프로그램이고 Windows의 경우 작업관리자에서 볼 수 있는 explorer.exe 가 쉘이라고 보면 된다. Windows의 경우 Explorer.exe 이외에도 cmd.exe가 추가적인 쉘로 지원되는데 이는 원래 DOS 시절의 잔재로서 DOS 호환을 위해 지원된다고 생각하면 된다.

위의 화면이 쉘이 실행중인 화면이다. 위의 화면에선 id 라는 명령어와 ps 라는 명령어 2개가 실행되었고 그 실행결과가 표시되었다. 그리고 각 명령이 실행된 뒤 다시 프롬프트 (#)이 표시되어 다음 명령을 기다리는 화면이다. 이렇게 입력과 실행을 반복하는 형태의 쉘을 대화형 쉘이라고 한다.

ps 명령이 실행된 결과를 보게되면 bash 라는 프로세스가 보이는데 bash가 바로 쉘이다. 프롬프트인 #이나 $를 화면에 보여주고 명령의 입력을 기다리는 역할을 수행한다. 서버에서 사용자 계정을 생성하게 되면 사용자가 로그인할 때 어떤 쉘을 실행시켜주어야 하는지를 지정하도록 되어 있다.bash는 리눅스에서 지원되는 기본 쉘로서 사용자 계정을 생성할 때 쉘을 특별히 지정하지 않으면 기본적으로 지정되는 기본 쉘이다.

여담으로 아주 오래전~?? 서비스되던 천리안이나 하이텔, 나우누리를 기억하는가? 파란 화면에 글자로만 가득찬 화면.. 그 화면이 바로 쉘을 대신하는 프로그램이 실행된 화면이다. 천리안이나 하이텔, 나우누리는 사용자가 텔넷 접속을 할 경우 ID와 패스워드를 검증한 뒤 bash와 ksh 같은 프로그램을 쉘로 지정하여 실행하는 대신 천리안이나 하이텔의 화면을 보여주는 직접 개발한 프로그램을 쉘로 지정하여 서비스를 했던 것이다. 이해가 되는가?



  • 쉘의 환경변수

쉘을 공부함에 있어 가장 중요한 것중 하나가 환경변수의 이해다. 쉘은 여러가지 환경변수를 사용하는데 이 환경변수는 사용자가 임의로 본인의 의지에 따라 값의 변경이 가능하다. 하지만 미리 정의된 환경변수의 이름을 변경해서는 안된다.(변경할 수도 없지만..) 환경변수는 쉘의 종류에 다라 설정하는 방법과 확인하는 방법이 다르다. 리눅스의 기본 쉘인 bash (본어게인쉘)에서는 아래와 같이 env 명령으로 확인할 수 있다. (csh의 경우 set 명령)

쉘은 사용자와 운영체제의 사이에 위치하는 프로그램이다. 사용자가 입력한 명령어를 신속하게 찾고 운영체제와 사용자 그리고 사용자가 실행한 다른 프로그램과의 소통을 위해 사용하는 것이 환경변수다. 

이 환경변수들은 사용자가 읽을 수만 있는 것과 변경이 가능한 것이 있다. 그 중에서 가장 대표적인 환경변수는 PATH가 있다.

 환경변수 PATH는 사용자가 명령을 입력하였을 경우 쉘은 내부 명령어 인지 확인하고 아닐 경우 해당 명령은 외부명령어 즉 실행파일인 것으로 간주한다. 만약 사용자가 /usr/bin/df 와 같이 Full Path를 입력하였다면  /usr/bin 디렉토리에 있는 df란 명령을 바로 실행할 수 있으나 사용자가 df 라고만 입력하였다면 쉘은 df라는 명령어가 어느 디렉토리에 있는지 알 수 없다. 이때 쉘이 df 라는 명령어를 어디에서 찾을 수 있는지를 정의해주는 환경변수가 바로 PATH 다. 위의 화면에서 보면 PATH 환경변수는 다음과 같다. ( echo 명령으로 특정 환경변수만 조회할 수 있다.)

[root@CentOS_100 ~]# echo $PATH

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

PATH 환경변수에는  : (콜론)을 구분자로 하여 여러개의 디렉토리가 나열되어 있는 것을 볼 수 있다. 쉘은 df 라는 명령이 입력되면 해당 명령어의 위치를 찾기 위해 가장 먼저 /usr/kerberos/sbin 디렉토리에 df 가 있는지 확인한다. 만약 없다면 다음에 있는 /usr/kerberos/bin 에서 찾고 거기에도 없다면 /usr/local/sbin 에서 찾게 된다. 이렇게 순서대로 PATH 변수 내의 디렉토리에서 명령을 찾다가 df 라는 명령어가 발견되면 그 파일을 실행시켜주는 것이다.

만약 PATH 환경변수에 지정된 경로에 해당 명령어가 없다면 명령어를 찾을 수 없다는 메시지를 뿌리며 에러를 리턴해준다.

모든 환경변수는 의미를 갖고 있으며 사용법과 환경변수를 참조하는 프로그램도 다양하다. 그리고 환경변수의 값이 잘못되어 있으면 오작동을 하는 경우도 많다. 특히 날짜와 시간을 사용하는 프로그램의 경우 환경변수 TZ (time zone), 펑션키를 사용하는 프로그램의 경우 TERM (Terminal) 환경변수, 한글을 사용하는 프로그램의 경우 LANG (Language) 환경변수 등은 잘못 설정될 경우 문제가 발생하는 경우가 많다.

  • 쉘 환경변수의 설정

쉘의 환경변수는 로그인 할 때 설정된다. 사용자 환경은 프로파일에서 설정되는데 프로파일은 글로벌 프로파일과 계정 프로파일 두가지가 있다. 그리고 이 프로파일의 파일위치와 이름은 운영체제와 쉘의 종류에 따라 조금씩 다르다.

sh, ksh 은 /etc/profile 과 사용자 홈디렉토리의 .profile 이다. 

리눅스의 bash는 /etc/profile과 /etc/bashrc 두개의 파일과 사용자 홈디렉토리의 .bashrc 가 환경변수가 설정될 수 있는 파일이다.

csh 은 /etc/csh.login (Unix 종류와 버전에 따라 다르나 대체로 login 이라는 이름이 붙음. 내용을 보면 확인 가능함)과 사용자 홈디렉토리의 .cshrc 이다.

이 프로파일의 내용을 보면 환경변수를 설정할 수 있는 방법을 짐작할 수 있다. 미리 정의된 환경변수 이외에도 사용자 환경변수를 추가하여 사용할 수 있다. 이 파일에 환경변수를 추가하고 다시 로그인한 뒤 env 명령을 실행하면 추가한 새로운 환경변수가 표시되는 것을 확인할 수 있다.

쉘에 대해 서술하자면 너무도 분량이 많아진다. 하지만 중요한 것은 쉘의 원리를 이해하는 것이 중요하다. 모든 지식이 그렇듯 단편적인 커맨드나 변수 이름만 딸랑 암기하는 것은 운영체제를 이해하는데 전혀 도움이 안되고 그런 지식은 죽은 지식이다. 쉘과 쉘의 환경변수가 어떤 역할을 하는지를 개념부터 이해하는 것이 중요하다. 쉘을 이해하였다면 쉘의 인터프리터 방식의 언어인 쉘스크립트에 대해 공부하는 것이 순서다.

다음편 - 쉘스크립트란 무엇인가?

신고
이 댓글을 비밀 댓글로
  1. 감사합니다
  2. 쉘에대한 상세하고 쉬운 설명 감사합니다!! 자주들를것 같네요 ㅎ

Windows 7에서 노트북의 인터넷 공유하기 (ad-hoc 설정)

Posted by taeho Tae-Ho
2013.06.22 08:31 운영체제

연관포스트 ) 노트북에 추가적인 USB타입 인터넷 공유기 사용하기

오래전에 Windows XP 운영체제에서 유선을 통해 인터넷에 연결된 노트북의 무선랜카드를 adhoc 모드로 바꾸어 다른 무선랜카드가 장착된 노트북을 인터넷에 연결하는 인터넷 공유 설정에 대한 포스트를 올린적이 있다. (http://blogger.pe.kr/82)

그 이후 오랜 시간이 흘러 내가 사용하는 노트북에는 Windows 7 운영체제가 설치되어 있다. Windows 7의 경우 유선인터넷을 공유하고 무선랜카드를 adhoc 모드로 변경하는 작업이 훨씬 쉬워졌다. 


아래 화면처럼 제어판을 통해 네트워크 및 공유센터까지 들어간다.

연결옵션에서 가장 아래쪽에 있는 "무선 애드혹"을 선택한다.

adhoc 연결은 9미터 이내에 있어야 한다고 친절하게 알려준다.. (너...블루투스냐..??)

네트워크 이름과 암호화 방법을 선택한다. 보안키는 잊어버리면 안된다.

준비가 완료되었다고 나온다. 여기서 마치면 안되고... "인터넷 연결 공유 켜기"를 클릭해서 유선 인터넷을 공유하는 설정을 해주어야 한다. Windows XP에서는 수동으로 해주어야 했는데... Windows 7은 자동으로 설정해준다.

완료되었다.

이제 공유된 adhoc 무선 연결을 통해 인터넷에 연결할 노트북에서 무선랜 검색을 하면 지정한 이름의 adhoc 무선랜이 보일 것이다.

그런데....

아뿔싸.... 안드로이드 스마트폰에서는 이 adhoc 무선에 접속할 수 없다. 아무리 와이파이를 검색해도 내가 공유하도록 설정한 adhoc 무선랜이 검색되지 않는다.

구글에게 물어보니...

안드로이드는 초기버전부터 adhoc 무선랜에 연결을 지원을 하지 않는다고 한다. 루팅을 하고 몇몇 설정을 건드리면 adhoc에 접속할 수 있다고는 하는데... 루팅..?? 썩..하고 싶지 않다. 스마트폰의 보안을 약화시기키는 주범이기도 하니 말이다.

노트북의 무선 랜카드가 adhoc 모드와 AP모드를 모두 지원하면 좋겠는데 그렇지는 않고... 방법을 찾아보았다. 역시..방법은 있었다. 그 방법은 다음 포스트에.... ^^


신고
이 댓글을 비밀 댓글로

Solaris10에서 컴파일러 설치하기 및 CD롬 마운트하기

Posted by taeho Tae-Ho
2013.04.02 07:54 운영체제
Solaris 10 x86 을 설치 할 때 몇가지 옵션이 있다. 그 옵션에 따라 1G 남짓의 VMWare 이미지를 만들 수도 있고 7G 이상의 큰 용량의 VMWare 이미지를 만들 수도 있다.
여러 사람에게 배포하는 교육용 VMWare 이미지는 작을 수록 배포가 쉽고 관리도 쉽기 때문에 좋긴 하지만 여러 S/W들.. 예를 들면 Apache라든가 MySQL 이라든가... 컴파일러를 Solaris 10 설치 옵션에서 일일이 골라서 설치하기는 쉽지 않다.

서버보안 교육용 Solaris 10 x86 이미지를 만들 때 확인한 바로는 1G 정도의 용량을 갖는 기본 설치 형태와 5G 정도를 갖는 설치 옵션이 있다. 개발자 용 설치 용량은 6G byte가 넘고 전체 설치는 7G byte가 넘는다. 2~3 G byte 정도의 컴파일러 옵션이 있으면 좋을 텐데...없었다.

그래서 1G byte 남짓의 용량으로 설치하고 Apache, PHP, MySQL을 수동으로 설치 했다

더보기


그리고 나서 간단한 C 소스를 컴파일 할 수 있는지 확인했는데...
이런... 또 오류가 발생한다.


as가 뭔데... 실행을 못한다는 걸까... 이 끝없는 에러와의 싸움은 이제 지겹기도 하지만 모든 IT 업체에서는 기본적으로 이런 문제에 언제나 직면하게 된다. 그래서 엔지니어라는 직업이 필요한 것인데 도대체 엔지니어가 왜 필요한지 모르는 IT업체의 CEO도 있다는 것이 한심하기만 하다.

이쯤에서 필요한 gcc의 옵션하나. 바로 -v 옵션이다. gcc에 -v 옵션을 주면 gcc가 컴파일 하는 과정을 적나라하게 보여준다.


위를 보면 gcc가 컴파일 하는 마지막 단계에서 as라는 프로그램을 실행한다. 아마도 목적코드를 만드는 마지막 단계에서 호출하는 것으로 보아 어셈블러(assembler)가 아닌가 해서 찾아보기로 했다.

그래서 네이년 검색 시작... 그렇지... 이 에러메시지로 검색해보니 쓸만한 정보가 하나도 없다. 도대체 네이년의 검색 DB엔 뭐가 들어있는 건지... 혹시 똥만 들은 건 아닌지 ... -.- 없는게 왜이리도 많은지. 네이면이 문제가  아니면 우리나라엔 정보를 공유하는 엔지니어가 없던가 그것도 아니면 제대로 일하지 않는 엔지니어들만 있는게 틀림없다.

그래서 구글을 뒤져봤다. 역시... 구글의 검색 DB가 훌륭하던가 아니면 외국의 하얀피부의 엔지니어들이 훨씬 일을 열심히 하고 정보공유도 잘하는게 틀림없다.

Solaris 10 의 최소형태로 설치하다 보니 어셈블러가 없는 것이었다. 어셈블러인 binutils 패키지를 설치하라고 친절하게 구글 검색엔진이 알려준다.

어셈블러를 설치하기 위해 sunfreeware.com 에서 어셈블러가 포함되어 있는 binutils 패키지를 다운받았다.

sunfreeware


서버에 FTP로 업로드 한 뒤 gzip으로 압축 풀고  pkgadd -d ./패키지명 으로 설치 했다.
그리고 다시 컴파일을 시도했다.
이번엔 정말 될 줄 알았다. 그런데... 오마이 갓...!!!
또 에러다.


음... 이번엔 뭔가... 살펴보니 values-Xa.o 파일을 Open할 수 없단다. 도대체 이건 또 무슨 파일인가.... 이번에도 네이년부터 검색해봤다. 오~~~ 우리나라 엔지니어 중에도 나와 같이 이 문제를 경험한 엔지니어가 있다. 그리고 정보공유까지 하고 있다. 훌륭한 분이다..

이건 SUNWarc 패키지를 설치해야 한단다. -.-
도대체 몇개를 더 설치해야 하는 건지... 오기가 생긴다.. 끝까지 해보련다.
그런데 이 SUNWarc 패키지는 Sunfreeware.com에 없다. 이 패키지는 Solaris 10 설치 DVD에 있다.
CD를 마운트해야한다.

VMWare에서 CD 마운트는 가상머신 구동중에도 할 수 있다.

vmware cdrom mount


이 화면에서 설치 이미지를 지정하거나 CD롬 드라이브를 지정하면 구동중인 가상머신에서 CD드라이브로 마운트할 수 있다.

VMWare에서 Solaris10 에 Connected 된 CD롬은 볼륨매니저에 의해서도 마운트할 수 있지만 최소설치로 Solaris를 설치하면 볼륨매니저가 설치되지 않는것 같다. 이때는 iostat 명령으로 사용중인 디바이스 이름을 확인할 수 있다.

iostat


iostat -En 명령을 사용하면 위와 같이 연결되어 있는 디스크들의 정보가 나온다. VMWare IDE CDR10 이라고 되어 있는 디바이스, 즉 c1t0d0가 CD롬이다. 용량도 2.1G로 Solaris 10 ISO파일의 크기다.

하지만 mount 할 때는 이 이름을 그대로 사용하면 CD롬을 찾지 못한다고 나온다. 제대로 사용하기 위해서는 위의 디바이스 이름 뒤에 첫번째 슬라이스 즉 s0을 붙여주어야 인식이 된다.

마운트하고나서 다음과 같이 설치한다. 가능하다면 SUNWarc 패키지가 있는 디렉토리를 /var/spool/pkg에 복사하고 pkgadd를 설치하라. 왜냐고..?? 궁금하면 위 DVD의 Solaris_10 디렉토리에 가서 해봐라...

pkgadd


이제 다 끝났을까....
컴파일을 해봤다. 오예~~~ 잘 된다.

이제 교육준비는 다 끝났다.
신고
이 댓글을 비밀 댓글로

[램디스크] 8G 램 활용방법

Posted by taeho Tae-Ho
2012.07.15 20:15 운영체제

PC나 노트북의 하드웨어 가격이 낮아지면서 컴퓨터에 대한 지식을 조금이라도 갖고 있는 사람이라면 무작성 고성능의 CPU와 비디오카드, 대용량의 메모리(램)를 선호하곤 한다. 하지만 정작 고사양의 CPU와 RAM을 제대로 활용하는 사람은 드물다. 디아블로나 스타크래프트 등의 고성능의 VGA를 필요로하는 게임을 하는 것이 그나마 투자대비 잘~(?) 활용하는 경우겠지만 웹서핑이나 동영상 및 음악감상, 그리고 문서작성 정도를 하는 경우라면 사실 4G byte의 램도 충분하다 못해 남아돈다고 할 수 있다.

하지만 그렇게 남아도는 CPU의 성능과 RAM의 용량에 비해 체감적으로 느끼게 되는 컴퓨터의 속도는 사실 그리 빠르지 못하다. CPU도 고사양의 CPU이고 램도 4G 혹은 8G를 달아놨는데 웹브라우징 속도나 부팅속도 그리고 여러 프로그램을 실행시켰을 때의 체감속도는 느리기만 하다. 

그 이유는 대부분 CPU나 RAM에 비해 CPU와 하드디스크, RAM과 하드디스크 간의 굼뜨기만한 데이터 전송 및 읽기/쓰기 속도 때문이다. 이 느린 속도를 개선하기 위해 최근에는 SSD (Solid State Disk or Drive)와 같은 아직은 고가의 디스크를 장착하기도하지만 아직은 가격대비 용량이 일반 하드디스크에 비해 비싸기 때문에 보급형 PC나 노트북에는 장착되지 못하고 있다.

만약 PC나 노트북에 램의 용량이 충분하다면 램디스크를 사용해 볼 것을 권한다. 램 디스크는 SSD보다도 속도가 빠르고 전력도 덜 소비하기 때문에 인터넷 서핑, 프로그램 설치와 제거와 같은 불필요하게 디스크를 지속적으로 사용하면서 컴퓨터의 성능을 저하시키는 작업에 적합하다. 노트북에서 사용한다면 당연히 배터리 사용시간을 늘리는 데도 적합하다고 할 수 있다.

램디스크를 사용하기 위해서는 일단 충분한 램(RAM)을 확보해야 한다.

아래 화면처럼 8GB 혹은 적어도 4GB 이상의 램이 장착되어 있다면 사용할 수 있다고 보면 된다.

64bit 운영체제라면 더 쉽게 램디스크를 만들 수 있다. 32bit xp나 7 운영체제에서는 간혹 트러블로 인해 3GB 이상의 램 영역이 잘 인식되지 않는 경우가 있다.

램디스크를 만들어 주는 프로그램으로는 "램디스크플러스(RamDisk Plus)" 혹은 "데이터램(DataRam)"과 같은 프로그램들이 있다. 본인의 블로그에도 두 프로그램에 대한 소개가 있으므로 참고하기 바란다.

램디스크플러스를 이용해 램디스크를 만들면 아래 화면처럼 생성이 된다.

램디스크

1024 MB 즉 1GB의 램디스크가 X: 드라이브로 생성이 된 화면이다. 탐색기에서는 다음과 같이 보이게 된다.

이렇게 만들어 놓기만 하면 컴퓨터가 알아서 이 램디스크를 사용하는 것은 절대 아니다. 윈도의 여러 설정과 프로그램들의 설정을 변경해 이 램디스크를 임시작업용 디스크로 활용하도록 지정해주어야 한다.


** 계정 및 시스템의 임시폴더(Temp) 변경 **

많은 프로그램들은 윈도에서 지정한 계정 및 시스템의 임시폴더(Temp)에 파일들을 생성하고 관리한다. 이 파일들은 프로그램이 실행될 때 계속 만들어지고 삭제되고 읽고 쓰기 때문에 하드디스크의 속도가 느리거나 운영체제의 하드디스크 읽고 쓰기 작업과 겹치게 되면 프로그램의 실행속도가 답답할 정도로 느리게 느껴진다.

이 임시폴더의 변경은 아래 화면처럼 "환경변수"를 변경해주어야 한다.

램디스크 TEMP

임시폴더(Temp)의 설정은 계정과 시스템 두가지가 있다. 모두 4개 항목의 값을 램디스크 드라이브인 X:로 변경한 화면이다.

이 임시폴더 환경변수는 컴퓨터를 리부팅해야 변경이 되므로 램디스크를 먼저 만들고 환경변수를 변경한 뒤 리부팅하면 된다.


** 인터넷익스플로어의 "임시 인터넷 파일" 폴더 변경 **

대부분의 웹브라우저들은 인터넷 서핑도중 브라우저 화면에 보여주는 웹페이지들을 컴퓨터에 저장해 둔다. 이 때 발생되는 하드디스크의 읽기와 쓰기는 무시하지 못할 수준이 되었다. 특히 우리나라의 웹페이지들 처럼 플래시와 이미지가 많은 웹페이지들은 그 용량도 꽤나 크기 때문에 웹서핑을 많이 하는 사용자라면 이 웹페이지들을 저장하는 임시인터넷파일 폴더를 변경하는 것이 속도 향상에 꽤 도움이 될 것이다.

이 설정은 아래 화면처럼 IE의 설정창을 열어 변경해주면 된다.

램디스크 활용

"폴더 이동" 버튼을 눌러 램디스크의 드라이브로 이동시켜주면 된다. 단, 램디스크의 크기보다 임시 인터넷 파일 폴더의 크기가 당연히 작아야 한다.


** 크롬의 "임시 인터넷 파일" 폴더 변경 **

만약 사용하는 웹브라우저가 크롬이라면 크롬의 단축아이콘에 옵션을 주어야 한다. 크롬의 설정 창을 아무리 뒤져도 별도의 옵션 설정 항목을 찾을 수가 없었다. 

다음 화면과 같이 크롬 실행 단축아이콘에 옵션을 주고 실행하면 자동으로 해당 폴더가 생성된다.

램디스크 크롬


이렇게 윈도의 시스템 설정과 주로 사용하는 응용프로그램들의 설정을 변경해주어야만 힘들여 만들어 놓은 램디스크를 사용하여 PC의 성능을 향상시켜줄 수 있다.

이렇게 생성하고 설정을 변경하면 다음 화면처럼 윈도와 프로그램들이 램디스크를 사용하기 시작한다.


그냥 램디스크만 생성해둔다고 성능개선 효과가 있는 것은 절대 아니다. "구슬이 서말이라도 꿰어야 보배다"라는 옛말이 있듯 갖고만 있는다고 다 좋은 것은 아니다. 잘 활용하기 위해 자신이 사용하는 운영체제와 프로그램에 대해 공부하는 자세가 꼭 필요하다.

-----

2015.04.02 : Windows 8.1에서 램디스크 사용하기 (Temp, 인터넷 캐시 활용 포함)

신고
이 댓글을 비밀 댓글로
  1. 남아도는 램을 활용하는 정말 좋은 팁이네요~^^
    • 퍼온모양
    • 2012.08.18 02:31 신고
    없어
    • kdw959
    • 2012.10.19 15:13 신고
    좋은정보 감사합니다
    램디스크가 이렇게빠른줄은 몰랐네요 ㅎㅎㅎㅎㅎㅎㅎ
  2. 이미 64비트운영체제로 모두 바꾸었습니다. ㅎㅎ

    하지만 32비트 운영체제 쓰는데 메모리 많이 달아 놓으신 분은 유용한 정보겠네요.
    • 64bit 윈도를 써도 8G 정도 램이라면... 램디스크를 쓰시는게 더 효과적일 수 있습니다~

[hiberfil.sys] C 드라이브의 정체불명의 hiberfil.sys 파일 없애기

Posted by taeho Tae-Ho
2012.04.03 11:37 운영체제

노트북을 사용하다보면 C: 드라이브의 용량을 어떻게 설정해야할지가 중요한 이슈로 부각되곤 한다. 노트북에는 일반적으로 하나의 HDD가 설치되기 때문에 초심자들은 중요한 문서파일, MP3 등등 데이터 파일을 C: 드라이브에 운영체제와 함께 보관하곤 한다.

하지만 PC를 조금 써본 사람들은 C: 드라이브를 C:와 D: 드라이브로 분리하여 C:에는 운영체제와 기본적인 프로그램들을 설치하고 D: 드라이브에 문서나 이메일 등등 파일을 저장한다.  이때 C: 드라이브의 크기는 Windows 7의 경우 60G Byte 정도면 충분하다고 보는 것이 일반적이다.

내 노트북의 경우....

 

위와 같이 운영체제와 기본적인 프로그램들(Office, HWP, VMWare 등등) C:에는 약 38G 바이트 정도를 차지하고 있다. (개발툴 제외) 그리고 여유공간으로 20G 정도가 남아있는 것을 볼 수 있다.

그런데 대부분의 노트북은 절전모드와 최대절전모드라하여 Windows 운영체제를 종료하지 않고 최소한의 전력만을 유지하는 일종의 Sleep 모드를 지원한다. 이때 노트북은 Windows 및 응용프로그램이 실행중인 상태 그대로를 디스크에 파일로 저장하고 CPU와 메모리의 최소한의 전원만 공급한 채 다른 하드웨어 자원에 공급되는 전원을 모두 차단한다.

하지만 이 기능을 사용하기 위해서는 램의 크기와 동일한 정도의 크기의 임시 저장파일을 유지해야 한다. 그 파일이 바로 hiberfil.sys 파일이며 C: 드라이브에 항상 생성되어 있다. 

 

내 노트북의 경우 램이 8G 이고 램드라이브를 1G를 잡았기 때문에 hiberfil.sys 파일은 약 6G정도로 생성되어 있다. C: 드라이브 60G Byte의 약 10%에 해당되는 거대한(?) 크기다.

만약 절전모드를 사용하지 않는다면 이 파일을 없애도 무방하다. 하지만 이 파일은 그냥 삭제한다고 사라지지는 않는다. 이 파일을 없애기 위해서는 절전모드를 사용하지 않는 것으로 시스템 설정을 변경해주어야 한다.

절전모드를 해제하기 위해서는 CMD 창을 실행한 뒤 관리자 권한에서 다음의 명령을 실행하여야 한다. 

만약 권한 오류가 발생한다면 도스창을 관리자 권한으로 실행하여야 한다. 이 명령을 실행하여 성공하는 순간 hiberfil.sys 파일은 자동으로 삭제되며 디스크의 여유공간은 아래 처럼 hiberfil.sys 파일의 크기만큼 (아래의 경우 6G Byte) 늘어나게 된다.

 

 

신고
이 댓글을 비밀 댓글로
  1. 좋은 정보 잘 얻고 갑니다.^^
  2. 급할때 잘 사용했네요.
    감사합니다.
    :)
    • 감사합니다
    • 2013.05.26 09:29 신고
    덕분에 10GB확보했네요 ㅋㅋ

[램드라이브] Windows 7 64bit 에서 RAMDISK 사용하기

Posted by taeho Tae-Ho
2012.04.02 23:15 운영체제

32bit Windows 운영체제는 기본적으로 3G Byte 이상의 메모리(램) 영역의 주소를 어드레싱 할 수 없다. 하지만  PAE(physical address extend) 기술을 적용하면 3G Byte 이상의 메모리 주소를 접근하여 사용할 수 있다. 하지만 이는 어디까지나 운영체제의 기능일 뿐 32bit 운영체제에서 동작하는 프로그램들은 여전히 단일 프로그램의 주소 영역으로는 3G Byte 이상의 메모리를 사용하는 것은 불가능하다.

때문에 많은 사람들이 운영체제의 기능을 확장하여 3G Byte 이상의 메모리를 운영체제가 RamDisk로 사용하도록 설정하여 놀고 있는 메모리를 활용하고 있다.

하지만 4G Byte가 아닌 8G Byte 혹은 그 이상의 메모리를 모든 어플리케이션들이 직접 액세스할 수 있는 64 bit 운영체제에서는 어떨까? 과연 64bit 운영체제에서 RamDisk의 사용이 효용성이 있을까?

많은 사람들이 64bit Windows에서는 RamDisk를 사용하는 것은 별 효과가 없다고 이야기들을 하고 있다. 하지만 난 64bit Windows에서도 메모리만 충분하다면 RamDisk(램드라이브)를 사용하는 것이 좋다고 말하고 싶다. 아무리 64bit Windows를 사용한다해도 디스크의 IO속도는 램의 액세스속도를 따라가지 못한다. 그것은 SSD를 쓴다해도 마찬가지다. SSD도 램디스크의 속도는 따라갈 수 없다.

따라서 Temporary Internet 폴더나 운영체제의 TEMP 폴더, 그리고 사용자 계정의 TEMP 폴더를 램디스크로 지정하여 사용하는 것을 권하고 싶다.

Windows 7 32bit 운영체제에서 램디스크를 사용하는 방법은 앞의 포스트에서 설명하였으므로 생략하고 Windows 7 64bit 운영체제에서 RamDisk를 설정하여 사용하는 것을 바로 설명하겠다.

이번에 사용하게 될 RamDisk S/W는 프리웨어다. 이름은 Dataram 사의 RAMDisk다.


먼저 다음의 주소에서 다운로드를 받는다. ( http://www.dataram.com ) 그리고 다음과 같이 다운로드 링크를 찾아 다운로다 받고 저장한다.


다운로드 받고 설치는 아주 단순하다.

설치를 한 뒤 "시작" 메뉴에 들어가보면 다음 화면과 같이 램디스크 프로그램이 설치되어 있다.


설치된 램디스크 프로그램의 설정 유틸리티를 실행한다. 설정 유틸리티를 실행하면 아래 창과 같이 광고가 하느 뜬다. 설정한 이후에는 볼일이 거의~ 없으므로 무시하고 지나간다.


먼저  Settings 메뉴를 실행하여 아래와 같이 램디스크의 용량과 파티션 타입, 그리고 부트섹터 선택 창이 뜬다. 본인은 램이 8G Byte이어서 1024 M Byte만 램디스크로 설정하였다. 파일시스템 포맷은 당연 FAT32 설정하고 부트섹터세팅은 Windows boot Sector로 지정한다.

다음 페이지는 운영체제의 TEMP 폴더를 만들 것인지를 정의한다. 또한 생성된 램디스크의 이름도 지정하도록 한다. 만약 PC를 끄기전의 램디스크에 저장된 파일의 상태를 보존하기 위해서는 Load Disk image at Startup과 Save Disk Image on Shutdown 메뮤를 클릭해주면 된다.

다음은  Options 페이지이다. 백업과 램디스크의압축에 관한 옵션이다. 난..그냥 체크를 없애버렷다. ㅋㅋ


그리고 난 뒤 위의 화면에 있는 "Start RAMDisk" 버튼을 클릭하여 실행하면 잠시 후 아래화면과 같이 RAMDISK 드라이브가 잡힌다. 그리고 아래 오른쪽 화면은 IE의 임시 인터넷 파일 폴더를 램디스크로 이동한 화면이다.

만약 운영체제의 TEMP 폴더와 사용자 계정의 임시폴더를 세팅하기 위해서는 "내 컴퓨터"의 속성, 그리고 "고급" 시스템 설정에서 "환경변수"로 가서 사용자 계정의 TEMP, TMP 그리고 운영체제의  TEMP 폴더를 변경해주면 된다.

이후에는 리부팅 될 때마다 자동으로 램디스크가 생성된다.




신고
이 댓글을 비밀 댓글로

Windows 서버의 Administrator 비밀번호 초기화 하기 ( Administrator 패스워드 분실 )

Posted by taeho Tae-Ho
2011.10.25 09:43 운영체제
VMWare로 여러개의 Windows 서버 이미지를 사용하다보면 오랫 동안 사용하지 않던 서버 이미지의 Administrator 패스워드를 잊어버리는 경우가 있다. 이 때 참 난감해진다. 그래서 방법을 찾아 봤다.

역시 스누피님의 블로그가 연결된다. 윈도 운영체제의 대단한 실력자.... 덕분에 비밀번호를 쉽게 초기화(비밀번호 없는 상태)할 수 있었다.

VMWare를 기준으로 다시 한번 재구성해 본다. 다른 부분은 스누피님의 블로그 글과 동일하다. 다만 VMWare에서 윈도 설치 이미지를 마운트하는 법이 추가되어 있다.

먼저 Administrator 패스워드를 잊어버린 VMWare 이미지를 선택하고 오른쪽 하단의 "Edit virtual ..." 메뉴를 클릭한다.


VMWare 설정화면이 표시되면 "CD/DVD..."를 선택하고 부팅가능한 Windows 서버 운영체제의 ISO 파일을 선택한다. 가급적이면 해당 VMWare 이미지를 만든 CD 이미지를 선택하는 것이 좋다.


부팅 가능한 CD/DVD 이미지를 선택한 뒤 "Play ..."를 선택하여 서버를 구동한다.
Play 시키면 아래와 같이 가상 머신이 초기화 되면서 부팅을 시작하는데 만약 CD/DVD 부팅 프롬프트가 보이지 않으면 "F2" 키를 눌러 바이오스로 들어가서 부트 디바이스 순서를 바꾸어 주어야 한다.

CD/DVD 부트 여부를 묻는 프롬프트가 보이면 "Enter"키를 눌러 아래와 같이 CD/DVD로 부팅한다. 사실은 VMWare 이미지를 만들 때 사용된 ISO 파일로 부팅하는 것이다.


잠시 부팅 과정을 지켜보면 아래와 같이 최초 윈도 설치 화면이 뜨게 된다. "다음" 버튼을 눌러 넘어간다. Windows XP/7 PE CD나 DVD 이미지로 부팅하였다면 이 화면에서 "Shift + F10" 키를 누르면 CMD 창이 실행되었던 것으로 기억되는데 Windows 2008 설치 이미지의 경우 CMD가 실행되지 않았다. "복구" 모드로 진행하여 CMD 창을 실행하기 위해 "다음" 버튼을 누른다.


설치 화면이 보인다. 하지만 "지금 설치"를 누르면 안된다. 아래쪽의 "컴퓨터 복구"를 클릭하여 복구모드로 진행한다.


복구할 파티션을 선택한다. 그냥 Windows가 설치되어 있는 드라이브를 선택한 뒤 "다음"을 누른다.


복구 작업에 사용할 도구를 선택하는 화면이 표시된다. 여기서 "명령 프롬프트"를 선택한다.


명령프롬프트(CMD) 창이 실행된다. 기본적로 X: 드라이브가 표시된다.

이 단계에서 PC (혹은 노트북이 되겠다)에 USB 드라이브를 꼽는다. USB 드라이브에는 더~~아래에 보이는 recovery.reg 파일이 포함되어 있어야 한다. 파일의 내용은 이 글을 모두 보면 알게 된다. ^^


USB 드라이브가 PC에 인식이 되면 VMWare 하단의 아이콘 중 아래 화면처럼 작은 적색 박스가 표시된 부분의 아이콘을 마우스로 우클릭 한다. 그러면 팝업메뉴 창이 실행되고 "Connect ..." 메뉴가 보인다.  그 메뉴를 클릭한다. (반드시 PC에 USB 메모리가 완전하게 인식된 뒤 실행하라)


VMWare Player가 뭐라~뭐라~ 궁시렁 거린다. 그냥 조용하게 입을 닫아주기 위해 "OK" 버튼을 클릭한다.


잠시 기다리면 VMWare에서 USB 메모리를 정상적으로 게스트OS에 인식시켰음을 알려준다. 인식이 안된다면 VMWare 이미지의 설정에서 USB 장치가 추가되어 있지 않았을 수 있으므로 조용히 Power를 Off 하고 USB 장치를 추가해준 뒤 다시 시도해 본다.


정상적으로 VMWare 이미지에서 USB 메모리를 인식했다면 아래와 같이 D: 혹은 E: 드라이브로 USB 메모리가 인식된다.
그리고 그 안에 Recovery.reg 파일이 보인다.

이 파일이 바로 레지스트리를 수정하여 SAM 파일의 Administrator 계정 비밀번호를 초기화할 오늘의 핵심 내용이다.


Recovery.reg 파일의 내용이다. 아... Hexa Code..... -.- 언제 봐도 머리가 아프다. -.-


Recovery.reg 파일이 준비되었다면 아래와 같이 실행해준다.


정상적으로 실행되었다면 이제 CMD 창을 살포시 닫아주고 "다시 시작" 버튼을 클릭한다.


Administrator 비밀번호 없이 곧바로 로그인 될 것이다. 와우~~~~

이 방법은 Windows xp, vista, 7, 2003, 2008 등 현존하는 대부분의 Windows에서 적용 가능하다고 스누피님께서 말씀하셨다. ^^

Recovery.reg 파일은 여기에는 올리지 않겠다. 대신 스누피님의 블로그에 방문하여 다운로드 받기를 권해드린다.
(http://snoopybox.co.kr/1515)




신고
이 댓글을 비밀 댓글로

VMWare Player에서 NAT 설정하기

Posted by taeho Tae-Ho
2011.09.03 16:07 운영체제

서버 운영체제의 가상화 열풍이 무섭다. 하지만 클러스터와 HA의 개념을 정확하게 구별하지 못하는 사람들이 많듯 가상화라는 용어도 역시나 여기저기 마구~ 붙여지고 있다. 영업적 측면에서 유행을 쫒아야하는 마케팅 때문이긴 하겠지만 엔지니어인 만큼 가상화의 개념도 정확하게 이해하고 있어야 할 듯 싶다.

VMWare Workstation이나 무료로 사용이 가능한 VMWare Player는 S/W 가상화 솔루션이다. 따라서 CPU가 가상화를 지원하지 않는 구형 PC에서도 사용이 가능하다. (물론 요즘 사용되는 PC에 사용되는 CPU는 보다 빠른 속도를 구현할 수 있도록 H/W 측면에서 가상화를 지원하고 있다.)

내가 하는 일이 서버 보안 분야의 일이다 보니 다양한 운영체제를 필수적으로 다루어야 한다. 데스크탑이나 노트북에서 VMWare를 이용하여 구동할 수 있는 가상 OS는 Solaris (x86), Linux (RedHat , CentOS 등), Windows 2003/2008 이다.  모두 Intel x86/x64 기반의 CPU를 지원하는 운영체제다.

VMWare Player에서 NAT 설정 메뉴가 사라졌다.

여기 저기 이동하면서 서로 다른 네트워크 환경에서 VMWare를 이용하면 VMWare 상에서 구동되는 게스트 OS에서 인터넷에 접속하기 위해 NAT 설정이 필수다. 그런데 VMWare Workstation (유료)에서는 지원되는 NAT 설정화면이 무료버전인 VMWare Player 에서는 사라졌다. 당연히 될것으로만 생각했지만 아무리 찾아도 NAT 설정은 없다.

숨어있는 네트워크 설정 도구

VMWare Player의 설치 파일에는 사실 Network 설정 유틸리티가 포함되어 있지만 어쩐 일인지 설치하게 되면 설치되지 않는다. 아마도 일부러 막아 놓은 듯 싶다.( 치사빤스다~~ )

설치 파일에 포함되어 있기 때문에 다음과 같이 /e 옵션을 주어 설치파일을 실행하면 extract 라는 폴더에 모든 파일의 압축이 해제된다.

       4.0 테스트 도중 위의 명령어에 오류가 발견되었습니다.   /e .\extract 와 같이 폴더명을 주어야 합니다.

해제된 폴더에 들어가보면 다음과 같이 VMWare Player가 설치될 때 필요한 셋업 파일들이 모두 보인다. 그중에서 network.cab 파일에 VMWare Network 설정 유틸리티가 포함되어 있다.

이 network.cab 파일을 알집으로 열어보면 다음과 같이 몇개의 파일이 보인다. 이 파일들을 VMWare Player가 설치된 경로에 압축을 해제하고 vmnetcfg.exe를 실행하면 NAT 설정을 할 수 있는 화면이 보이게 된다.

아래 화면과 같이 VMWare Player 설치 폴더에 압축을 해제하고 vmnetcfg.exe를 실행하면 Virtual Network Editor가 실행된다. 아래 화면은 vmnet 8번 가상 이더넷을 NAT용도로 설정한 화면이다.  (VMWare 에서는 항상 8번을 NAT용으로 기본 사용하도록 되어 있다.)

이후의 설정 방법은 이전의 포스트와 동일한 내용이므로 생략한다.

아래의 포스트를 참조하기 바란다.

http://blogger.pe.kr/35



신고
이 댓글을 비밀 댓글로
    • 지나가다
    • 2011.09.24 01:52 신고
    nat설정 있습니다.
    edit virtual machine settings - hardware탭 - network adapter 항목
    • 아...네....
      그 항목은 VMWare에서 생성하고 구동되는 GuestOS를 Host 머신에 접속하는 네트워크 형태를 NAT로 설정하겠다는 것이구요...
      이 포스트에서 설명하는 것은 GuestOS를 NAT로 설정할 때 필요한 Host 머신의 네트워크 설정을 의미하는 것입니다...

      ^^ 요즘... 태클이 많네요~~~
      하지만 태클도 환영합니다~~~
    • zRain
    • 2012.01.06 16:47 신고
    이것 때문에 몇 시간을 삽질했는데, 여기서 해결하고 가네요.. 역시 WMWare player 에 설정이 없는 것이었군요.
    고맙습니다. ^^