mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-30 10:50:31 +03:00
prepare-root: set up /boot bind-mount for single partition systems
When booting from a system with /boot on the main partition, set up an appropriate bind mount during boot. The ostree runtime binary expects to be able to access the bootloader configs at /boot. See: https://mail.gnome.org/archives/ostree-list/2015-July/msg00015.html https://bugzilla.gnome.org/show_bug.cgi?id=756267
This commit is contained in:
parent
2210a79bfa
commit
598530daf4
@ -194,6 +194,23 @@ main(int argc, char *argv[])
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* If /boot is on the same partition, use a bind mount to make it visible
|
||||
* at /boot inside the deployment. */
|
||||
snprintf (srcpath, sizeof(srcpath), "%s/boot/loader", root_mountpoint);
|
||||
if (lstat (srcpath, &stbuf) == 0 && S_ISLNK (stbuf.st_mode))
|
||||
{
|
||||
snprintf (destpath, sizeof(destpath), "%s/boot", newroot);
|
||||
if (lstat (destpath, &stbuf) == 0 && S_ISDIR (stbuf.st_mode))
|
||||
{
|
||||
snprintf (srcpath, sizeof(srcpath), "%s/boot", root_mountpoint);
|
||||
if (mount (srcpath, destpath, NULL, MS_BIND, NULL) < 0)
|
||||
{
|
||||
perrorv ("failed to bind mount %s to %s", srcpath, destpath);
|
||||
exit (EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Set up any read-only bind mounts (notably /usr) */
|
||||
for (i = 0; readonly_bind_mounts[i] != NULL; i++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user