dae*_*ejk 9 linux grub boot kernel uuid
如果没有 initramfs/initrd 支持,以下内核命令行将无法工作:
linux /bzImage root=UUID=666c2eee-193d-42db-a490-4c444342bd4e ro
Run Code Online (Sandbox Code Playgroud)
如何在不需要 initramfs/initrd 的情况下通过 UUID 识别我的根分区?
我不能使用类似的设备名称/dev/sda1
,因为分区驻留在 USB 记忆棒上并且需要在不同的机器上工作。
我发现答案隐藏在另一个线程中:
UUID 标识文件系统,而 PARTUUID 标识分区(即重新格式化后保持不变)。如果没有 initramfs/initrd,内核只支持 PARTUUID。
要查找机器中块设备的 PARTUUID,请使用
sudo blkid
Run Code Online (Sandbox Code Playgroud)
这将打印,例如
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" PARTUUID="f3f4g3f4-02"
Run Code Online (Sandbox Code Playgroud)
您现在可以按如下方式修改您的 linux 命令行:
linux /bzImage root=PARTUUID=f3f4g3f4-02 ro
Run Code Online (Sandbox Code Playgroud)
这将从具有 PARTUUID f3f4g3f4-02 的分区启动,在本例中为/dev/sda1
.