0

系统设置:

1. Generic x86-64 bit target hardware
2. Linux kernel 4.4.131
3. Yocto with core-image-base target build system
4. GRUB boot loader with booting-pcbios loader source code
5. WIC image generation to write image on storage media

WKS 文件生成 WIC 映像,

# short-description: Create an direct disk image for genericx86*
part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
#part /home --ondisk sda --fstype=ext4 --label data --align 1024 --size 3072M
#part swap --ondisk sda --size 44 --label swap1 --fstype=swap

#bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4 console=ttyS0,115200 console=tty0"
# Direct disk image without GPT
bootloader --timeout=5 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=ttyS0,115200n8 console=tty0"
# Direct disk image with GPT
#bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=ttyS0,115200n8 console=tty0"

通过这些设置,我可以创建 WIC 映像。一旦我在 USB 驱动器上使用 DD 命令写入相同的内容,我就可以从 USB 设备正确启动。现在,当我通过 DD 命令将 WIC 映像写入 SSD 驱动器时出现问题,系统卡在Waiting for root device PARTUUID=<...>

我已经尝试了以下方法来正确启动,

1. Provide root partition - DISK_SIGNATURE
2. Direct disk image vs live image - bootimg-pcbios inlace of bootimg-efi - Seems one step towards actual setup
3. Systemd vs old initrd
4. Use bs=1M when doing dd
5. Remove GPT option from bootloader in WKS file
6. --uuid ${DISK_SIGNATURE_UUID} - Didn’t work out, seems to be not properly configure
7. Grub-efi to systemd-efi boot loader change
8. Try with ISO image
9. Remove —-use-uuid option from rootfs - To use rootfs from /dev/sda2
10. Change kernel configuration with AUTOFS, and systemd init service manager
11. Use bs=32K and bs=8K
12. Format SSD and Use bs=512
13. Change on-disk to sdb - Will not be affect, as kernel is also part of SDA which is booting

以上所有的实验我已经什么都没做。

您可能想查看许多其他更改,因此请告诉我您想要的具体项目,我将分享更多详细信息。

非常感谢任何帮助。

4

1 回答 1

2

经过一夜的调试,我发现 SATA 设备驱动程序作为模块保存在内核配置中。我已经从模块更改为静态,它开始工作了。在可启动 USB 创建过程中,我已经遇到过类似的问题。如此美好的结局,在任何随机尝试之前始终检查内核配置。:)

于 2018-07-11T16:48:20.777 回答