VMware용 최소 커널을 빌드할 때 "/dev/sda"가 누락되었습니다.

VMware용 최소 커널을 빌드할 때 "/dev/sda"가 누락되었습니다.

VMware 및 기타 플랫폼에서 실행하려는 최소 Linux 커널을 빌드하기 위해 buildroot를 사용하려고 합니다. 그러나 커널을 부팅하면 하드 드라이브를 인식하지 못합니다(예: no /dev/sda). 필요한 모든 드라이버가 활성화되어 있다고 생각했지만 여전히 아무것도 없습니다. Virtualbox에서는 작동하지만 VMware에서는 작동하지 않습니다.

lspci | less
...
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev01)
...
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
...

시작 make x86_64_defconfig하고 활성화했습니다.

SCSI device support:
    <M> SCSI disk support
    <M> SCSI generic support

Serial ATA and Parallel ATA drivers (libata)
    <M>   AHCI SATA support
    <M>   Platform AHCI SATA support
    <M>       Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
    <M>     Generic ATA support

내가 놓친 것이 있나요? 일반적인 데스크탑 커널에 대한 구성 파일을 찾아 이를 기반으로 구성할 수 있습니까? 어떤 모듈을 구축해야 하는지 결정하는 데 사용할 수 있는 추가 트릭이 있습니까? 예를 들어, 일부 식별자를 사용하여 커널 소스 코드를 검색할 수 있나요?

답변1

나는 추악한 방법으로 문제를 해결했습니다. 더 나은 해결책이 있다고 생각하므로 이것이 올바른 것으로 표시될 때까지 기다릴 것입니다.

/sys/( readlink /sys/block/sda/device/driver등) 에서 정보를 얻는 것을 포함하여 다양한 솔루션을 시도한 후 . 그러나 나는 그것이 일종의 SCSI 드라이버라는 정보만 찾았는데 이는 나에게 도움이 되지 않습니다. 마지막으로 데스크탑 커널 구성을 사용하고 /dev/sd*표시될 때까지 모든 모듈을 로드했습니다. 처음에 나는 로딩에 속았고 scsi_debug, 또한 /dev/sda내가 필요한 모듈이 Linux 커널에서 활성화 mptspi되었습니다 . FUSION_SPI소스트리를 검색해본 결과 알게 되었습니다. 드라이버를 식별하는 데 사용하는 스크립트는 다음과 같습니다.

for MODULE in $(find /lib/modules/$(uname -r) -name '*.ko' -exec basename '{}' .ko ';')
do
    echo "Loading $MODULE"
    modprobe -D $MODULE
    modprobe $MODULE
    ls /dev/sd* 2>&1
done

나는 달렸다

./script | tee script.log

mdev다음번에는 udev/...를 사용하여 솔루션을 설정할 수도 있습니다.

답변2

디스크가 LVM파티션에 있을 수도 있습니다. check : /dev/mapper/lvm df또는 lsblk명령을 사용하여 이 디스크 경로를 찾을 수도 있습니다. mount명령도 도움이 될 것입니다.

관련 정보