때로는 루트 파일시스템이 너무 커서 압축을 했음에도 불구하고 디스켓 한 장에 다 들어가지 않을 수도 있습니다. 다음은 파일 시스템의 크기를 줄이는 몇가지 방법입니다. 가장 효과적인 것부터 나열했습니다.
기본적으로 플로피 디스켓은 1440 K 로 포맷됩니다, 하지만 보다 높은 밀도의 포맷도 가능합니다. fdformat 명령어는 디스크를 다음과 같은 크기로 포맷할 수 있습니다: 1600, 1680, 1722, 1743, 1760, 1840, 1920. 대부분의 1440 K 드라이브들은 1722 K 의 포맷을 지원하며 필자도 언제나 부트디스크로 이 포맷을 쓰고 있습니다. fdformat 의 맨 페이지와 /usr/src/linux/Documentation/devices.txt 를 참조하십시오.
리눅스에서 인기 있는 쉘은 bash, tcsh 등등이 있지만 이것들은 크기도 크고 많은 라이브러리들을 필요로 합니다. ash, lsh, kiss, smash 같은 경량급 쉘들은 훨씬 작고 라이브러리를 별로 필요로 하지 않거나 전혀 요구하지 않으므로 대안이 될 수 있습니다. 이러한 대용 쉘들은 대부분 다음 홈페이지에서 찾을 수 있습니다. http://metalab.unc.edu/pub/Linux/system/shells/ 어떤 쉘을 쓰든 간에 그 쉘은 부트디스크에 포함시킨 모든 rc 파일내의 명령어들을 실행시킬 수 있어야 합니다.
라이브러리들과 바이너리들은 보통 스트립되지 않은(즉, 디버깅 심볼을 포함하는) 상태로 존재합니다. 이런 파일에 대해 "file" 명령을 실행하면 "not stripped" 라는 결과가 출력됩니다. 바이너리들을 루트 파일시스템으로 복사할 때는 다음과 같은 습관을 들이는 것이 좋습니다.
objcopy --strip-all FROM TO
라이브러리를 복사할 때는 다음과 같이 씁니다.
objcopy --strip-debug FROM TO
부트나 로그인 시에 반드시 필요한 것이 아니라면 그런 바이너리들은 유틸리티 디스크로 옮겨놓습니다. 자세한 것은 유틸리티 디스크 만들기 절을 보십시오. 모듈들을 유틸리티 디스크로 옮겨놓는 것도 고려해 볼 만 합니다.
루트 파일시스템의 제작 편에서는 시스템 부팅과 동시에 램디스크로 로드되는 압축 루트파일시스템을 만드는 법을 설명했습니다. 이 방법이 많은 장점이 있어 주로 사용됩니다만 메모리가 부족한 일부 시스템은 설치된 램이 램디스크를 만들만한 용량도 못되는 수가 있으므로 이때는 디스켓 상에서 직접 마운트되는 루트파일시스템을 만들어야만 합니다.
이러한 파일 시스템은 다른 디바이스가 아닌 디스켓 위에 그대로 만들고 압축도 필요없기 때문에 사실 압축 루트파일 시스템을 만드는 것보다 쉽습니다. 위에서 우리가 배운 절차와는 조금 다르므로 그 개요를 적어보겠습니다. 이 방법을 택하면 사용할 수 있는 공간이 훨씬 적어진다는 사실을 잊지 마시기 바랍니다.
몇가지 지름길이 있습니다. 만일 두장의 디스크 세트를 만든다면 직접 두번째 디스크 상에 루트 파일시스템을 만들면 됩니다. 굳이 하드디스크 위에서 만들어 옮겨올 필요가 없지요. 또한 한장짜리 boot/root 디스크를 만들면서 LILO를 사용하겠다면 한장의 디스켓에 커널, LILO 파일, 루트파일 셋이 모두 들어있는 단일한 파일 시스템을 만든 후, 마지막에 LILO 만 실행시키면 됩니다.
유틸리티 디스켓을 만드는 것은 비교적 쉽습니다 -- 그저 포맷된 디스크에 파일 시스템을 만들고 거기에 파일들을 카피하면 되는 것입니다. 부트디스켓에서 이 유틸리티 디스켓를 이용하려면 시스템이 부트된 후 유틸리티 디스켓을 수동으로 마운트하면 됩니다.
앞서의 설명에서 유틸리티 디스켓를 /usr 디렉토리에 마운트 할 수 있다고 말했습니다. 이 경우 바이너리들은 유틸리티 디스켓 상에 존재하면서 /bin 디렉토리 아래에 위치하게 되는 것입니다. 따라서 /usr/bin 을 PATH 에 포함시켜두면 이를 액세스 할 수 있습니다. 실행화일에 필요한 각종 라이브러리들은 유틸리티 디스켓의 /lib 디렉토리에 두면 됩니다.
유틸리티 디스크 제작시 명심해야할 중요한 사항들이 몇가지 있습니다.
부록 유틸리티 디스크 견본 은 유틸리티 디스크에 들어가는 파일들의 예를 보여줍니다. 도움되는 아이디어를 발견할 수 있을 것입니다: 디스크를 다루는 프로그램들(format, fdisk)과 파일 시스템용 프로그램들(mke2fs, fsck, debugfs, isofs.o), 간단한 텍스트 에디터 (elvis,jove), 압축및 아카이브 유틸리티(gzip, tar, cpio, afio), 테이프 유틸리티(mt,tob,taper), 통신 유틸리티(ppp.o, slip.o, minicom), 디바이스용 유틸리티(setserial, mknod) 등이 들어있습니다.