summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2021-06-22 08:40:47 -0500
committerJohn Klug <john.klug@multitech.com>2021-06-22 08:40:47 -0500
commitd6f2eef5c1cc5d5e177f066297744f4af92a3594 (patch)
tree26934e03983872b26b0ade1b01ca96d80095ca8d
parent1529a616147d98028310105864619aff06b1d086 (diff)
downloadmeta-mlinux-d6f2eef5c1cc5d5e177f066297744f4af92a3594.tar.gz
meta-mlinux-d6f2eef5c1cc5d5e177f066297744f4af92a3594.tar.bz2
meta-mlinux-d6f2eef5c1cc5d5e177f066297744f4af92a3594.zip
rev 1 initrdscripts
-rwxr-xr-xrecipes-core/initrdscripts/files/init-readonly-rootfs-overlay-boot.sh24
-rw-r--r--recipes-core/initrdscripts/initramfs-readonly-rootfs-overlay_1.0.bb2
-rw-r--r--recipes-core/initrdscripts/initscripts-readonly-rootfs-overlay_1.0.bb2
3 files changed, 25 insertions, 3 deletions
diff --git a/recipes-core/initrdscripts/files/init-readonly-rootfs-overlay-boot.sh b/recipes-core/initrdscripts/files/init-readonly-rootfs-overlay-boot.sh
index 199fc17..ac79429 100755
--- a/recipes-core/initrdscripts/files/init-readonly-rootfs-overlay-boot.sh
+++ b/recipes-core/initrdscripts/files/init-readonly-rootfs-overlay-boot.sh
@@ -69,6 +69,7 @@ ROOT_RWDEVICE=""
ROOT_ROMOUNT="/run/media/rfs/ro"
ROOT_RWMOUNT="/run/media/rfs/rw"
ROOT_RWRESET="no"
+DO_ERASE_USERDATA_FILE="$ROOT_RWMOUNT/.persistent/mts_do_erase_userdata"
ROOT_ROFSTYPE=""
ROOT_ROMOUNTOPTIONS="bind"
@@ -240,7 +241,7 @@ mount_and_boot() {
log "Detected user_data partition with ${BASH_REMATCH[1]} file system"
else
log "Create new user_data partition ext4 file system"
- mkfs.ext4 -O 64bit $userdata
+ mkfs.ext4 -L user_data -O 64bit $userdata
fi
ROOT_RWDEVICE="$userdata"
fi # Found user_data GPT partition
@@ -271,14 +272,31 @@ mount_and_boot() {
log "user_data: $MOUNT $ROOT_RWMOUNTPARAMS $ROOT_RWMOUNT"
# Mount read-write file system into initram root file system
if ! $MOUNT $ROOT_RWMOUNTPARAMS $ROOT_RWMOUNT ; then
- fatal "Could not mount read-write rootfs"
+ if [ -n "${ROOT_RWDEVICE}" ]; then
+ # fsck didn't help. Reformat the partition
+ log "Could not mount user_data partition. Erasing ${ROOT_RWDEVICE}."
+ mkfs.ext4 -L user_data -O 64bit ${ROOT_RWDEVICE}
+ log "mounting user_data: $MOUNT $ROOT_RWMOUNTPARAMS $ROOT_RWMOUNT"
+ if ! $MOUNT $ROOT_RWMOUNTPARAMS $ROOT_RWMOUNT ; then
+ fatal "Could not mount read-write rootfs."
+ fi
+ log "${ROOT_RWDEVICE} partition has been erased and mounted successfully."
+ else
+ fatal "Could not mount user_data partition."
+ fi
fi
# Reset read-write file system if specified
log "ROOT_RWRESET=$ROOT_RWRESET ROOT_RWMOUNT=$ROOT_RWMOUNT"
if [ "yes" == "$ROOT_RWRESET" -a -n "${ROOT_RWMOUNT}" ]; then # JAK
- log "Removing user_data files"
+ log "Removing user_data files"
rm -rf $ROOT_RWMOUNT/*
+ if [ -f $DO_ERASE_USERDATA_FILE ]; then
+ log "Removing persistent user_data files"
+ shopt -s dotglob
+ rm -rf $ROOT_RWMOUNT/*
+ shopt -u dotglob
+ fi
log "Completed removal of user_data files"
fi
diff --git a/recipes-core/initrdscripts/initramfs-readonly-rootfs-overlay_1.0.bb b/recipes-core/initrdscripts/initramfs-readonly-rootfs-overlay_1.0.bb
index 164d394..b068950 100644
--- a/recipes-core/initrdscripts/initramfs-readonly-rootfs-overlay_1.0.bb
+++ b/recipes-core/initrdscripts/initramfs-readonly-rootfs-overlay_1.0.bb
@@ -6,3 +6,5 @@ do_install_append() {
}
FILES_${PN} += "/dev"
+
+PR= "r1"
diff --git a/recipes-core/initrdscripts/initscripts-readonly-rootfs-overlay_1.0.bb b/recipes-core/initrdscripts/initscripts-readonly-rootfs-overlay_1.0.bb
index 9428356..3a958a1 100644
--- a/recipes-core/initrdscripts/initscripts-readonly-rootfs-overlay_1.0.bb
+++ b/recipes-core/initrdscripts/initscripts-readonly-rootfs-overlay_1.0.bb
@@ -1 +1,3 @@
require readonly-rootfs-overlay-init-script.inc
+
+PR= "r1"