두 개의 하드로
DOS, Win95/98, 리눅스를 멀티 부팅하는 방법
아래는 두 개의 하드디스크에 DOS, Win95/98, Linux를 동시에 설치하여 선택적으로 부팅하는 방법을 소개한다. (첫번 디스크에는 DOS, 윈95/98를 다른 한 개에는 리눅스를 설치함) 두 개 또는 여러 개의 하드에 윈9X와 리눅스를 동시에 설치하여 멀티부팅하는 방법은 여러 가지가 있으며 설치 배포본에 따라 세부사항이 약간 다를수 있다. 아래는 모든 배포본에서 사용 가능한 방법이다. 윈도우의 경우 윈95,98, 윈도우 Me 다 해당한다. 도스는 설치 않아도 상관없다.
아래 방법의 채택 여부는 전적으로 사용자 자신의 판단에 의하며, 채택의 결과로 발생할 수 있는 어떠한 물질적, 정신적, 시간적 등등의 손해에 대하여도 필자는 책임을 지지 않음. 이미 하드에 윈도우가 설치 되어 있는 경우 가급적 윈도우 파일을 백업하기 바라며, 반드시 윈도우 비상 부팅 디스켓을 미리 만들어 놓고 시작하길 바란다.(멀티부팅 설정에 실패해도 비상 부팅 디스켓을 사용하여 윈도우 단독 부팅을 복원할 수 있다.)
아래 방법을 사용하려면 최소한 하드디스크의 점퍼를 조정하여 master, slave 로 구성을 변경할수 있고, 피시의 EIDE 콘트롤러에서 primary 와 secondary 콘넥터를 구별 할수 있어야 하며, EIDE 콘트롤러와 하드를 케이블로 연결할 수 있어야 한다. 콘트롤러와 하드디스크를 연결하는 케이블은 번호가 부여되어 있으며, 케이블 연결시 번호가 바뀌면 하드가 고장날 수 있으므로 확실히 알 지 못하면 만지지 않는게 좋다.
리눅스에서 편집기(vi나 ae) 를 사용할 수 없으면 역시 아래 방법을 쓸 수 없다.
- cd 드라이브는 secondary slave에 연결해도 무관하다. 삼성 피시 일부 모델의 경우 secondary master로 연결하면 리눅스에서 에러가 뜬다.
*. 주의 : 둘 중 한 개의 하드가 SCSI 방식인 경우는 아래 방법을 사용할 수 없다.
*. IDE 콘트롤러의 경우는 하드디스크의 점퍼를
조정하여 master, slave를 선택하나, EIDE 콘트롤러는 하드디스크 연결 케이블이
두 개이므로 케이블 및 하드디스크 점퍼를 동시에 조정하여야 함.
최근에 나오는 UDMA66/100 을 지원하는 콘트롤러의 경우 4 개의 콘넥터가 있는 경우도 있다. 이 경우는 UDMA를 지원하지 않는 1번과 2번을 사용하면 된다. 장치명은 위와 같다.
마더보드가 두개의 하드 콘트롤러를 갖고 있으나 리눅스 설치시 UDMA 66/100 때문에 설치가 안되면 CMOS에서 UDMA 33으로 변경하고 설치하면 된다.
1) 리눅스를 하드에서 부팅할수 있어야한다.
리눅스를 하드에서 부팅하려면 lilo를 설치해야하는데 lilo를 설치하려면 리눅스의 루트파티션이 1024 실린더 이내에 위치해야한다. 만약 하드디스크 파티션이 1024실린더를 넘으면 루트파티션을 1024실린더 이내로 만들고 나머지를 사용자 파티션 (보통은 /usr)으로 할당한다.
2) 리눅스에서 파티션을 잡을 때 swap을 먼저 잡을것.
즉 /dev/hda1을 swap으로 /dev/hda2를 linux native로 설정할 것. (swap을 먼저 잡는게 속도에서 유리)
swap을 먼저 잡는게 필수는 아니다. 그러나 아래 설명은 swap이 첫번 파티션, 루트가 두 번째 파티션인걸 가정했다. 다르면 아래 설명대로 해서는 안된다.
- 지금부터는 아주 조심해야 할 단계이다. 잘못하면 지금까지의 작업이 헛수고가 된다.
다시 한번 강조하면 앞으로의 모든 작업은 A: 드라이브가 3.5인치이고, 하드디스크 콘트롤러는 EIDE 방식으로서(LBA 모드), 도스 및 윈95가 설치된 디스크는 primary master (리눅스에서 /dev/hda), 리눅스는 primary slave (리눅스에서 /dev/hdb)에, CD 드라이브는 secondary master 에 설치하는 것으로 가정했다. 어느 단계에서든 에러나 이상한 메시지가 나오면 중지하고 원인을 살필것.
fdformat /dev/fd0H1440
화면이 아래처럼 나와야 한다.
[root]/dev$ fdformat fd0H1440 Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB. Formatting ... done Verifying ... done
( Verifying에서 에러가 나면 그 디스켓은 쓸 수 없다. 리눅스에서는 도스와 달리 배드가 있는 디스켓은 사용할 수 없다)
*. fdformat 명령이 없다는 메시지가 나오면 리눅스 CD에서 이 명령을 추가로 설치할 것.
*. fd0H1440이라는 장치가 없다는 메시지가 뜨면 아래 명령으로 fd0H1440 장치를 만들 것
1) cd /dev
2) mknod fd0H1440 b 2 28
방법은 /etc/lilo.conf를 참조한다. lilo.conf에서 제일 먼저 나오는 "image= " 다음이 디폴트 부팅 커널이다. (lilo에서는 여러개의 커널을 지정할수 있다.) 커널 이름은 보통 vmlinuz 아니면 zImage임. 이 커널이 위치한 디렉토리에서(cd /boot) 아래 명령을 준다.
rdev ./vmlinuz(또는 ./zImage) /dev/hdb2
*. 아무런 에러 메시지가 없으면 다음으로 진행한다. 그러나 조금이라도 다른 메시지가 나오면 절대 다음으로 진행하지 말것.
cp ./vmlinuz(또는 ./zImage) /dev/fd0
*. 위에서 vmlinuz는 커널 이름이므로 lilo.conf에 나오는 이름이다.(./는 현재 디렉토리에서 찾으라는 뜻이다.) 이제 플로피 드라이브에서 디스켓을 꺼낸다.
file system mount point type options dump pass /dev/hdb2 / ext2 defaults 0 1 /dev/hdb1 none swap sw 0 0 proc /proc proc defaults 0 0
위에서 변동되는 부분은 /dev/hdb2 와 /dev/hdb1이다. 즉 기왕에는 /dev/hda2 와 /dev/hda1 으로 나오는데 이중에서 a를 b로 바꾸는 것이다. 나머지는 절대 바꾸지 말 것.
위 파일은 리눅스 파티션(native)이 한개 인 경우이다. 여러개라면 hda?를 다 hdb?로 변경한다.
*. 위처럼 변경하고 나면 이제는 리눅스로 부팅하면 루트 파티션을 마운트 할 수 없다는 메시지가 나오면서 부팅이 안된다. 이유는 루트 파티션을 /dev/hdb2로 변경했으나 /dev/hdb에는 하드가 연결되어 있지 않기 때문이다.(리눅스 하드는 현재 /dev/hda이다)
여기까지 모든게 이상없이 작동하면 이제 작업은 99% 끝났음. 하지만 마지막 남은 1%의 작업이 사실은 가장 어려움.
boot=/dev/hda compact install=/boot/boot.b map=/boot/map vga=normal delay=20 message=/boot/message prompt image=/boot/vmlinuz label=linux read-only root=/dev/hdb2 other=/dev/hda1 label=dos table=/dev/hda
위의 내용은 배포본에따라서 조금씩 다르므로 위와 똑같이 수정하면 안되고 필요한 부분만 바꾸어야 한다. 즉 위의 lilo.conf 는 데비안 2.1에서 만든 것으로서 다른 배포본은 조금 다를수 있다. 따라서 아래에서 기술한 부분을 제외한 나머지는 기존의 lilo.conf의 내용을 그대로 두어야한다.
최초에는 이게 /dev/hda2로 나와 있을수 있음. 무조건 위와 같이 바꾸어야함.
message는 부트 시의 메시지를 뿌려 주는 부분이므로 없어도 지장 없음. 단 이 부분이 들어가려면 필히 /boot 에 message라는 파일이 있어야함. 아래는 message 파일 예임.
linux = /vmlinuz
dos = win95
커널을 지정하는 부분으로 배포본에 따라 다를 수 있다. 변경하지 말것.
위에서 hdb2는 처음에는 hda2로 되어있을 것임. 만약 이 부분이 hda1으로 설정되어 있으면 지금까지의 작업은 헛수고임. 처음부터 새로 하여야 함.
배포본에 따라서는 root=/dev/hda2가 "image=" 위 쪽에 나오는 경우도 있다. 이 경우는 image 다음에 넣는게 좋다.
이 부분은 반드시 추가해야 한다. (윈95/98 부팅 부분임)
adding linux* dos*
위와같은 메시지가 나오면 모든게 완료되었음. 만약 다른 에러 메시지가 나오면 lilo.conf의 설정을 다시 확인할 것. (lilo.conf는 고쳤으면 반드시 lilo 명령을 주어야함)
만약 Lilo: 프롬프트에서 dos를 입력해도 윈95가 부팅되지 않으면 또는 아에 Lilo: 프롬프트도 뜨지 않고 바로 이상한 숫자가 계속 나오면, 윈95 비상 부팅 디스켓으로 부팅 후 아래 명령을 주고 하드에서 리부팅하면 윈95로 부팅한다.
A:> fdisk /mbr
여기서 단계 "8"에서 만든 리눅스 부팅디스켓 을 사용 리눅스로 부팅해 다시 멀티부팅 설치를 시도해 볼 것. /etc/lilo.conf 와 /etc/fstab 두 파일의 내용을 다시 확인해 볼 것.
처음부터 두 개의 하드를 모두 연결해 놓고 윈95와 리눅스를 순서대로 설치하여 멀티부팅을 구성할 수도 있다. 또 이미 윈95가 설치되어 있는 하드를 그대로 둔 채 두 번째 새 하드를 추가로 연결하여 리눅스를 설치하고 윈95와 리눅스 멀티부팅을 구성할수도 있다. 그러나 이 방법은 초보자의 경우 잘못하면 윈95 를 지울수 있는 위험이 있고 배포본에 따라 방법이 달라지므로 여기에는 소개하지 않았다.
글쓴 이 : 배철수 < bae@linuxlab.co.kr>