diff --git a/fs_mgr/fs_mgr_overlayfs.cpp b/fs_mgr/fs_mgr_overlayfs.cpp index 4ac78e1d2..89847524d 100644 --- a/fs_mgr/fs_mgr_overlayfs.cpp +++ b/fs_mgr/fs_mgr_overlayfs.cpp @@ -159,6 +159,9 @@ bool fs_mgr_overlayfs_enabled(FstabEntry* entry) { auto save_errno = errno; errno = 0; auto has_shared_blocks = fs_mgr_has_shared_blocks(entry->mount_point, entry->blk_device); + if (!has_shared_blocks && (entry->mount_point == "/system")) { + has_shared_blocks = fs_mgr_has_shared_blocks("/", entry->blk_device); + } // special case for first stage init for system as root (taimen) if (!has_shared_blocks && (errno == ENOENT) && (entry->blk_device == "/dev/root")) { has_shared_blocks = true; diff --git a/fs_mgr/fs_mgr_remount.cpp b/fs_mgr/fs_mgr_remount.cpp index 093d44d41..cbe2008a0 100644 --- a/fs_mgr/fs_mgr_remount.cpp +++ b/fs_mgr/fs_mgr_remount.cpp @@ -371,17 +371,13 @@ int main(int argc, char* argv[]) { continue; } } - PLOG(WARNING) << "failed to remount partition dev:" << blk_device << " mnt:" << mount_point; - // If errno = EROFS at this point, we are dealing with r/o + PLOG(ERROR) << "failed to remount partition dev:" << blk_device << " mnt:" << mount_point; + // If errno is EROFS at this point, we are dealing with r/o // filesystem types like squashfs, erofs or ext4 dedupe. We will // consider such a device that does not have CONFIG_OVERLAY_FS - // in the kernel as a misconfigured; except for ext4 dedupe. - if ((errno == EROFS) && can_reboot) { - const std::vector msg = {"--fsck_unshare_blocks"}; - std::string err; - if (write_bootloader_message(msg, &err)) reboot(true); - LOG(ERROR) << "Failed to set bootloader message: " << err; - errno = EROFS; + // in the kernel as a misconfigured. + if (errno == EROFS) { + LOG(ERROR) << "Consider providing all the dependencies to enable overlayfs"; } retval = REMOUNT_FAILED; }