| [ CnUnix ] in KIDS 글 쓴 이(By): bullard (*^^*) 날 짜 (Date): 2003년 6월 12일 목요일 오후 08시 05분 46초 제 목(Title): [Q] 리눅스 파일시스템 바꿔치기 좀 이상한 질문이 될 수도 있을 것 같은데요, 제가 처한 상황이 대강 다음과 같습니다. ext2, reiserfs 같은 기존의 파일시스템이 아닌 새로운 파일시스템이 있는데요, GPL 라이센스 문제로 동적으로 로딩되는 커널 모듈 형태로만 공급해 줄 수 있다고 합니다. 설명의 편의를 위해, 새 파일시스템을 newfs 로 그리고 해당 커널 모듈 파일을 newfs.o 로 부르겠습니다. 그럼 문제가 무엇이냐...면, 가능한 한 많은 디스크 영역을 newfs 파일 시스템으로 관리하고 싶다는 것입니다. 이 때, 루트 파일시스템이 당장 문제가 됩니다. 루트 파일시스템도 newfs 파일시스템으로 관리하고 싶지만, 그건 불가능해 보입니다. 왜냐면 newfs.o 파일을 읽어 커널에 로딩하기 위해서는 newfs.o 가 들어 있는 파일시스템이 먼저 마운트되어야 하는데 이 둘은 서로 모순이기 때문입니다. (닭이 먼저냐 아니면 달걀이 먼저냐...) 그래서 생각한 고육지책이 다음과 같습니다. 우선 디스크를 최소한 2개 이상의 파티션으로 쪼갭니다. 그리고 그 중 하나인 루트 파일시스템에는 부팅에 필요한 최소한의 파일만을 담는데, 루트 파일시스템은 기존의 파일시스템, 이를테면 ext2 타입으로 합니다. 그래서 부팅시 루트 파일시스템을 먼저 마운트한 다음, newfs.o 파일을 읽어 newfs 커널 모듈을 커널 내로 로딩합니다. 그리고 나서 다른 파티션들을 newfs 타입으로 마운트 하는 것입니다. 여기서 질문입니다. 1. 부팅에 필요한 최소한의 파일에는 어떤 것들이 있을까요? 그리고 그런 것들을 담기에 루트 파일시스템의 크기는 최소 어느 정도까지 필요할까요? 한 500KB? 우선 생각나는 것이 insmod, mount 등의 실행 바이너리와 해당 라이브러리, 그리고 /etc/* 에 있는 설정 파일 등이 있을 것 같은데요... 어느 정도의 크기가 필요할까요? (가능한 한 작았으면...) 2. 혹시 이게 가능할까요? ext2 타입의 루트 파일시스템을 '/' 디렉토리에 마운트한 다음, newfs.o 를 로딩하여 newfs 파일시스템 모듈을 커널 내로 로딩합니다. 그리고 나서, '/'를 언마운트한 다음, newfs 에 해당하는 파티션을 '/' 디렉토리에 다시 마운트하는 것이 가능할까요? 좀 이상한 상황이긴 한데요, 조언을 부탁드립니다.... |