void load_volume_table() { int i; int ret; fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); if (!fstab) { LOGE("failed to read /etc/recovery.fstab\n"); return; } ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk"); if (ret < 0 ) { LOGE("failed to add /tmp entry to fstab\n"); fs_mgr_free_fstab(fstab); fstab = NULL; return; } printf("recovery filesystem table\n"); printf("=========================\n"); for (i = 0; i < fstab->num_entries; ++i) { Volume* v = &fstab->recs[i]; printf(" %d %s %s %s %lld\n", i, v->mount_point, v->fs_type, v->blk_device, v->length); } printf("\n"); }
void load_volume_table() { int i; int ret; fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); if (!fstab) { LOGE("failed to read /etc/recovery.fstab\n"); return; } ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk"); if (ret < 0 ) { LOGE("failed to add /tmp entry to fstab\n"); fs_mgr_free_fstab(fstab); fstab = NULL; return; } // Create a boring /etc/fstab so tools like Busybox work FILE *file = fopen("/etc/fstab", "w"); if (file == NULL) { LOGW("Unable to create /etc/fstab!\n"); return; } is_datamedia = 1; printf("recovery filesystem table\n"); printf("=========================\n"); for (i = 0; i < fstab->num_entries; ++i) { fstab_rec* v = &fstab->recs[i]; printf(" %d %s %s %s %lld\n", i, v->mount_point, v->fs_type, v->blk_device, v->length); write_fstab_entry(v, file); if (is_volume_primary_storage(v)) { is_datamedia = 0; } } fclose(file); printf("\n"); }
void load_volume_table() { int i; int ret; fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); if (!fstab) { LOGE("failed to read /etc/recovery.fstab\n"); LOGE("try read other fstab\n"); fstab = mt_read_fstab(); if (!fstab) { LOGE("failed to read fstab\n"); return; } } ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk"); if (ret < 0 ) { LOGE("failed to add /tmp entry to fstab\n"); fs_mgr_free_fstab(fstab); fstab = NULL; return; } ret = mt_load_volume_table(fstab); if (ret < 0 ) { LOGE("mt_load_volume_table fail to add entry to fstab\n"); fs_mgr_free_fstab(fstab); fstab = NULL; return; } mt_ensure_dev_ready("/misc"); mt_ensure_dev_ready("/cache"); mt_fstab_translation_NAND(fstab); printf("recovery filesystem table\n"); printf("=========================\n"); for (i = 0; i < fstab->num_entries; ++i) { Volume* v = &fstab->recs[i]; printf(" %d %s %s %s %lld\n", i, v->mount_point, v->fs_type, v->blk_device, v->length); } printf("\n"); }
void load_volume_table() { int i; int ret; fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); if (!fstab) { LOGE("failed to read /etc/recovery.fstab\n"); return; } ret = fs_mgr_add_entry(fstab, "/tmp", "ramdisk", "ramdisk", 0); if (ret < 0 ) { LOGE("failed to add /tmp entry to fstab\n"); fs_mgr_free_fstab(fstab); fstab = NULL; return; } // Process vold-managed volumes with mount point "auto" for (i = 0; i < fstab->num_entries; ++i) { Volume* v = &fstab->recs[i]; if (fs_mgr_is_voldmanaged(v) && strcmp(v->mount_point, "auto") == 0) { char mount[PATH_MAX]; // Set the mount point to /storage/label which as used by vold snprintf(mount, PATH_MAX, "/storage/%s", v->label); free(v->mount_point); v->mount_point = strdup(mount); } } fprintf(stderr, "recovery filesystem table\n"); fprintf(stderr, "=========================\n"); for (i = 0; i < fstab->num_entries; ++i) { Volume* v = &fstab->recs[i]; fprintf(stderr, " %d %s %s %s %lld\n", i, v->mount_point, v->fs_type, v->blk_device, v->length); } fprintf(stderr, "\n"); }