Firefly开源社区

打印 上一主题 下一主题

[技术讨论] ff_export_rootfs_buildroot导出rootfs成 ext2 格式后,新固件无法启动系统

154

积分

0

威望

0

贡献

技术小白

积分
154

ff_export_rootfs_buildroot导出rootfs成 ext2 格式后,新固件无法启动系统

发表于 2022-9-6 13:40:08      浏览:3661 | 回复:7        打印     [复制链接] 楼主
  • 固件类型: 官方提供的固件
  • 固件文件名称: official debian10_2021_0429_1902
  • 固件下载地址: noexits.com
  • Log日志: none.zip
问题描述及复现步骤:
本帖最后由 music1913 于 2022-9-6 13:48 编辑

最开始,在基于官方的 debian10_2021_0429_1902 镜像上,我加入了一些私有的程序,之后进行打包,打包的基本步骤如下:

1. 拷贝打包工具到 /home/firefly/Download/ff_export_rootfs_buildroot
https://dev.t-firefly.com/forum.php?mod=attachment&aid=NzQzMXxhNzE5MjRjZnwxNjYyNDM5MjMwfDB8MTE4NDMz
2. 通过在 Windows PC 上安装 diskgenius, 将一个 64G 的 U盘 格式化为 ext4 单分区,再将 U盘 插在板子上
3. 在板子上创建文件夹 usb_drive, 并将其 mount 到 U盘
mkdir /media/usb_drive
mount/dev/sda1 /media/usb_drive

4. 开始打包
  1. ./ff_export_rootfs /media/usb_drive/
复制代码
输出如下:   
EXPORT IMAGE SIZE        8568    MBytes
    find: '/proc/896/task/896/net': Invalid argument
    find: '/proc/896/net': Invalid argument
    find: '/proc/936/task/936/net': Invalid argument
    find: '/proc/936/net': Invalid argument
    find: '/proc/1139/task/1139/net': Invalid argument
    find: '/proc/1139/net': Invalid argument
    BLOCK_COUNT 9290489
    INODE_COUNT 169877
    sync...
    sync finish
    Export rootfs to /media/usb_drive//Firefly_ext4_202206170232.img Success

可见导出结果是一个格式为 ext4 的文件。
5. 压缩
/sbin/e2fsck
/sbin/resize2fs

最终得到一个 5.84G 的文件
6. 更新parameters.txt
0x00C00000@0x00038000(rootfs),0x00060000@0x00C38000(oem)

7. 能成功将上述得到的 rootfs.img 写入板子并成功启动


==========================================================================
今天,我在基于上述镜像固件的系统上,尝试进行打包(因为我又新加入了一些私有程序),这次有遇到一些不一样的情况:
在上述步骤 4 中,现在有看到 mounting ext2 这样的输出:
./ff_export_rootfs /media/usb_drive/
    MEDIA FREE SPACE SIZE    55975   MBytes
    EXPORT IMAGE SIZE        8040    MBytes
    find: ‘/proc/697/task/1199’: No such file or directory
    find: ‘/proc/697/task/1200’: No such file or directory
    find: ‘/proc/697/task/1201’: No such file or directory
    find: ‘/proc/697/task/1202’: No such file or directory
    BLOCK_COUNT 8713964
    INODE_COUNT 215955
    [  178.260587] EXT4-fs (loop0): mounting ext2 file system using the ext4 subsystem
    [  178.282640] EXT4-fs (loop0): mounted filesystem without journal. Opts: (null)
    sync...
    sync finish
    e2fsck 1.44.5 (15-Dec-2018)
    Export rootfs to /media/usb_drive//Firefly_ext2_202209060150.img Success

可见这次导出的是 ext2 格式的文件,我不确定这次为什么不再是 ext4 了???
先不管它,继续执行压缩,后得到一个 6.53G 的文件,更新 parameters.txt  为:
0x00DAC000@0x00038000(rootfs),0x00060000@0x00DE4000(oem)

最后,将新导出的 rootfs.img 固件重新写入板子后,板子的系统启动出错 EXT4-fs error :

