Yocto映像中的救援分区

时间:2019-09-20 08:12:28

标签: yocto

我需要使用Yocto创建一个包含救援分区的映像。也就是说,可以在grub菜单中选择另一个根分区。

从USB引导后,我当前正在创建一个映像,该映像将添加到目标英特尔主板的内部SSD芯片。这是可行的,但是我现在需要将当前的根分区复制为“救援”分区,以防根分区出问题。

所以目前我有一个工作正常的wks(kickstart)文件,其5个分区定义为:

part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label boot --active --align 1024
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024 --use-uuid --extra-space 1024
part /rescue --source rootfs --ondisk sda --fstype=ext4 --label rescue --align 1024 --use-uuid --extra-space 1024
part swap --ondisk sda --size 1024 --label swap --fstype=swap
part /home --ondisk sda --fstype=ext4 --label home --align 1024 --use-uuid --size=1024
bootloader --configfile="grub.cfg"

grub配置有两个菜单选项,我可以从默认的第一个菜单选项启动。

menuentry 'boot'{
 linux /bzImage root=/dev/sda2 3 console=ttyS2,115200n8 rootfstype=ext4
}
menuentry 'rescue'{
 linux /bzImage root=/dev/sda3 3 console=ttyS2,115200n8 rootfstype=ext4
}

grub配置选择第二个或第三个分区作为根。这适用于wks文件中分区的固定顺序。

我的问题是,如果我在grub中选择了'rescue'分区,则系统开始启动,但是Linux内核无法找到根分区。这是内核崩溃之前的最新内核消息:

:<snip>
:
ata1.00: ATA-8: 32GB NANDrive, D A431F4, max UDMA/133
ata1.00: 62533296 sectors, multi 0: LBA48 
ata1.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access     ATA      32GB NANDrive    31F4 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: Attached scsi generic sg0 type 0
 sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
:
:<snip>
:
List of all partitions:
0100           16384 ram0 
 (driver?)
0101           16384 ram1 
 (driver?)
0102           16384 ram2 
 (driver?)
0103           16384 ram3 
 (driver?)
0800        31266648 sda 
 driver: sd
  0801           24571 sda1 9f293dfb-01

  0802         4151722 sda2 9f293dfb-02

  0803         4151722 sda3 9f293dfb-03

  0804               1 sda4 

  0805         1048576 sda5 9f293dfb-05

  0806         1048576 sda6 9f293dfb-06

No filesystem could mount root, tried: 
 ext4

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,3)
:
:

我怀疑Yocto在构建仅需要控制的图像时会执行某些操作,但无法找到此问题的根源。 感谢您的帮助

0 个答案:

没有答案