NAME
initrd − 부 트 로 더 에 의 해 시 작 되 는 RAM 디 스 크 boot loader initialized RAM disk
DESCRIPTION
The special file 특 수 파 일 Device /dev/initrd 은 RAM 디 스 크 로 커 널 이 시 작 하 기 전 에 부 트 로 더 에 의 해 초 기 화 (로 딩 )된 다 . 그 리 고 나 서 커 널 은 블 록 장 치 를 사 용 할 수 있 다 . /dev/initrd’s 2단 계 시 스 템 부 트 업 에 대 한 내 용
In the first boot-up phase, the kernel starts up and mounts an initial root file-system from the contents of /dev/initrd (e.g. RAM disk initialized by the boot loader).
첫 번 째 부 트 업 단 계 에 서 , 커 널 은 .B /dev/initrd의 내 용 에 서 최 초 루 트 파 일 시 스 템 을 시 동 하 고 마 운 트 한 다 . 두 번 째 단 계 에 서 , 추 가 드 라 이 버 또 는 기 타 모 듈 들 이 최 초 루 트 장 치 내 용 에 서 로 딩 된 다 . 추 가 모 듈 들 을 로 딩 한 다 음 , 새 로 운 루 트 파 일 시 스 템 이 다 른 장 치 로 부 터 마 운 트 된 다 .
부 트 업 연 산
initrd으 로 부 팅 할 때 ,시 스 템 부 팅 은 다 음 과 같 은 순 서 를 따 른 다 .
1. 부 트 로 더 는 커 널 프 로 그 램 을 로 딩 하 고 , /dev/initrd의 내 용 을 메 모 리 로 로 딩 한 다 .
2. 커 널 시 동 시 , 커 널 은 장 치 /dev/initrd의 내 용 의 압 축 을 해 제 하 고 , 장 치 .B /dev/ram0으 로 복 사 한 후 , /dev/initrd에 의 해 사 용 된 메 모 리 를 자 유 롭 게 한 다 .
3. 커 널 은 장 치 .B /dev/ram0을 최 초 루 트 파 일 시 스 템 으 로 읽 기 및 쓰 기 마 운 트 를 한 다 .
4. 만 일 지 정 된 일 반 루 트 파 일 시 스 템 이 또 한 최 초 루 트 파 일 시 스 템 이 라 면 , (예 /dev/ram0 )커 널 은 일 반 부 트 순 서 를 위 한 마 지 막 단 계 를 생 략 한 다 .
5. 만 일 실 행 파 일 .BR /linuxrc가 최 초 루 트 파 일 시 스 템 내 에 있 다 면 , /linuxrc는 uid 0으 로 실 행 된 다 . 파 일 /linuxrc는 실 행 권 한 을 갖 고 있 어 야 한 다 . 파 일 /linuxrc 는 쉘 스 크 립 트 를 포 함 하 는 타 당 한 실 행 파 일 이 될 수 있 다 .
6. 만 일 /linuxrc 이 실 행 되 지 않 거 나 , /linuxrc가 종 료 될 때 , 일 반 루 트 파 일 시 스 템 은 마 운 트 된 다 . (만 일 /linuxrc 가 최 초 루 트 파 일 시 스 템 상 에 마 운 트 된 파 일 시 스 템 에 서 빠 져 나 온 다 면 , 커 널 의 행 동 은 UNSPECIFIED가 된 다 . See the NOTES section for the current kernel behavior 커 널 의 행 동 을 보 려 면 , .BR NOTES 섹 션 을 참 조 하 라 .)
7. 만 일 일 반 루 트 파 일 이 디 렉 토 리 /initrd, 장 치 를 갖 고 있 다 면 , /dev/ram0은 /에 서 to/initrd으 로 이 동 한 다 . 그 렇 지 않 고 , 만 일 디 렉 토 리 /initrd가 존 재 하 지 않 으 면 , 장 치 /dev/ram0는 언 마 운 트 된 다 . (.BR / " 에 서 " /initrd "로 이 동 했 을 때 , " /dev/ram0은 언 마 운 트 되 지 않 고 , 프 로 세 스 들 은 , /dev/ram0에 서 실 행 되 는 채 로 남 겨 진 다 . 만 일 디 렉 토 리 /initrd가 일 반 루 트 파 일 시 스 템 상 에 존 재 하 지 않 고 ,어 떤 프 로 세 스 가 /dev/ram0에 서 실 행 되 는 채 로 남 겨 지 면 ,/linuxrc에 서 빠 져 나 갈 때 ,커 널 의 행 동 은 UNSPECIFIED(규 명 불 가 )가 된 다 . See the NOTES 현 재 커 널 의 행 동 을 보 려 면 NOTES 섹 션 을 참 조 한 다 .)
8. 일 반 부 트 순 서 (.BR /sbin/init의 실 행 )는 일 반 루 트 파 일 시 스 템 상 에 서 수 행 된 다 .
OPTIONS(옵 션 )
initrd가
사 용 될 때 ,다
음 의 부 트 로 더
옵 션 은 커 널 의
부 트 업 연 산 에
영 향 을 미 친 다 .
initrd=파 일 이 름
그 파 일 을 /dev/initrd의 내 용 으 로 로 드 하 도 록 지 정 한 다 .
LOADLIN에 대 해 서 는 이 는 명 령 행 옵 션 이 다 . LILO에 대 해 서 는 여 러 분 은 .BR설 정 파 일 /etc/lilo.config에 서 이 명 령 을 사 용 해 야 한 다 . 이 옵 션 으 로 지 정 된 파 일 이 름 은 일 반 적 으 로 gzip을 이 용 하 여 파 일 시 스 템 이 미 지 로 압 축 되 어 야 한 다 .
noinitrd
이 부 트 타 임 옵 션 은 부 트 업 연 산 의 두 가 지 단 계 를 동 작 하 지 못 하 게 한 다 . 커 널 은 일 반 부 트 순 서 를 .B /dev/initrd가 초 기 화 되 지 못 했 던 것 처 럼 수 행 한 다 . 이 옵 션 으 로 , .B /dev/initrd의 모 든 내 용 은 부 트 로 더 에 의 해 메 모 리 로 로 딩 되 고 , 내 용 들 은 보 존 된 다 . 이 옵 션 은 /dev/initrd의 내 용 이 데 이 터 가 되 도 록 허 용 하 고 , 어 떤 파 일 시 스 템 이 미 지 에 제 한 받 을 필 요 가 없 도 록 허 용 한 다 . However, device 하 지 만 .B /dev/initrd 장 치 는 읽 기 만 이 가 능 하 고 , 시 스 템 이 시 동 된 후 , 오 직 한 번 만 읽 기 가 가 능 하 다 .
root=device-name
은 장 치 가 일 반 루 트 파 일 시 스 템 처 럼 사 용 되 도 록 지 정 한 다 .
LOADLIN에 대 해 , this is a command line option. 이 는 명 령 행 옵 션 이 다 .
LILO에 대 해 , 이 는 부 트 옵 션 이 거 나 , .BR LILO 설 정 파 일 인 /etc/lilo.config에 서 옵 션 행 으 로 玲 逾 ??獵 ? 이 옵 션 에 의 해 지 정 된 장 치 는 마 운 트 가 능 한 장 치 로 서 적 절 한 루 트 파 일 시 스 템 을 갖 고 있 어 야 한 다 .
일 반 루 트 파 일 시 스 템 변 경 하 기
기 본 적 으 로 커 널 의 설 정 - 예 를 들 어 커 널 파 일 내 에 .B rdev로 설 정 되 거 나 , 커 널 파 일 내 에 컴 파 일 됨 , 혹 은 부 트 로 더 옵 션 설 정 은 일 반 루 트 파 일 시 스 템 에 대 해 사 용 된 다 . NFS가 마 운 트 된 일 반 루 트 파 일 시 스 템 에 대 해 , NFS 설 정 을 주 기 위 해 , nfs_root_name 와 nfs_root_addrs부 트 옵 션 을 사 용 해 야 한 다 . NFS가 마 운 트 된 루 트 에 대 한 자 세 한 정 보 를 보 려 면 커 널 문 서 파 일 인 nfsroot.txt을 참 조 하 라 . 루 트 파 일 시 스 템 설 정 에 대 한 정 보 를 보 려 면 , LILO 와 LOADLIN 문 서 를 참 조 하 라 . PP /linuxrc실 행 가 능 파 일 이 일 반 루 트 장 치 를 변 경 시 키 는 것 역 시 가 능 하 다 .
/linuxrc이
일 반 루 트 장 치
를 변 경 하 려 면
,.BR/proc이 마 운 트
되 어 야 한 다 . "
마 운 트 를 한 후 , .BR
/proc "과 " /linuxrc 일 반
루 트 장 치 를 다
음 과 같 은 proc 파 일
들 을 작 성 함 으
로 서 변 경 한 다 . .BR
/proc/sys/kernel/real-root-dev ", " .BR
/proc/sys/kernel/nfs-root-name ", 그 리
고 " .BR /proc/sys/kernel/nfs-root-addrs
"." 물 리 적 인 루
트 장 치 로 서 는 ,
루 트 장 치 는
/linuxrc로 하 여 금
새 로 운 루 트
파 일 시 스 템
장 치 번 호 를
.BR /proc/sys/kernel/real-root-dev으 로
변 경 된 다 . NFS 루 트
파 일 시 스 템 에
대 해 , 루 트 장 치
는 BR /linuxrc이 NFS 설 정 을
.BR /proc/sys/kernel/nfs-root-name " 그 리
고 " .BR /proc/sys/kernel/nfs-root-addrs와
같 은 파 일 들 로
작 성 하 고 , 그 런
후 , 0xff(예 : 의 사 NFS 장
치 번 호 : pseudo-NFS-device
number)를 파 일 .BR
/proc/sys/kernel/real-root-dev 로 작 성
함 으 로 서 변 경
된 다 . the normal root device to 예
를 들 면 , 다 음 의
쉘 명 령 행 은 일
반 루 트 장 치 를
다 음 과 같 이 변
경 한 다 . .BR /dev/hdb1 :
.nf
echo 0x365 >/proc/sys/kernel/real-root-dev
For a NSF example, the following shell command lines would change the normal root device to the NSF directory on a local networked NSF server with IP number 193.8.232.7 for a system with IP number 193.8.232.7 and named ’idefix’: NFS 예 제 에 대 하 여 , 다 음 의 쉘 명 령 은 idefix라 는 이 름 을 지 니 고 , IP 주 소 193.8.232.7를 지 닌 시 스 템 을 위 한 로 컬 네 트 워 크 NFS 서 버 (IP 주 소 193.8.232.7) 상 에 서 일 반 루 트 장 치 를 NFS 디 렉 토 리 , BR /var/nfsroot로 변 경 할 것 이 다 .
echo /var/nfsroot >/proc/sys/kernel/nfs-root-name | ||
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \ | ||
>/proc/sys/kernel/nfs-root-addrs | ||
echo 255 >/proc/sys/kernel/real-root-dev |
사 용 법
The main motivation for implementing initrd을 구 현 하 기 위 한 주 된 유 도 방 법 은 시 스 템 설 치 시 모 듈 커 널 설 정 을 허 용 하 는 것 이 다 .
가 능 한 시 스 템 설 치 시 나 리 오 는 다 음 과 같 다 .
1. 로 더 프 로 그 램 은 플 로 피 또 는 다 른 매 체 로 부 터 최 소 의 커 널 로 부 팅 하 고 , (예 .BR /dev/ram ", " /dev/initrd ", 그 리 고 ext2 파 일 시 스 템 에 대 한 지 원 ) 최 초 파 일 시 스 템 의 gzip으 로 압 축 된 버 전 인 .BR /dev/initrd을 로 딩 한 다 . )
2. 실 행 가 능 한 .BR /linuxrc는 일 반 루 트 파 일 시 스 템 (장 치 유 형 , 장 치 드 라 이 버 , 파 일 시 스 템 )을 마 운 트 하 는 데 필 요 한 것 과 , 배 포 매 체 (시 디 롬 , 네 트 워 크 , 테 이 프 등 )를 결 정 한 다 . 이 는 사 용 자 에 게 물 어 보 거 나 , 자 동 감 지 또 는 설 치 마 법 사 를 사 용 함 으 로 서 가 능 하 다 .
3. 실 행 가 능 한 .BR /linuxrc는 필 요 한 모 듈 들 을 최 초 루 트 파 일 시 스 템 에 서 로 드 한 다 .
4. 실 행 가 능 한 .BR /linuxrc은 루 트 파 일 시 스 템 을 만 든 다 .(이 단 계 에 서 일 반 루 트 파 일 시 스 템 이 아 직 완 전 한 시 스 템 이 될 필 요 는 없 다 .)
5. 실 행 가 능 한 .BR /linuxrc는 /proc/sys/kernel/real-root-dev을 설 정 하 고 , 일 반 루 트 파 일 시 스 템 과 다 른 파 일 시 스 템 들 이 마 운 트 했 던 .BR /proc을 언 마 운 트 한 다 음 , 종 료 한 다 .
6. 커 널 은 일 반 파 일 시 스 템 을 마 운 트 한 다 .
7. 이 제 파 일 시 스 템 의 액 세 스 가 가 능 하 고 , 손 상 되 지 않 은 채 로 , 부 트 로 더 가 설 치 될 수 있 다 .
8. The boot loader is configured to load into a file system with the set of modules that was used to bring up the system. 부 트 로 더 는 시 스 템 을 활 성 화 하 는 데 사 용 되 는 일 련 의 모 듈 들 과 함 께 .BR /dev/initrd 파 일 시 스 템 으 로 로 딩 되 도 록 설 정 된 다 . (예 , Device /dev/ram0 는 수 정 되 고 언 마 운 트 되 며 , 마 지 막 으 로 그 이 미 지 는 .BR /dev/ram0 에 서 파 일 로 작 성 된 다 .)
9. 시 스 템 은 현 재 부 팅 할 수 있 고 , 추 가 인 스 톨 작 업 은 실 행 될 수 있 다 .
위 에 있 는 /dev/initrd 의 키 롤 (key role)은 요 청 한 큰 일 반 커 널 이 나 , 리 컴 파 일 된 초 기 화 커 널 선 택 없 이 표 준 시 스 템 작 동 때 설 정 데 이 타 를 재 사 용 할 수 있 다 .
두 번 째 시 나 리 오 는 리 눅 스 가 단 일 관 리 네 트 웍 에 서 다 른 하 드 웨 어 설 정 을 가 진 시 스 템 에 서 의 인 스 톨 에 관 한 사 항 이 다 . 이 런 경 우 , 커 널 의 작 은 설 정 사 용 을 원 할 런 지 모 르 고 , 가 능 한 작 은 설 정 정 보 의 시 스 템 특 정 (system-speccific) 부 분 을 지 킨 다 . 이 런 경 우 , 모 든 필 요 한 모 듈 이 가 진 공 유 파 일 이 생 성 된 다 .
그 리 고 , 단 지 /linuxrc 파 일 이 나 일 반 파 일 은 /linuxrc 가 다 른 것 에 의 해 실 행 된 다 .
세 번 째 시 나 리 오 는 더 욱 편 리 한 복 구 디 스 크 이 다 . 루 트 파 일 시 스 템 파 티 션 의 위 치 와 같 은 정 보 는 부 팅 시 필 요 하 지 않 기 때 문 에 , /dev/initrd 로 부 터 로 드 된 시 스 템 은 미 친 듯 하 는 체 크 에 영 향 을 받 는 다 이 얼 로 그 나 자 동 찾 기 를 사 용 할 수 있 다 .
마 직 막 으 로 , 리 눅 스 배 포 본 은 수 월 한 설 치 를 위 해 initrd 를 사 용 할 런 지 모 른 다 . 배 포 본 은 The distribution can use 플 로 피 가 필 요 없 이 cd-rom에 서 /dev/initrd 를 직 접 로 드 할 수 있 는 LOADLIN 를 사 용 할 수 있 다 . 배 포 본 은 또 한 부 팅 디 스 켓 보 단 cd-rom으 로 부 터 /dev/initrd 등 의 부 트 스 트 랩 보 다 더 큰 램 디 스 크 인 LILO 를 사 용 한 다 .
설 정
/dev/initrd
는 메 이 저 번 호
1과 마 이 너 번 호
250이 할 당 된 read-only 블
록 장 치 이 다 . 전
형 적 으 로 /dev/initrd
는 모 드 0400을 가 진
(루 트 만 이 읽 기
권 한 이 있 는 )
root.disk 에 의 해 소
유 된 다 . 리 눅 스
시 스 템 에 /dev/initrd
이 없 다 면 , 아 래
의 명 령 으 로 생
성 할 수 있 다 :
mknod -m 400 /dev/initrd b 1 250
chown root:disk /dev/initrd
또 한 , "램 디 스
크 "와 "초 기 화
램 디 스 크 "를 지
원 한 다 . (e.g.
CONFIG_BLK_DEV_RAM=y와
CONFIG_BLK_DEV_INITRD=y ) 지 원 은
/dev/initrd 을 사 용 하
기 위 해 리 눅 스
커 널 에 직 접 컴
파 일 되 어 야 만
한 다 . /dev/initrd 를 사
용 할 때 , 램 디 스
크 드 라 이 버 는
모 듈 로 로 드 할
수 없 다 .
파 일
/dev/initrd
/dev/ram0
/linuxrc
/initrd
관 련 항 목
chown(1), mknod(1), /dev/ram(4), freeramdisk(8), rdev(8), 리 눅 스 문 서 파 일 initrd.txt 커 널 소 스 패 키 지 안 의 , 리 로 문 서 , LOADLIN문 서 , SYSLINUX문 서 .
주 의
1. 현 재 커 널 과 함 께 , .BR /dev/ram0 이 /에 서 /initrd로 옮 겨 졌 을 때 , 마 운 트 된 상 태 로 남 아 있 는 어 느 파 일 시 스 템 에 나 액 세 스 가 가 능 하 다 . 그 러 나 , .BR /proc/mounts 엔 트 리 부 분 들 은 업 데 이 트 되 지 않 았 다 .
2. 현 재 커 널 과 함 께 , 디 렉 토 리 .BR /initrd이 존 재 하 지 않 고 , .BR /dev/ram0이 어 느 프 로 세 스 에 의 해 사 용 되 거 나 , 그 위 에 어 떤 파 일 시 스 템 이 마 운 트 되 어 있 으 면 , /dev/ram0은 마 운 트 되 지 않 을 것 이 다 . /dev/ram0이 마 운 트 되 지 않 으 면 ,.BR/dev/ram0은 메 모 리 에 남 겨 질 것 이 다 .
3. .BR /dev/initrd의 사 용 자 들 은 위 의 주 의 사 항 에 주 어 진 행 동 에 의 존 해 서 는 안 된 다 . 이 는 앞 으 로 의 리 눅 스 커 널 의 미 래 버 전 들 에 있 어 변 경 이 될 수 있 는 것 이 다 .
AUTHOR
장 치 .BR initrd에 대 한 커 널 코 드 는 Werner Almesberger <almesber [AT] lrc.ch>와 Hans Lermen <lermen [AT] elserv.de>에 의 해 작 성 되 었 다 . initrd에 대 한 코 드 는 개 발 버 전 1.3.73의 리 눅 스 커 널 에 추 가 되 었 다 .