글쓴이 : Eric Lindbloom
|
||
리눅스 설치의 정확한 과정은 배포본 및 버전마다 조금씩 다르다. 그러나 모든 리눅스에서 공통되는 과정은 아래와 같다. 1. 부트(Boot) 일반적으로는 플로피나 CD에서 부팅 한다. 몇몇 피시나 시스템은 네트워크 서버로부터 부트할 수 있다(보통 bootp/tftpd 조합을 사용한다) 그러나 여기서는 디스켓 또는 하드디스크로부터 부팅 하는걸로 한다. MS-DOS 부트 프롬프트에서 리눅스를 부팅하는것도 가능하다. LOADLIN.EX E 라는 프로그램을 사용해서 가능하다.( LINUX.BAT 또는 SETUP.BAT , INSTALL.BAT 라는 배치파일이 종종 사용된다) 이는 MS-DOS가 운영체제라기 보다는 프로그램로더(program loader)에 가깝기 때문이다. (윈9X는 MS-DOS에서부터 투명하게 로드되어진 주인자리를 차지한(re-hosted) 운영체제로 볼 수 있다. 네트웨어도 그렇다) 어느 경우든 CD를 넣고 배치 파일을 돌리면 리눅스
설치를 시작할 수 있다. 대부분은 아주 간단한 칼라/텍스트 대화형식을 사용해서(ncurses) 공란에 기입하거나 자그마한 체크박스나 라디오버튼을 선택하게 한다. 이러한 인터페이스 방식은 키보드로 도스나 윈도우를 사용했던 사람들에게는 매우 익숙하게 보인다. 피시를 사용 안 해본 맥이나 SGI Irix
사용자들에게는 텍스트 대화 방식이 별로 달갑지 않은 것 같다.
즉 이 시점에서는 마우스는 아직 작동하지 않기 때문이다. 부트가 된 후 인스톨 루틴은 커널에 의해 탐지되지 않은 하드웨어를 찾을 것이다. 많은 배포본은 하드웨어에 관한 보다 많은 정보를 선택하는 옵션을 제시한다.(추가적인 하드웨어를 탐지하고 지원할 커널모듈을 올리는 것도 제공한다.) 만약 당신의 두 번째 하드가 배포본의 커널에 의해 직접 탐지되지 않는 경우라면 이는 매우 중요하다. 예를 들어 당신의 첫 번 하드가 IDE 콘트롤러에 연결돼 있고, 두 번째 하드는 SCSI 어뎁터나 Promise Ultra66 IDE 같은 특수한 콘트롤러에 연결돼 있는 경우라면 인스톨 과정에서 이러한 장치를 위한 추가작인 모듈을 올려야 한다. 또한 비표준 장소에 위치한 (드문 I/O나 다른 주소에 할당된) 장치나 콘트롤러를 탐지하기 위해 커널에 추가로 명령행 인자를 지정해야 할 경우도 있다. 최악의 경우는 맞춤 커널을 다운로드하거나 커널을 만들어야 한다. 만약 당신이 다른 시스템에 이미 리눅스를 설치해 있거나 주위에 커널을 만들어줄 친구가 있다면 그 경우는 당신이 만나게 될 보다 미묘한 하드웨어 구성에 대해 도움을 줄 수 있다. 콘트롤러가 인식되면 배포본의 파티션 인터페이스를 통해 드라이브를 선택할 수 있다. (위의 단계 3) 이 방법이 안되면 쉘 프롬프트로 가서 ([Alt]+[F2] 나 [Alt]+[F3] 등을 차례로 눌러 해쉬(#)프롬프트가 나와야 한다) 시도할 수 있다. 여러 쉘 커맨드를 시험해 보라. fdisk -l 명령을 줄 수 있다. 그러면 인식된 드라이브 목록이 나온다. 이것이 안 될 수도 있다. (어떤 배포본은 fdisk 명령이 하드 드라이브를 모두 찾을 수 있을 정도로 자그마한 미니 루트 램 디스크의 /dev에 충분한 공간을 할당하지 않는다.) 물론 이것이 혼동을 주기는 하지만 어느 배포본을 쓰느냐에 따라 달라진다. 스크린과 메뉴를 자세히 보는게 중요하다. 만약 fdisk 파라메터를 요구하면 /dev/hdb를 시험해 보라.(두 번째 하드의 일반적 이름) 그리고서 /dev/hdc (두 번째 콘트롤러의 첫번 하드), 아래는 일반적인 리눅스의 장치명이다.
주] 이 중의 hdb, hdc, hdd 는 CD ROM
드라이브일 수 있다. 혹은 LS-120 또는 다른 IDE
주] 이들은 첫번째 SCSI 어뎁터부터
마지막까지를 포함한다. “Generic Devices” 는 이 차이점을 알아야 한다. IDE 드라이브는 콘트롤러/채널과 장치에 기초해서 이름이 할당된다. IDE CD-ROM 드라이브 이름은 하드드라이브와 구별되지 않는다. SCSI 드라이브의 경우는 각 어뎁터의 체인에 따라 낮은 ID부터 위로 탐지된다. SCSI CD-ROM 드라이브는 하드 및 다른 SCSI 장치와는 다르게 이름 지어진다. 위에서 보듯이 당신의 답은 당신의 하드웨어에 의존한다. 만약 IDE 장치를 갖는 피시에서 /dev/hda에 하드를 /dev/hdc 에 CD-ROM을 갖고 있다면 두 번째 하드는 /dev/hdb 나 /dev/hdd가 된다. CD-ROM 드라이브를 위치를 바꾸어 (/dev/hdd 나 /dev/hdb) 새 하드를 /dev/hdc에 달 수도 있다. 이래도 문제를 해결하지 못하면 아래 내용을 파악해 메시지를 작성하라. - 배포본 및 버전 comp.os.linux.* 뉴스그룹을 검색하라. 그 중 하나에 이 글을 올리라. 이 뉴스 그룹에는 질문에 답변해 주는 사람들이 많다. 일단 드라이브에 리눅스 파티션을 만들면 배포본 설치 루틴이 파일시스템을 만들고 어려움 없이 소프트웨어를 설치한다. 새 운영체제를 부팅 가능하게 만들었을 때 다른 문제를 고려해야 한다. 대부분의 피시는 첫 번 콘트롤러의 두 하드에서만 부팅 할 수 있다. 그래서 /dev/hdc , /dev/hdd 에서는 부팅이 안된다. 보통은 IDE 드라이브를 갖는 시스템에서 SCSI 드라이브로부터는 부팅 할 수 없다. 이 모두는 BIOS에 의존한다. LILO(가장 많이 사용되는 리눅스 부트 로더)를 사용하려면 바이오스가 장치와 파티션, 부트로더/코드 와 커널을 발견해야 한다. 나는 이미 전에 LILO에 관해 언급했고 여러 경우에 이에 대한 대안을 설명했다. 도스나 윈도우 파티션이 있다면 LOADLIN.EXE를 사용할 수 있다. LOADLIN.EXE가 작동하려면 안전모드(“safe mode”)로 부팅 해야 한다. 부트 플로피를 만들 수 있다.(커널만 또는 커널 + 부트로더) 플로피를 사용한다면 SYSLINUX를 사용해라. (MS-DOS 포맷의 플로피에서 작동하는 플로피 부트 로더이다. 그러나 리눅스 커널을 부팅 해 준다) 리눅스를 부팅하는 다양한 방법이 있다. 기본적으로
커널은 어떻게 로드 되었는지를 따지지 않는다. 커널을 메모리에
올리고 시작코드로 들어가면 커널은 연결되어 있는 어느 장치의
어느 파티션에 있는 어느 파일시스템이나 발견할 수 있다. 커널은
루트 파일시스템을 찾는 기정장소를 갖고 있다. (모든 리눅스 부트
로더 즉 LILO, LOADLIN.EXE,SYSLINUX 루트 파일시스템이 마운트 되면 리눅스 커널은 /dev/console 장치와 /sbin/init 파일을 찾는다. 그리고 장치를 열어 실행한다. 다른 모두는 그들을 뒤따른다. (보다 자세한걸 알려면 /etc/inittab 파일을 읽어라. ) 시작시의 램 디스크(initrd) “linuxrc” 프로그램/스크립트에 관한 약간 더 복잡한 문제가 있기는 하다. 그러나 이 문제들은 배포본에서 알아서 처리하므로 여기는 다루지 않는다. 어떻게 피시가 리눅스를 부팅 하는지를 요약한다. - 바이오스가 부트로더를 발견한다 . 프레임버퍼라면 부트로고를 디스플레이한다.
- (linuxrc 이후 또는 대신에) 루트파일시스템을
마운트 한다 대충 이렇다. 마지막 과정은 셧다운 명령이나
리부트, 할트(halt) 명령이 있을 때까지 계속한다. 나는 이 중 몇몇의 정확한 과정은 모른다. Initrd가 어디에 올려지는지도 정확히 모른다. (나는 그것이 부트로더에 의해 이루어진다고 읽었으나 커널에 의해 이루어진다고 생각이 드는 부트파라메터 옵션을 보았다) 이 글은 부트시나 인스톨시의 문제점들을 해결하는데 도움이 되기 위함이다. 이 글에서 일반적인 절차를 알았으면 다음에는 /etc/inittab과 여러 rc* 파일을 읽으라. |