Kernel 将usb设备用作rootfs时出现内核死机

Kernel 将usb设备用作rootfs时出现内核死机,kernel,u-boot,rootfs,Kernel,U Boot,Rootfs,我格式化了usb驱动器并在中复制了我的rootfs文件。并修改了u-boot引导参数:root=/dev/sda1。然后内核恐慌: [ 5.910995] VFS: Cannot open root device "sda1" or unknown-block(0,0): error -6 [ 5.918354] Please append a correct "root=" boot option; here are the available partitions: [ 5

我格式化了usb驱动器并在中复制了我的rootfs文件。并修改了u-boot引导参数:root=/dev/sda1。然后内核恐慌:

[    5.910995] VFS: Cannot open root device "sda1" or unknown-block(0,0): error -6
[    5.918354] Please append a correct "root=" boot option; here are the available partitions:
[    5.926748] 0100          100000 ram0  (driver?)
[    5.931416] 1f00            2048 mtdblock0  (driver?)
[    5.936505] 1f01            2048 mtdblock1  (driver?)
[    5.941594] 1f02           12288 mtdblock2  (driver?)
[    5.946682] 1f03            2048 mtdblock3  (driver?)
[    5.951772] 1f04           13312 mtdblock4  (driver?)
[    5.956857] 1f05          507904 mtdblock5  (driver?)
[    5.961945] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

在尝试挂载rootfs时,内核似乎没有加载usb驱动器。如何使用usb驱动器作为rootfs?

为了更好地解释发生了什么,在很多情况下(usb是常见的,其他可移动媒体也是如此,但这可以应用于任何实际情况),需要将参数rootwaitroot=/dev/XXX一起传递给内核。有时这是所谓延迟探测的结果。为了使所讨论的设备能够正常工作,它需要启用系统的其他部分(通常是与电源相关的部分),因此内核第一次尝试时,子系统会说“稍后再试”。在其他情况下,它与所需的探测延迟有关(在设备准备好使用之前,您需要等待一定的挂钟时间)。在这两种情况下,告诉内核rootwait,内核将永远等待指定的根设备的存在。

为了更好地解释发生了什么,在很多情况下(USB是常见的,其他可移动媒体也是如此,但这可以应用于任何实际情况)要求您将参数rootwaitroot=/dev/XXX一起传递给内核。有时这是所谓延迟探测的结果。为了使所讨论的设备能够正常工作,它需要启用系统的其他部分(通常是与电源相关的部分),因此内核第一次尝试时,子系统会说“稍后再试”。在其他情况下,它与所需的探测延迟有关(在设备准备好使用之前,您需要等待一定的挂钟时间)。在这两种情况下,告诉内核rootwait,内核将永远等待指定的根设备存在。

您传递的完整引导参数是什么?你在用rootwait吗?我用rootwait修改了bootargs,很有效!谢谢@TomRini。你要通过的全套装备是什么?你在用rootwait吗?我用rootwait修改了bootargs,很有效!谢谢@TomRini。