if (m) {
char *target = m->target;
- char _target[] = "/mnt/mmcblk123";
+ char _target[32];
int err = 0;
if (!target) {
if (!strcmp(pr->dev, fs)) {
struct stat s;
FILE *fp = NULL;
- char tag[32];
+ char tag[64];
char uuid[32] = { 0 };
snprintf(tag, sizeof(tag), "%s/etc/.extroot-uuid", path);
static int mount_extroot(char *cfg)
{
- char overlay[] = "/tmp/overlay";
- char mnt[] = "/tmp/mnt";
+ char overlay[] = "/tmp/extroot/overlay";
+ char mnt[] = "/tmp/extroot/mnt";
char *path = mnt;
struct blkid_struct_probe *pr;
struct mount *m;
if (config_load(NULL))
return -1;
- cache_load(0);
+ cache_load(1);
list_for_each_entry(pr, &devices, list)
mount_device(pr, 0);
struct stat s;
int err;
- if (stat(argv[1], &s) || !S_ISBLK(s.st_mode)) {
- fprintf(stderr, "%s is not a block device\n", argv[1]);
+ if (stat(argv[1], &s) || (!S_ISBLK(s.st_mode) && !S_ISREG(s.st_mode))) {
+ fprintf(stderr, "%s is not a block device or file\n", argv[1]);
return -1;
}
err = swapon(argv[1], 0);
struct stat s;
int err;
- if (stat(argv[1], &s) || !S_ISBLK(s.st_mode)) {
- fprintf(stderr, "%s is not a block device\n", argv[1]);
+ if (stat(argv[1], &s) || (!S_ISBLK(s.st_mode) && !S_ISREG(s.st_mode))) {
+ fprintf(stderr, "%s is not a block device or file\n", argv[1]);
return -1;
}
err = swapoff(argv[1]);