需要加载哪些 Linux 内核模块来检测 IDE 和 SATA cdrom 驱动器?

需要加载哪些 Linux 内核模块来检测 IDE 和 SATA cdrom 驱动器?

因此,我正在创建自己的 Linux initramfs 副本(用于学习目的)。一切似乎都运行良好。我正确地安装了共享库,并且可以在 initramfs 中运行一些二进制文件。我还安装并运行了 busybox 工具,没有任何问题。但是,当尝试挂载 /dev/sr0 时,mount报告没有这样的设备或地址找到。串行日志(Virtualbox 报告到文本文件中)显示内核可以检测到 SATA 硬盘,但无法检测到 IDE cdrom 控制器。当我使用主机系统的原始 initramfs 时,它确实检测到并成功安装了 cdrom 驱动器,但 lsmod 显示加载的模块很多,我无法全部尝试。因此,我想通过加载正确的内核模块来使用我的 initramfs 检测 IDE cdrom 驱动器,但我不确定哪些模块可以完成虚拟化 IDE 接口的工作。

顺便说一下,我的 initramfs 加载了以下模块:

load_modules()
{    
    modules="ahci sd_mod sr_mod virtio_blk virtio_pci" 
    modules="$modules ohci_pci ehci_pci loop ext4 isofs squashfs"

    for mod in $modules; 
    do      
        echo "Loading $mod ..."
        modprobe $mod 
    done
}

以下是显示检测到 SATA 磁盘的串行日志的一部分:

[    5.988202] SCSI subsystem initialized
[    6.074669] libata version 3.00 loaded.
[    6.212811] tsc: Refined TSC clocksource calibration: 2594.307 MHz
[    6.213805] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x25653a78b6d, max_idle_ns: 440795319419 ns
[    6.216298] ahci 0000:00:0d.0: version 3.0
[    6.217563] ahci 0000:00:0d.0: SSS flag set, parallel bus scan disabled
[    6.393125] ahci 0000:00:0d.0: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
[    6.394486] ahci 0000:00:0d.0: flags: 64bit ncq stag only ccc 
[    6.396023] scsi host0: ahci
[    6.396708] ata1: SATA max UDMA/133 abar m8192@0xf0806000 port 0xf0806100 irq 21
[    6.713317] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    6.729072] ata1.00: ATA-6: VBOX HARDDISK, 1.0, max UDMA/133
[    6.753066] ata1.00: 4194304 sectors, multi 128: LBA48 NCQ (depth 31/32)
[    6.812916] ata1.00: configured for UDMA/133
[    6.863148] scsi 0:0:0:0: Direct-Access     ATA      VBOX HARDDISK    1.0  PQ: 0 ANSI: 5
[    6.871504] sd 0:0:0:0: [sda] 4194304 512-byte logical blocks: (2.15 GB/2.00 GiB)

答案1

至少,你需要sr驱动器本身的模块。除此之外,你还需要芯片组的驱动程序,但不幸的是,我不知道相关的驱动程序到底是什么。我思考您需要ata_genericpata_acpi模块,但我不是 100% 确定。


话虽如此,VirtualBox 默认提供的配置实际上以今天的标准来看相当不寻常。这种配置的最初理由与近十年前构建的实际硬件背后的理由相同,一些必须从 CD 启动的旧软件仅正确支持 PATA 对 CD 驱动器的访问。不过,如今这种情况非常罕见(大型操作系统不再需要这种情况,而且几乎所有最近更新的可启动实用程序软件也不需要这种情况)。

因此,鉴于此,我建议您完全删除 VirtualBox 配置中的 IDE 控制器,并只向 SATA 控制器添加光驱。此时,您只需要srCD-ROM 驱动器本身的驱动程序。

相关内容