배철수 : 리눅스 월드 발행인
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
이 기사에서 나는 윈95와 리눅스가
모두
서론 리눅스를 설치한지 두 달 쯤 지난 어느날 나는 윈도우를 지우기로 결정했다. 이유는 이제 나는 더 이상 윈도우를 사용하지 않기 때문이다. 상당수의 리눅스 사용자도 같은 입장일거라 생각해 나는 이 글을 쓰게 되었다. 이런 경우라면 두 가지 방법이 가능하다. 물론 CD-ROM에 없는 내용을 백업하므로서 회피할 수는 있지만 백업 내용을 다시 설치하는것도 시간이 많이 들고 힘들다는 것이다. 두 번째 방법은 윈도우를 지우고(쉽다) 그 부분을 리눅스에서 사용하는 것이다. 즉 리파티션(repartition) 방법인데 약간 까다롭고 별로 문서화 되지 않은 방법이다. 이 방법의 이점은 성공한다면 시스템은 예전과 똑 같고 디스크 용량은 증가한다. 또 하나의 이점은 실패해도 첫 번째 방법을 쓰면 된다는 것이다. 이 문서에서는 내가 어떻게 했는지만 설명한다.
당신의 경우는 다를수도 있다. 특히 만약 당신이 커다란 안쓰고
있는 하드가 있다면 이 하드에 모든 파일을 백업하고 처음부터 다시
설치해도 된다. 나는 이 문서의 프리 버전인 fr.col.moderated 에 게시된 메시지에대한 상세한 답변에대해 Olivier Tharan 에게 감사드린다. 나는 Finn Bo Jorgensen 과 Chmouel Boudjnah의 도움에대해서도 감사드린다.
1.주요 절차(Principal Steps) - 준비 : 백업, 진행하기전에 중요한 파일들에대해
필기를 하고 검사하라.
2. 준비 및 어려운 부분 (Preparation and sources of difficulty) 우선적으로 핵심 파일들을 백업하라. 특히 구성 파일과 작업 파일들을. 그에 대해서는 더 이상 언급하지 않겠다. 사전 절차는 앞으로 하는 일들을 이해해야 한다는 것이다. 진행하는 동안 명령과 파일들에대한 설명을 하지만 부족하다. man 페이지를 읽으라. fdisk, mk2ext, cp (괜찮은 명령이다), lilo, lilo.conf, fstab 등이다. 또한 구성 파일에대해서도 man 페이지가 있다. lilo에대한 상세한 문서는 /usr/doc/lilo-0.20/doc/ 디렉토리에 있다. (당신의 시스템이 정확히 설치돼 있다면). 특히 46페이지의 사용자 가이드가 있다. fdisk에 대해서는 /usr/doc/util-linux-2.7/README.fdisk 파일을 보라. 이 글을 쓰면서 나는 매우 유용한 관련 mini-Howto를 발견했다. Hard Disk Upgrade Mini How 이다. 아래가 나의 파티션 테이블이다. [olivier@snoopy olivier]# /sbin/fdisk -l (en su) Disk /dev/hda: 128 heads, 63 sectors, 788
cylinders
윈도우가 hda1에 있는 것을 알 수 있다. fdisk가 FAT32파티션을 <<Unknown>>이라 표시하는 것은 이상하지 않다. 나의 커널(2.0.34)은 윈도우 파일시스템을 인식하지만 fdisk는 그렇지 않다. 이를 증명하기위해 도스 파티션을 마운트 한 후 df 명령을 실행하였다. [olivier@snoopy olivier]# df
당신은 /etc/fstab, /etc/lilo.conf 두 개의 구성 파일을 수정해야한다. 현재는 이렇게 보일 것이다. [olivier@snoopy olivier] less /etc/fstab
[olivier@snoopy olivier] less /etc/lilo.conf boot=/dev/hda
3. 윈도우 파티션 재구성(Rebuilding the windows partition) 지금부터는 모든걸 루트(root) 권한에서 실행해야 한다. 심리적인 이유로 나는 당신이 root로 login 하기를 바란다(su를 사용하지 말라). 편집기로 vi를 사용한다면 w!으로 저장하라. 어떤 경우든 수정이 저장되었는지를 확인하라(편집기를 종료하고서 less 명령을 실행하라). fdisk 와 mke2fs 명령을 사용할 것이다. 이 명령은 하드 디스크 파티션에 사용되며 모든 다른 저장매체에도 사용된다. 마운트 되지 않은 파티션에 이 명령을 사용하는 것이 좋다. 아래 절차를 밟으라. - 파티션이 마운트 되었으면 unmount 하라. - fdisk를 실행하라. hda1의 파티션 타입을 변경하라.
이제 이 파티션이 Linux native The partition table
has been altered! 내가 아는한 이 메시지는 정상적이고 무해하다. 나는 리부팅하지 않았다. - 포맷 : mke2fs /dev/hda1. 수많은 숫자가 나타나고서
시스템이 한참 무슨 일을 한다. 이제 윈도우는 사라졌다. 이에 대해 무슨 쾌감을 느끼지는 않는다(나는 윈98에대한 개인적 감정은 없다). 단지 나는 리눅스가 좋을 뿐이다.
4. 새 파티션 사용하기 이제 나는 아무것도 들어있지 않은 1.5 Gb 파티션과
/home 디렉토리를 위한 600 Mb 파티션 /에대한 800 Mb (그리고
100 Mb 스왑)을 갖고 있다.
몇 년간은 쓸 정도로 충분하다. 이제 어떻게 이를 달성하는가. hda1을 접근하기 위해 서는 어딘가에 마운트 해야한다. 보통 /mnt에 올린다. - /mnt 에 새 디렉토리를 만들라. /mnt/tmp 라고 하자. (mount는 디렉토리를 만들어 주지 않는다): mkdir /mnt/tmp. - /mnt/tmp에 hda1을 마운트하라 : mount -t
ext2 /dev/hda1 /mnt/tmp - / 를 /mnt/tmp/ 에 원래 구조를 유지한 채 복사하라. : cp -ax / /mnt/tmp/. - a 옵션은 man 페이지는 말하길 복사시에
원래 파일(디렉토리)의 구조와 특성을 가능한한 - hda1에는 빠진게 있다. -x 옵션 때문에 /home과
/proc 디렉토리가 빠져 이제 일이 약간 더 복잡해진다. 우리는 /를 hda2에
갖고있다. 그러나 /mnt/tmp/에도 있다. 이제 다시 시작해야 한다.
fstab와 lilo.conf를 수정해야 한다. 그러나 lilo.conf는 다르다. 우리는 /etc/lilo.conf를 수정하고 lilo를 돌려야 한다. 그리고 /etc/lilo.conf를 /mnt/tmp/etc/lilo.conf 에 복사해야 한다. 또는 /mnt/tmp/etc/lilo.conf 파일을 수정하고서 -C 옵션으로 다른 구성 파일을 사용해야 한다고 알려 주어야 한다. 나는 두번째 방법을 썼다. - /mnt/tmp/etc/fstab 이 파일은 시작시 마운트하는 모든 것들을 어디에 어떻게 마운트 할 지를 알려준다. 우리는 /hda1이 /가 되기를 원한다. 그래서 fstab 의 첫째 라인이 아래처럼 되야 한다. 물론 우리는 두개의 루트를 마운트 할 수 없다. 우리는 /dev/hda2에서 작업해야 하므로 이를 /mnt/tmp 에 올린다. 다른 부분은 그대로이다.
- /mnt/tmp/etc/lilo.conf. lilo.conf 는 lilo의 구성 파일이며 MBR에 위치한다. 세부적인건 다루지 않는다. 다른 사람이 lilo를 사용하지 않는다면 사용하라고 강력히 권하겠다. (lodelin 은 우리의 경우에 터무니 없다. 그리고 요즘도 플로피롤 부팅하나요?)이제 우리는 lilo에게 커널이 hda1에 있다고 말해주어야 한다. (이전에는 hda2에 있었다) 윈도우에관한 모든 걸 지운다. boot=/dev/hda - lilo 실행 : /sbin/lilo -v -C /mnt/tmp/etc/lilo.conf.
v는 lilo 실행에 관한 LILO version 20, Copyright 1992-1997 Werner
Almesberger - 리부팅하라. 약간의 테스트를 해보라.(df,
fdisk -l, 등이다. 파일시스템이 - /mnt/tmp/에서 모든 걸 지우라. /mnt/tmp에서
아래처럼 실행한다. - 이제 /usr/local을 cp -a 명령으로 /mnt/tmp에
복사하라. /dev/hda2 /usr/local ext2 defaults 1 2 - 리부팅하고 테스트하라. 작업은 끝났다. 나는 모든게 만족스러웠다. 프로그램을 모두 테스트 했으나 이상이 없다.
문제점> 실제는 약간의 문제가 있다. 위는 실제 그대로는 아니고 이상적인 경우이다. 내가 할 수 있는 충고는 당신이 현재 진행 중인 내용을 이해해야 한다는 것이다. 그래서 잘 안되면 그것을 수정해야한다. Olivier Tharan 은 내게 “싱글 유저모드로 리부팅하라고 했지만 그렇게 하지 않았다. 왜냐하면 내가 싱글유저모드에 대해 아는 유일한 문서에는 “싱글유저 부트모드에서 파일을 보라” 였다. 첫 번째 리부트 후에는 부팅디스켓을 만드는게 신중한 처사이다. 이것도 상황에 따라 다르다. 그러나 나는 정확히 알지 못한다. 내가 겪은 문제들이다. 첫번 리부팅 전에 나는 모든걸 다 했다. 그러나 파일시스템 마운트 후 여러 에러 메시지가 화면에 나타났다. 언뜻 읽기에는 /proc ... error ... error ... /home ... error 등 이었다(/var/log/messages에는 안나왔다). 그리고서 login 프롬프트가 사라졌다. 나는 root로 login했다. [root@snoopy root]$ df
home이 마운트 되지 않았다. fstab을 편집해
보았으나 모든게 정상이었다. 그러다 기발한 생각이 들었다.
/home을 마운트해 보자. 그러나 결과는 아래 에러 메시지 였다. 나는 마운트 포인트가 무언지를 깨달았다. 그리고 cp에서 x 옵션을 잊었다는 생각이 들었다. 그래서 /home과 /proc를 만들고 마운트하니 모든게 작동되었다. 그래서 위와 같이 적는다. 참조>
필자 : Olivier Chapuis |