By Mark Nielsen |
|||||||
이 문서 내용이 바뀌면 http://genericbooks.com/Literature/Articles/3/cdburn_2.html 에 올린다.
참고문헌 CD-Writing HOWTO / Winfried Trumper (http://www.guug.de/~winni/linux/cdr/html/)Lilo
mini-Howto(http://www.linuxdoc.org/HOWTO/mini/LILO.html)
CDROM 굽기에 대해 먼저, 여러분은 지난달에 소개한 “리눅스 배포판들로 인스톨 CD 만들기”라는 기사를 읽어야 한다. 이 기사는 여러분이 cdrecord 유틸리티를 이용해서 CDROM을 굽는 방법을 알고 있다고 가정한다. 이 달 기사는 두 번째 단계이다. 왜 CDROM에 Live Linux Filesystem을 만드는가? 1. 여러분은 인스톨 CDROM을 제작하려 한다.(MILAS
같은) 우리 계획은, 나중에 하드 드라이브 없이 CDROM 만으로 컴퓨터를 만드는 것이다. 여러분은 핵심 파일시스템의 대부분을 CDROM에 두고, /tmp 디렉토리는 램디스크를, 그리고 그 밖의 모든 것들은 NFS를 사용한다. 나는 디스크 없는 네트워크 전용 컴퓨터들을 정말(정말) 싫어한다. 그래서 여러분 자신의 디스크 없는 워크스테이션은 나중에 만들 것이다.
STRING NOTE: 펄 스크립트와 내가 부트할 수 있는 CDROM을 제작하는 방법들은 아직은 완벽하지 않다. 나는 여전히 이 작업을 계속하고 있으며, 나중에는 이것들이 모두 Python이나 Perl에서 동작하게 만들려 한다(먼저 Python부터). “부트할 수 있는 CDROM 만들기”가 충분히 문서화되면, 내 MILAS 프로젝트에 이것을 합칠 것이다.
EXT2 CDROM과 부트할 수 있는 플로피 디스크 만들기 이 작업을 위해, 우리는 약간 낯선 일을 할 것이다. 우리는 ext2 파일시스템으로 포맷된 CDROM과 플로피 디스크를 부트할 수 있게 만들 것이다. 더 손쉬운 방법인 ISO9660 포맷을 사용한다면 이 섹션은 건너뛰어도 좋다. 내가 소개하는 방법을 이용하면 여러분에게 도움이 되는 것은 무엇일까? 흠.. 이 질문에 대답하기 전에 먼저, 확실히 알아두어야 할 것이 있다. 플로피, CDROM, 또는 하드 드라이브 파티션은 대개의 경우 똑같이 다루어진다는 것을 확실히 이해하자. 그럼, 이제 질문에 대해 대답하겠다: 1. 여러분의 하드 드라이브에 여분의 파티션을 두고, CDROM에 실제로 넣기 전에 CD 이미지라 부르는 특별한 파일을 만들어 테스트해 볼 수 있다. 만약 여러분이 플로피 디스크로 부트 오프했다면, 여러분은 이것을 하드 드라이브 파티션으로 지정할 수 있다. 그리고 이 방법이 문제없이 잘 동작한다면, 이것을 여러분의 CDROM으로 지정해서 부트할 수 있는 플로피 디스크를 만들 수 있다. CDROM인 것처럼 동작하게 만들려면 여러분의 하드 드라이브 파티션을 읽기-전용(read-only)모드로 마운트해야하는 것을 꼭 기억한다. 하드 드라이브 파티션은 여러분이 CDROM을 굽기 전에 이미지를 테스트하기에 좋은 방법이다(특히 한 번 밖에 쓸 수 없는 CD-R일 경우라면 더) OPTIONAL: 먼저, ext2 파일시스템을 만든다 (하드 드라이브를 이용해서 테스트한다): 1. CDROM 이미지를 만들기 위해 하드 드라이브에 여분의 파티션을 준비한다. 2. 그 파티션을 ext2 파일시스템으로 포맷한다.
예를 들어: “mkfs -t ext2 /dev/hda3”. 이 3. 새로운 설치에 적용하기 위해, 꼭 필요한
모든 디렉토리와 /etc 디렉토리 아래 있는 설정 4. /tmp 디렉토리로 램디스크를 사용하고 /var가 /tmp/var를 가리키게 만든다. 5. 부트할 수 있는 플로피 디스크를 만들고,
CDROM 드라이브를 “root”나 “/”로 사용하도록 lilo root=/dev/hdc 여러분의 CDROM 드라이브가 “/dev/hdc”라고 가정했다. 내가 이 명령에서 파티션 번호를 지정하지 않은 것에 주의한다. 파티션 번호를 쓰지 않는다. 부트할 수 있는 플로피 디스크를 만드는 다른 방법들도 있다. 내 Redhat 설치에서는: ### 커널을 복사한다. 디렉토리와 파일들을 복사하는 방법에 대한 예제는,
이 문서 끝에서 Perl 스크립트를 참고 한다. “dd” 명령과 루프백 장치를 이용해서 600 메가바이트 크기로 이미지를 만든다. 그 다음에는 이 이미지를 여러분의 CDROM에 복사해 넣는다. 이미지는 어떻게 만들까? “/mnt/Partition” 디렉토리가 여러분이 CD 이미지로 만들 모든 파일들이 들어 있는 곳이라고 가정하고: ## 공간을 미리 마련하기 위해 비어있는 파일,
또는 이미지를 만든다. ### 빈 이미지를 포맷한다. ### 만약 mkfs 프로그램이 장치를 인식하지 못한다고
말하면 “y”를 답한다. ### 포맷된 빈 이미지를 디렉토리에 마운트 한다. ### 여러분의 하드 드라이브 파티션에서 CDROM
이미지로 필요한 것들을 복사한다. ### 또는 rsync를 이용해서 복사해 넣는다. ### image를 언마운트 한다. 또는, 여러분이 ISO9660으로 포맷된 CDROM을 사용하지 않겠다면, 락-릿지 확장(rock-ridge extension)을 사용할 수도 있다. 다음 명령을 넣자: mkisofs -aJlL -r -o /tmp/Image/mnt/Partition Note: 한 번에 ISO9660 CDROM을 만드는 방법이 훨씬 더 쉬운데, 아래 섹션에서 설명된다. 이제 “/tmp/Image”에 있는 이미지를 CDROM에 구워 넣자. 사실, 내가 생각하기에, 아마 600메가바이트 크기로 하드 드라이브 파티션을 준비한 다음 이미지를 만들지 않고도 직접 카피해 넣을 수 있을 것이다. 만약 여러분의 하드 드라이브 파티션이 “/dev/hda4”이라면, 다음과 같이 작업한다: ### 주의할 것: 내가 직접 테스트해 본 것은 아니다. ### 파일을 복사해 넣을 파티션을 언마운트 한다. ### 파티션 이미지 만들기. 이제 Image.raw를 가지고 여러분 CDROM을 구우면 된다. 이보다 더 좋은 방법은, 아래에 내가 만든 Perl 스크립트에서 볼 수 있다. 혹시 이 스크립트를 Python 스크립트나 Python/TK 스크립트로 변환할 사람은?
ISO9660, Rock-Ridge 확장을 사용하는 설치 CDROM
만들기 Rock-Ridge 확장 포맷으로 ISO9660 형식 CDROM을 만드는 가장 큰 이유는 CDROM으로 부트할 수 있게 만드는 것이다. 부트 CDROM은 여러분의 시스템을 디스크 없는 워크스테이션으로 만들 때, 하드 드라이브를 고치는 CDROM를 만들 때, 그리고 그밖에 여러 가지로 매우 유용하다. 이 섹션에서, 루프백 장치를 사용할 필요는 없다. 여러분은 어떤 파티션도 사용할 필요 없으며, 단지 컴퓨터 어딘가에 디렉토리를 만들어 두고, 그리고 “mkisofs” 프로그램만 있으면 된다. 이 방법은 아마 여러분이 CDROM에 사용할 이미지를 만드는 가장 손쉬운 예일 것이다. 부트할 수 있는 CDROM을 만드는 열쇠는 “mkisofs”프로그램이다.
다음은 내가 사용하는 전형적인 명령이다: 다음 섹션에서 우리는 여러분의 CDROM에 넣을 수 있는 부트 플로피 디스크를 만드는 방법에 대해 이야기할 것이다. 여러분이 기억해야 할 키 포인트는 이 프로그램을 사용하려면 디렉토리가 필요하다는 것이다. 이미지를 생성할 때 빈 파티션을 굳이 찾아내려 하지 말고, 여분을 사용하면 된다.
컴퓨터에서 사용할 수 있는 부트-업 프로세스 설정하기 라이브 파일시스템을 만드는 가장 어려운 부분은 중요한 파일들을 복사해 넣고 설정하는 것이다. 라이브 파일시스템은 여러분의 리눅스 파일시스템과 똑같은 구조로 만들면 된다. /usr 아래 자원들을 제외하면 다른 것들은 그리 중요하지는 않지만, 그래도 도움이 될 것이다. 여러분이 기억해야 하는 것은 /tmp 디렉토리에 램디스크를 마운트하고, /var가 /tmp/var를 가리키게 하고, /etc 디렉토리 아래 설정 파일들을 제대로 설정하는 것이다. 이 것은 이 기사 전체에서 다루는 것이기도 한다. 나는 아래에 소개한 Perl 스크립트로 이 작업들을 한다. 여러분이 CDROM에 구성한 라이브 파일시스템에 하드 드라이브나 NFS를 조합하려 한다면, 몇 가지 옵션을 덧붙여야 할 것이다. 아래는 파일을 복사해 넣고 부트업 프로세스를
설정하는 예이다. 여러분이 만드는 이미지가 “/tmp/Boot_Image”라고
가정한다.
이제, etc/inittab 파일을 열어 런레블을 “1”로 바꾸어 준다(single user mode): Change:
to
이제는, etc/fstab 파일을 열어 아래처럼 바꾼다:
그리고, etc/rc.d/rc.local 파일을 열어 그 끝에 다음 명령들을 덧붙인다: mkfs -t ext2 /dev/ram0 이제 여러분은 램디스크를 최대로 설정하여 부트디스크를 만들어야 한다: ### 아래 명령은 부트디스크를 만든다. 플로피
디스크를 넣고,
### /dev/hdc를 /dev/hdb나 /dev/hdd 등 여러분의
시스템에 맞게 바꾼다. image=/vmlinuz-2.2.12-32 ### 이제는 플로피 드라이브에서 lilo 명령을
실행한다. ### 그리고 플로피 디스크를 언마운트한다. 이제 여러분은 CDROM을 루트 파일시스템으로
사용하는 부트 플로피 디스크를 가지게 되었다.
### 플로피 디스크를 언마운트 한 다음에, CDROM에
넣을 플로피 디스크 이미지를 만든다.
결론과 앞으로 계획하고 있는 기사 나는 부트할 수 있는 CDROM들을 라이브 파일시스템에 좀더 손쉽게 만들고 싶었다. 이런 생각에서, 부트할 수 있는 CDROM을 사용하기 위한 방법을 소개하는 기사를 만들 것이다. 1. 여러분의 하드 드라이브에 있는 운영체제
이미지를 넣어 설치 CDROM 굽기. 제대로 다듬어지지 못한 채 기사를 싣게 되어 여러분께 사과한다. 부트할 수 있는 CDROM을 만드는 것은 그리 쉽지 않은 일이었다. 나는 다른 이들이 이 기사를 읽고 나보다는 더 쉽게 작업하기를 바란다. 그리고, 다음 기사는 더 깔끔하게 만들 것이다. Mark Nielsen(mark@tcu-inc.com)은 컴퓨터 언더그라운드(http://www.tcu-inc.com/)와 ZING(ZING Is Not GNU: http://www.genericbooks.com)에서 일한다. 남는 시간에는, 리눅스 가제트에 실을 기사를 쓰고 ZING의 웹사이트를 개발한다. |