将 usb 设备用作 rootfs 时内核恐慌
Kernel panic when using usb device as 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.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 驱动器。如何使用U盘作为rootfs?
为了更好地解释发生了什么,在很多情况下(USB 很常见,其他可移动媒体也很常见,但这实际上可以适用于任何东西)要求您传递参数 rootwait 连同 root=/dev/XXX 到内核。有时这是所谓的延迟探测的结果。为了使有问题的设备正常运行,它又需要启用系统的其他部分(通常与电源相关的部分),因此内核第一次尝试时,子系统会显示 "try again later"。在其他情况下,它与所需的探测延迟有关(在设备准备好使用之前,您需要等待一定的挂钟时间)。在这两种情况下,告诉内核 rootwait,内核将永远等待指定的根设备存在。
我格式化了 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 驱动器。如何使用U盘作为rootfs?
为了更好地解释发生了什么,在很多情况下(USB 很常见,其他可移动媒体也很常见,但这实际上可以适用于任何东西)要求您传递参数 rootwait 连同 root=/dev/XXX 到内核。有时这是所谓的延迟探测的结果。为了使有问题的设备正常运行,它又需要启用系统的其他部分(通常与电源相关的部分),因此内核第一次尝试时,子系统会显示 "try again later"。在其他情况下,它与所需的探测延迟有关(在设备准备好使用之前,您需要等待一定的挂钟时间)。在这两种情况下,告诉内核 rootwait,内核将永远等待指定的根设备存在。