如果 initramfs 启动时已插入,我的 Debian 测试系统上的 Initramfs 无法自动加载外部 USB 3 HDD (Seagate Backup Plus 1T) 所需的内核模块。如果我启动到 initramfs shell,拔出电缆并重新插入,那么设备将显示出来,我将能够安装它。
我在 initramfs 中不需要这个设备,但是/dev/由 initramfs 创建的文件系统被传递到主操作系统,我确实需要它。我必须拔出和插入电缆才能使设备可用。
我如何设置 initramfs 来解决这个设备?或者我如何告诉主操作系统遍历硬件总线并处理 initramfs 中的 udev 错过的所有设备?
在我关闭和打开设备后,加载了两个新模块:
# lsmod
Module Size Used by
uas 24576 0
usb_storage 69632 1 uas
Run Code Online (Sandbox Code Playgroud)
这些模块在 initramfs 镜像中可用:
# lsinitramfs /boot/initrd.img-4.6.0-1-amd64 |grep -E '(uas|usb-storage)'
lib/modules/4.6.0-1-amd64/kernel/drivers/usb/storage/usb-storage.ko
lib/modules/4.6.0-1-amd64/kernel/drivers/usb/storage/uas.ko
Run Code Online (Sandbox Code Playgroud)
uname,dmesg并lsusb在堵塞装置后输出:
# uname -a
Linux pingwin 4.6.0-1-amd64 #1 SMP Debian 4.6.4-1 (2016-07-18) x86_64 GNU/Linux
# dmesg
[ …Run Code Online (Sandbox Code Playgroud)