Ramdisk와 initrd는 동일합니까?


10

ramfs-rootfs-initramfs.txt의 램 디스크에 대한 커널 문서를 읽는 동안 램 디스크가 ``차이-중간- 초기화 및 초기화 ramfs '' 의 게시물에 설명 된 initrd 기능과 동일하다고 설명하는 것처럼 램 디스크는 의심 스럽습니다 .

누군가 이것에 대해 명확히 할 수 있습니까?

그리고 그것이 동일하다면, 나는 그것에 대한 많은 단점이 있지만 여전히 내 페도라 PC에 있다고 읽습니다.

initrd-2.6.29.4-167.fc11.i686.PAE.img

내 부팅 폴더에. 위에서 언급 한 initrd와 다른가요?

UPDATE_EDIT는 :
의에 기사 난 같은 명령을 보았다
# update-initramfs -u all
update-initramfs: Generating /boot/initrd.img-2.6.18-5-amd64

이 initramfs는 어떻게 initrd.img에 연결되어 있습니까?

답변:


13

램 디스크는 할당 된 메모리 덩어리에 복사 된 다음 블록 장치로 취급되는 일련의 블록입니다. 일반 파일 시스템이 램 디스크에 생성됩니다. initrd (초기 램 디스크)는 부팅 중에 마운트되는 램 디스크입니다.

초기화는 다른 것입니다. 부팅 중에로드되는 파일의 cpio 아카이브입니다. 커널은 내용을 rootfs를 호출하는 가상 파일 시스템으로로드합니다. 램 디스크와 달리 파일을 삭제하면 메모리를 직접 확보 할 수 있으며 추가 파일 시스템 및 블록 레이어가 필요하지 않습니다.

두 방법 모두 부팅 할 때 장치가로드되기 전에 커널에서 파일을 사용할 수있게하므로 실제로 두 가지 방법으로 비슷한 결과를 얻을 수 있습니다. 오래된 시스템은 initrd (initramfs 이전에 생성 된)를 사용하지만 최신 시스템은 모두 initramfs를 사용해야합니다. 실제로 initramfs 인 무언가와 관련하여 initrd라는 단어를 볼 수 있습니다. 호환성을 위해 명명되었습니다.


고마워요, "ramdisk는 일련의 블록"의 의미를 알고 싶습니다. 복사 된 블록 장치로 어떻게 취급됩니까?
Sen

@Sen : 많은 메모리를 할당하고 블록 장치를 생성하며 블록 장치와의 요청을 블록 장치의 메모리에있는 읽기 / 쓰기로 매핑 하는 rd모듈 (나중에 이름이 변경되고 brd커널에 내장 될 수 있음)이 있습니다.
ephemient

이 rd / brd 모듈에 대해 좀 더 알려줄 수 있습니까?
Sen

또한 다음 단계를 수행하여 램 디스크 이미지를 만든 경우 다음을 알고 싶습니다. mke2fs -vm0 / dev / ram 4096; mount -t ext2 / dev / ram / mnt; cd / mnt; cp / bin, / sbin, / etc, / dev ... mnt 파일; cd ../; umount / mnt; dd if = / dev / ram bs = 1k count = 4096 of = ext2ramdisk; 장치에서이 ext2ramdisk를 어떻게 부팅합니까? 램에 싣는 것만으로도 효과가 있습니까?
Sen

@Sen : 부트 로더는 커널과 init (rd | ramfs)를 모두 RAM에로드합니다. 부트 로더 설명서를 참조하십시오. 그러나 손으로 직접 작성하더라도 (왜 ??) find /bin /sbin /etc /dev ... | cpio -o | gzip -c > initramfsinitrd 대신 사용해야 합니다.
ephemient
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.