initrd 없이 부팅 하기
글쓴이: Nadia85 / 작성시간: 수, 2010/07/28 - 12:01오후
제가 알기론 initrd는
플로피 디스크 등으로 부팅 할때 공간 문제를 해결 하기 위해서 만들어진 작은 임시 루트 파일 시스템으로 알고 있습니다.
그래서 하드디스크 등을 사용하여 바로 부팅 할땐(NFS, MTD가 아닌) initrd는 필요 없을 듯 한데,
우분투를 보면 grub에서 항상 initrd를 설정해 주더군요....
initrd를 쓰지 않고 바로 하드디스크의 rootfs를 쓸 수 있도록 하는 방법이 있을 까요?
Forums:
근래의 커널 make
근래의 커널 make 옵션에 lsmod 결과 현재 시스템의 모듈을 확인하고 사용중인 모듈만 y 혹은 m 으로 해주는 컴파일 옵션이 추가되었다고 하던데... 그걸 이용해 커널 컴파일을 해서 initrd 없이 올려주면 되지 않을까요?
배포판에서 사용하는 initrd는 PC별로 다른 하드웨어에 맞게 묶여진 커널 모듈을 사용하기 위함이 아닐까요? 모든 드라이버 옵션을 다 y로 해서 커널을 컴파일하면 커널 크기가 엄청나지 싶은데...
답변 감사드립니다.
답변 감사드립니다.
intrd는 임시로 사용하는 rootfs로 알고 있습니다. 말씀 하신 것과 같이 NFS나 다른 하드웨어를 사용하기 위해서 사용하는 걸로 아는데요. 제 생각엔 커널에 다 링크할 필요 없이, 하드디스크 rootfs를 바로 사용 할 수 있을 것 같습니다.
NFS를 사용하지 않으니 커널은 제 하드디크스와 인터페이싱 할 수 만 있으면 임시 rootfs 없이 바로 rootfs를 사용 할 수 있을 거라고 생각 되는데요. 제가 잘못 알고 있는게 있나요?
커널에서 모든
hdd의 root directory를 mount하기 위해선 hdd controller driver가 있어야 하는데, 커널에서 모든 종류의 hdd 컨트롤러 디바이스 드라이버를 갓고 있을 수 없습니다. 보통 hdd나 network device 같이 부팅에 필요한, 현재 system에서 필요한 디바이스 드라이버를 initrd로 묶는다고 알고있습니다...
사용자는 자신이
사용자는 자신이 사용하는 disk driver와 root filesystem driver 만
커널에 built-in 시키고 다시 컴파일하면 initrd 없이 바로 부팅 가능합니다.
하지만 배포판 입장에서는 사용자가 어떤 디스크를 사용할 지 알 수 없으니
initrd (사실은 initramfs겠지만..)를 이용할 수 밖에 없습니다.
정답입니다
정답입니다
make menuconfig에서 정확하게만 설정해주면 initrd 없이 부팅 가능하고
정확히 설정하지 않아도
initrd를 이용해서 쉽게 부팅할 수 있습니다
댓글 달기