/scripts/init-top/console_setup: line 1: can't open /dev/tty2: No such device or address
/scripts/init-top/console_setup: line 1: can't create /dev/tty3: No such device or address
/scripts/init-top/console_setup: line 1: can't open /dev/tty3: No such device or address
/scripts/init-top/console_setup: line 1: can't create /dev/tty4: No such device or address
/scripts/init-top/console_setup: line 1: can't open /dev/tty4: No such device or address
/scripts/init-top/console_setup: line 1: can't create /dev/tty5: No such device or address
/scripts/init-top/console_setup: line 1: can't open /dev/tty5: No such device or address
/scripts/init-top/console_setup: line 1: can't create /dev/tty6: No such device or address
/scripts/init-top/console_setup: line 1: can't open /dev/tty6: No such device or address
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Warning: fsck not present, so skipping root file system
[    3.590926] EXT4-fs (mmcblk0p6): mounted filesystem without journal. Opts: (null)
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... Warning: overlayroot: configuring overlayroot with driver=overlay mode=device opts='dev=PARTLABEL=userdata,fstype=ext4,mkfs=1' per kernel cmdline
[    3.742349] EXT4-fs (mmcblk0p8): warning: mounting unchecked fs, running e2fsck is recommended
[    3.749444] EXT4-fs (mmcblk0p8): mounted filesystem without journal. Opts: (null)
[[: missing ]]
[    3.792694] EXT4-fs error (device mmcblk0p6): ext4_lookup:1706: inode #2: comm overlayroot: deleted inode referenced: 169729
[    3.800716] EXT4-fs error (device mmcblk0p6): ext4_lookup:1706: inode #2: comm overlayroot: deleted inode referenced: 169729
[    3.801680] EXT4-fs error (device mmcblk0p6): ext4_lookup:1706: inode #2: comm overlayroot: deleted inode referenced: 169729
ln: /root/var/lib/docker: Structure needs cleaning
Success: overlayroot: configured root with 'device:dev=PARTLABEL=userdata,fstype=ext4,mkfs=1' using overlay per kernel cmdline
Warning: Something odd, no /lib/modules/4.19.111 in initramfs.
done.
[    3.886249] EXT4-fs error (device mmcblk0p6): ext4_lookup:1706: inode #2: comm run-init: deleted inode referenced: 169313
run-init: /sbin/init: Structure needs cleaning
Target filesystem doesn't have requested /sbin/init.
[    3.890317] EXT4-fs error (device mmcblk0p6): ext4_lookup:1706: inode #2: comm run-init: deleted inode referenced: 169313
run-init: /sbin/init: Structure needs cleaning
run-init: /etc/init: No such file or directory
run-init: /bin/init: No such file or directory
/bin/sh: 0: can't access tty; job control turned off

我不确定是否和 ext2 有关系,但尝试了更改以下强行指定为 ext4:
mount -t ext4 /dev/sda1 /media/usb_drive
##最终测试结果,依然失败。
./ff_export_rootfs /media/usb_drive/ -t ext4
##此命令不支持指定为 ext4,  仅支持显示指定为:  ext2

还请帮忙看一下



none.zip

154 Bytes, 下载次数: 2, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-9-7 16:44:11      沙发
时间的蝴蝶 发表于 2022-9-7 16:38
ff_export_rootfs_buildroot 这个脚本是用来导出 ext2 的 rootfs 的,你可以看下里面执行的命令;固件本身 ...

请问我第一次打包和导出,也是用的 ff_export_rootfs_buildroot ,它导出的 .img 文件名是类似 Firefly_ext4_202206170232.img 这样的, 文件名里面也包含了  ext4  这个字段,说明它是能导出 ext4 格式的,为什么我第二次打包,再使用此命令的时候,导出文件却变成了  ext2  的呢
回复

使用道具 举报

154

积分

0

威望

0

贡献

技术小白

积分
154
发表于 2022-9-8 18:06:17      板凳
本帖最后由 music1913 于 2022-9-8 18:27 编辑
时间的蝴蝶 发表于 2022-9-7 16:38
ff_export_rootfs_buildroot 这个脚本是用来导出 ext2 的 rootfs 的,你可以看下里面执行的命令;固件本身 ...

我觉得可能需要澄清一下我的问题。
我的目标是随着我业务的变化,我需不断的打包固件(安装新的私有程序),且每次打包都是在上一次的基础上进行,而不用从官方的Debian从头开始。

我第一次从官方debian上打包出来的固件(称: 第一个打包固件),是可以成功加到板子上的。 现在问题是出在,我基于 第一个打包固件 的基础上,进入Debian系统后,我用和第一次完全一样的打包工具,又进行第二次打包时,得到了 ex2的 第二个打包固件 后,再加载 第二个打包固件 到板子上时出现不能正常启动系。
以上打包均使用的是这个工具:ff_export_rootfs_buildroot/ff_export_rootfs

我刚才又将 第一个打包固件  写入到板子上,一切正常,进入系统后,可以看到rootfs就已经是ext2了:

root@firefly:~# parted -l
Error: /dev/mmcblk0boot0: unrecognised disk label
Model: Generic SD/MMC Storage Card (sd/mmc)
Disk /dev/mmcblk0boot0: 4194kB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Error: /dev/mmcblk0boot1: unrecognised disk label
Model: Generic SD/MMC Storage Card (sd/mmc)
Disk /dev/mmcblk0boot1: 4194kB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

Model: MMC AJTD4R (sd/mmc)
Disk /dev/mmcblk0: 15.6GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name      Flags
1      8389kB  12.6MB  4194kB               uboot
2      12.6MB  16.8MB  4194kB               misc
3      16.8MB  50.3MB  33.6MB               boot
4      50.3MB  83.9MB  33.6MB               recovery
5      83.9MB  117MB   33.6MB               backup
6      117MB   6560MB  6442MB  ext2         rootfs
7      6560MB  6761MB  201MB   ext4         oem
8      6761MB  15.6GB  8873MB  ext2         userdata


同时,我用您在回复里给的新的打包工具(其提示安装 rsync试着 第一个打包固件 的系统,安装一些私有程序后,再次打包,可以看到,此工具导出的仍然是ext2 的分区固件内容:
root@firefly:/home/firefly/Download# ./ff_export_rootfs /media/usb_drive/
MEDIA FREE SPACE SIZE    55975   MBytes
EXPORT IMAGE SIZE        6863    MBytes
./ff_export_rootfs: line 157: lsb_release: command not found
BLOCK_COUNT 7378262
INODE_COUNT 144566
[ 2068.783566] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts:                                                                                   (null)
sync...
sync finish
Export rootfs to /media/usb_drive//Firefly__ext2_202209080949.img Success

还请帮忙查看。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表