initrd에 대해 배우려고합니다. 이 튜토리얼 을 따라 처음부터 자체 initrd를 빌드하고 busybox를 설치했습니다. 그런 다음 isolinux로 .iso를 만들었으므로 virtualbox에서 테스트 할 수 있습니다. 잘 작동합니다!
busybox의 기본 명령이 있으므로 파일 시스템을 마운트하고 싶었습니다. 그러나 / dev 디렉토리는 튜토리얼을 따를 때 만든 일부 파일을 제외하고는 거의 비어 있습니다 (sda 없음). 나는 udev에 대해 배웠고 이것이 내가 필요한 것이라고 생각합니다. 그러나 나는 이것을 어떻게 진행 해야할지 모르겠다.
udev에서 최신 소스 코드를 가져 와서 컴파일하여 initrd에 추가해야합니까? 그런 다음 init 스크립트에서 / bin / udev 또는 이와 비슷한 것을 호출합니까? 아니면 / dev 디렉토리를 채우는 다른 방법이 있습니까?
편집 : 내가 이미 한 일에 대한 추가 정보 및 업데이트.
- 나는 가상 상자에서 모든 것을 테스트합니다. 방금 가상 상자에 최소 우분투를 설치하고 initrd에서 .iso를 만든 다음 virtualbox의 iso에서 부팅했습니다.
- 나는 vmlinuz를 사용했고
/lib/modules
debian-businesscard.iso에 있었고 이전에 연결 한 튜토리얼에 따라 만든 initrd로 복사했습니다. - 커널은
CONFIG_DEVTMPFS=y
/dev
tty0-tty63과 같은 일부 장치는 다른 장치에 나타나지만 sda / hda는 없습니다.- 란
lspci -k
내 현재 실행중인 OS와 가상 상자는 사용되는 모듈을 확인합니다. 모듈로SATA Controller
사용한다고 말합니다ahci
. - 내가 실행
modprobe -v ahci
하면 "알 수없는 기호 : ata_some_stuff"에 대해 많은 불평을하지만 그 후에는SCSI Subsystem initialized
,ATA-6: VBOX HARDDISK
및 같은 것을 반환합니다Direct-Access ATA VBOX HARDDISK
. 그러나 여전히 하드 드라이브 장치가 없습니다/dev
.
내 현재 /init/
스크립트는 다음과 같습니다
#!/bin/ash
mount -t devtmpfs none /dev
mount -t proc /proc /proc
mount -t sysfs none /sys
modprobe -v ahci
echo "Hello world"
exec /bin/ash --login
누구든지 내가 뭘 잘못하고 있고 무엇을해야하는지 아는 사람이 있습니까?