mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-06 20:47:00 +02:00
fix(*): use /media/state and overlays dir
/mnt/stateful_partition was already a little unruly with /mnt/stateful_partition/home and /mnt/stateful_partition/var_overlay serving similar functional purposes. Then we needed to also add /opt and /srv overlays. I also have wanted to get rid of the ugly and weird /mnt/stateful_partition name so lets just have one big move. /mnt/stateful_partition -> /media/state /mnt/stateful_partition/var_overlay -> /media/overlays/var /mnt/stateful_partition/home -> /media/overlays/home From there we add /media/overlays/srv and /media/overlays/opt
This commit is contained in:
parent
0ece58228f
commit
cf8be2c320
@ -28,4 +28,4 @@ STATE="${ROOT}-STATE"
|
|||||||
|
|
||||||
[ -d "$STATE" ] || sudo mkdir -p "$STATE"
|
[ -d "$STATE" ] || sudo mkdir -p "$STATE"
|
||||||
sudo systemd-nspawn --boot --read-only --machine="$HOSTNAME-$BOARD" \
|
sudo systemd-nspawn --boot --read-only --machine="$HOSTNAME-$BOARD" \
|
||||||
--directory="$ROOT" --bind="$STATE:/mnt/stateful_partition"
|
--directory="$ROOT" --bind="$STATE:/media/state"
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
|
|
||||||
. "${SRC_ROOT}/platform/dev/toolchain_utils.sh" || exit 1
|
. "${SRC_ROOT}/platform/dev/toolchain_utils.sh" || exit 1
|
||||||
|
|
||||||
|
# Overlays are parts of the disk that live on the stateful partition
|
||||||
|
ROOT_OVERLAYS=(var opt srv home)
|
||||||
|
|
||||||
cleanup_mounts() {
|
cleanup_mounts() {
|
||||||
local prev_ret=$?
|
local prev_ret=$?
|
||||||
|
|
||||||
@ -142,21 +145,28 @@ create_base_image() {
|
|||||||
sudo mount -o loop "${oem_fs_img}" "${oem_fs_dir}"
|
sudo mount -o loop "${oem_fs_img}" "${oem_fs_dir}"
|
||||||
|
|
||||||
# Prepare stateful partition with some pre-created directories.
|
# Prepare stateful partition with some pre-created directories.
|
||||||
sudo mkdir "${stateful_fs_dir}/dev_image"
|
for i in ${ROOT_OVERLAYS}; do
|
||||||
sudo mkdir "${stateful_fs_dir}/var_overlay"
|
sudo mkdir -p "${stateful_fs_dir}/overlays/$i"
|
||||||
|
sudo mkdir -p "${root_fs_dir}/$i"
|
||||||
|
sudo mount --bind "${stateful_fs_dir}/overlays/$i" "${root_fs_dir}/$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo mkdir -p "${stateful_fs_dir}/images/dev"
|
||||||
|
|
||||||
# Create symlinks so that /usr/local/usr based directories are symlinked to
|
# Create symlinks so that /usr/local/usr based directories are symlinked to
|
||||||
# /usr/local/ directories e.g. /usr/local/usr/bin -> /usr/local/bin, etc.
|
# /usr/local/ directories e.g. /usr/local/usr/bin -> /usr/local/bin, etc.
|
||||||
setup_symlinks_on_root "${stateful_fs_dir}/dev_image" \
|
setup_symlinks_on_root "${stateful_fs_dir}/images/dev" \
|
||||||
"${stateful_fs_dir}/var_overlay" "${stateful_fs_dir}"
|
"${stateful_fs_dir}/overlays/var" \
|
||||||
|
"${stateful_fs_dir}"
|
||||||
|
|
||||||
# Perform binding rather than symlinking because directories must exist
|
# Perform binding rather than symlinking because directories must exist
|
||||||
# on rootfs so that we can bind at run-time since rootfs is read-only.
|
# on rootfs so that we can bind at run-time since rootfs is read-only.
|
||||||
info "Binding directories from stateful partition onto the rootfs"
|
info "Binding directories from stateful partition onto the rootfs"
|
||||||
|
|
||||||
|
# Setup the dev image for developer tools
|
||||||
sudo mkdir -p "${root_fs_dir}/usr/local"
|
sudo mkdir -p "${root_fs_dir}/usr/local"
|
||||||
sudo mount --bind "${stateful_fs_dir}/dev_image" "${root_fs_dir}/usr/local"
|
sudo mount --bind "${stateful_fs_dir}/images/dev" "${root_fs_dir}/usr/local"
|
||||||
sudo mkdir -p "${root_fs_dir}/var"
|
|
||||||
sudo mount --bind "${stateful_fs_dir}/var_overlay" "${root_fs_dir}/var"
|
|
||||||
sudo mkdir -p "${root_fs_dir}/dev"
|
sudo mkdir -p "${root_fs_dir}/dev"
|
||||||
|
|
||||||
info "Binding directories from OEM partition onto the rootfs"
|
info "Binding directories from OEM partition onto the rootfs"
|
||||||
|
@ -735,7 +735,7 @@ setup_symlinks_on_root() {
|
|||||||
# Give args better names.
|
# Give args better names.
|
||||||
local dev_image_target=$1
|
local dev_image_target=$1
|
||||||
local var_target=$2
|
local var_target=$2
|
||||||
local dev_image_root="$3/dev_image"
|
local dev_image_root="$3/images/dev"
|
||||||
|
|
||||||
# If our var target is actually the standard var, we are cleaning up the
|
# If our var target is actually the standard var, we are cleaning up the
|
||||||
# symlinks (could also check for /usr/local for the dev_image_target).
|
# symlinks (could also check for /usr/local for the dev_image_target).
|
||||||
|
@ -179,15 +179,15 @@ mount_image() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mount directories and setup symlinks.
|
# Mount directories and setup symlinks.
|
||||||
sudo mount --bind "${FLAGS_stateful_mountpt}/var_overlay" \
|
sudo mount --bind "${FLAGS_stateful_mountpt}/overlays/var" \
|
||||||
"${FLAGS_rootfs_mountpt}/var"
|
"${FLAGS_rootfs_mountpt}/var"
|
||||||
sudo mount --bind "${FLAGS_stateful_mountpt}/dev_image" \
|
sudo mount --bind "${FLAGS_stateful_mountpt}/images/dev" \
|
||||||
"${FLAGS_rootfs_mountpt}/usr/local"
|
"${FLAGS_rootfs_mountpt}/usr/local"
|
||||||
# Setup symlinks in /usr/local so you can emerge packages into /usr/local.
|
# Setup symlinks in /usr/local so you can emerge packages into /usr/local.
|
||||||
|
|
||||||
if [ ${FLAGS_read_only} -eq ${FLAGS_FALSE} ]; then
|
if [ ${FLAGS_read_only} -eq ${FLAGS_FALSE} ]; then
|
||||||
setup_symlinks_on_root "${FLAGS_stateful_mountpt}/dev_image" \
|
setup_symlinks_on_root "${FLAGS_stateful_mountpt}/images/dev" \
|
||||||
"${FLAGS_stateful_mountpt}/var_overlay" "${FLAGS_stateful_mountpt}"
|
"${FLAGS_stateful_mountpt}/overlays/var" "${FLAGS_stateful_mountpt}"
|
||||||
fi
|
fi
|
||||||
info "Image specified by ${FLAGS_from} mounted at"\
|
info "Image specified by ${FLAGS_from} mounted at"\
|
||||||
"${FLAGS_rootfs_mountpt} successfully."
|
"${FLAGS_rootfs_mountpt} successfully."
|
||||||
|
Loading…
Reference in New Issue
Block a user