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
명령도 도움이 될 것입니다.