我目前正在从 USB 驱动器启动内核(通过 uboot),工作正常。
我遇到的问题是,当插入 SSD 时,它使用 SSD 作为 sda1,我必须拔下 SSD,以便将 USB 用作 sda1,但我需要同时连接两个 SSD,并且当 USB 插入时我需要将 SSD 设为 sda1不存在...
有任何想法吗?
答案1
第一个问题是为什么你特别依赖 /dev/sda1。假设它是针对内核的“root=DEVNAME”参数,大多数发行版解决此问题的方法是使用 initrd,其 initrd 的 init 脚本会查看所有可用设备并智能地选择一个。这就是许多发行版允许您说出“root=LABEL=MY_ROOT”之类的内容的原因;内核不处理这个,初始化脚本处理。 init 脚本可以运行“blkid”等工具来通过 UUID 或文件系统标签来识别块设备。
不幸的是,构建您自己的 initrd 是一个漫长的学习过程,但是有很多指南可以帮助您获得所需的内容。
现在,如果您的问题出在 mount 命令上,那么 mount 已经支持通过 UUID 或 LABEL 进行挂载(请参阅 参考资料man mount
),因此这是一个非常简单的更改。