可读写文件系统修改
分区报错问题
[ 2.700991] UBI error: process_eb: bad image sequence number 1012547571 in PEB 1988, expected 299771203
[ 2.710912] slab error in kmem_cache_destroy(): cache `ubi_scan_leb_slab': Can't free all objects
[ 2.720259] Backtrace:
[ 2.722880] [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
[ 2.731774] r6:df24b000 r5:df2774c0 r4:df17a0c0 r3:c05a8748
[ 2.737779] [] (dump_stack+0x0/0x1c) from [] (kmem_cache_destroy+0xd0/0x104)
[ 2.747061] [] (kmem_cache_destroy+0x0/0x104) from [] (ubi_scan+0x1b4/0xa24)
[ 2.756301] r4:000007c4 r3:df2ce000
[ 2.760102] [] (ubi_scan+0x0/0xa24) from [] (ubi_attach_mtd_dev+0x4a8/0xa0c)
[ 2.769387] [] (ubi_attach_mtd_dev+0x0/0xa0c) from [] (ubi_init+0x204/0x2f0)
[ 2.778661] [] (ubi_init+0x0/0x2f0) from [] (do_one_initcall+0x3c/0x180)
[ 2.787562] [] (do_one_initcall+0x0/0x180) from [] (kernel_init+0x9c/0x130)
[ 2.796748] [] (kernel_init+0x0/0x130) from [] (do_exit+0x0/0x67c)
[ 2.805075] r5:c054b7e8 r4:00000000
[ 2.809660] UBI error: ubi_init: cannot attach mtd7
[ 1.760742] Detected MACID=7c:66:9d:1d:6e:69
[ 1.766540] cpsw: Detected MACID = 7c:66:9d:1d:6e:6b
[ 1.774353] rtc-ds1307 1-0068: setting system clock to 2015-07-24 10:05:08 UTC (1437732308)
[ 1.783691] List of all partitions:
[ 1.787445] 1f00 128 mtdblock0 (driver?)
[ 1.792785] 1f01 128 mtdblock1 (driver?)
[ 1.798126] 1f02 128 mtdblock2 (driver?)
[ 1.803436] 1f03 128 mtdblock3 (driver?)
[ 1.808776] 1f04 1920 mtdblock4 (driver?)
[ 1.814117] 1f05 128 mtdblock5 (driver?)
[ 1.819458] 1f06 5120 mtdblock6 (driver?)
[ 1.824768] 1f07 516608 mtdblock7 (driver?)
[ 1.830108] No filesystem could mount root, tried: ubifs
[ 1.835784] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 1.844482] Backtrace:
修改分区的时候需要注意了,分区需要块对齐,parameter.txt他是扇区单位,但是我们需要注意的是一个块是256个扇区,这里分区表里面要满足是256个扇区的整数倍
一个扇区512个字节,一个块256个扇区,一块就是128KB
rootfs文件系统删除目录
--- a/project/buildroot/package/rockchip/rkscript/rkscript.mk
+++ b/project/buildroot/package/rockchip/rkscript/rkscript.mk
@@ -51,7 +51,7 @@ define RKSCRIPT_INSTALL_TARGET_CMDS
echo -e "/dev/block/by-name/userdata\t/userdata\t\t$$RK_USERDATA_FS_TYPE\t\tdefaults\t\t0\t2" >> $(TARGET_DIR)/etc/fstab;
fi
- cd $(TARGET_DIR) && rm -rf userdata data mnt udisk sdcard && mkdir -p userdata mnt/sdcard && ln -s userdata data && ln -s media/usb0 udisk && ln -s mnt/sdcard sdcard && cd -
- cd $(TARGET_DIR) && rm -rf userdata data mnt udisk sdcard && mkdir -p mnt/sdcard && ln -s media/usb0 udisk && ln -s mnt/sdcard sdcard && cd - if echo $(BR2_PACKAGE_RK_OEM_INSTALL_TARGET_DIR) | grep $(TARGET_DIR); then echo "Found build oem into target...";else rm -rf $(TARGET_DIR)/oem && mkdir -p $(TARGET_DIR)/oem; fi if test -e $(RKSCRIPT_USB_CONFIG_FILE) ; then \ rm $(RKSCRIPT_USB_CONFIG_FILE) ; \
这个操作可以把userdata目录给删掉还有userdata的软连接也删掉。
recovery-ubifs-overlay/etc/fstab 文件通常是 Android 系统中的一个文件,用于描述系统中各个文件系统的挂载信息。在 Android 系统中,这个文件通常被称为 "fstab"(File System Table)文件。
这个文件包含了一系列的条目,每个条目描述了一个文件系统的挂载信息,包括设备节点、挂载点、文件系统类型、挂载选项等。这些信息用于告诉系统在启动时如何挂载各个文件系统。
例如,一个 typcial 的 Android fstab 文件可能看起来像这样:
# Android fstab file. # The filesystem that contains the filesystem checker binary (typically /system) cannot # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK /dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait /dev/block/bootdevice/by-name/vendor /vendor ext4 ro,barrier=1 wait /dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check /dev/block/bootdevice/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
在这个例子中,每一行都描述了一个文件系统的挂载信息,包括设备节点、挂载点、文件系统类型和挂载选项。例如,第一行描述了一个 ext4 类型的文件系统,它将 /dev/block/bootdevice/by-name/system 设备挂载到 /system 目录上,并指定了一些挂载选项(如只读、等待挂载等)。
这个文件对于 Android 系统的启动和运行非常重要,因为它定义了系统中各个关键文件系统的挂载方式和选项。