我将 Trusty 安装的根目录放在闪存 SD 卡上,最终将其配置为只读,使用 overlayFS 使一些必要的部分可写,例如 /etc。我知道这样做可能听起来有点疯狂,但这不是我遇到问题的地方。
Ubuntu 安装程序无法识别机器正面的多卡读卡器,因此我使用 USB 读卡器来避开这个问题。然后,安装完成后,将 SD 卡插入多卡读卡器,然后就可以开始了。
这在两台装有 2012 固件的富士康 NanoPC 上运行良好,但我们最近购买了装有较新固件的较新型号,问题就出现在这里。
当我从 USB 读卡器切换到内部读卡器时,系统在运行 local-top 脚本时会失去对 SD 卡的跟踪,并进入 initramfs 中的 shell,并显示消息;
Gave up waiting for root device. Common Problems;
-Boot args (cat /proc/cmdline)
-Check rootdelay= (did the system wait long enough?)
-Check root= (did the system wait for the right device?)
-Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/XXXXXXXXXXXXXX does not exist. Dropping to a shell!
在我看来,硬件在安装根文件系统时并没有将 UUID 传递给系统。
有什么方法可以让 initramfs 指向内部读卡器,或者通过 UUID 以外的任何方式搜索 SD 卡?
或者,我是不是选错了方向,我还应该尝试别的什么吗?
编辑
我刚刚想到,工作系统和非工作系统之间的一个主要区别是,在选择 BIOS 启动选项时,如果 SD 卡在内部读卡器中,工作系统会显示 SD 卡的名称(通用多卡 1.00),但在非工作系统中,它始终显示为 USB 读卡器 2.0。这是否表明这是固件问题?
答案1
我有同样的问题。您可以通过卡所在的驱动器来识别卡,而不是在 grub 中识别。转到 /etc/default/grub 并取消注释与不使用 uuid 有关的行。然后运行“update-grub”。然后它应该会尝试从 /dev/sda1 启动,而不是查找卡的 uuid。