X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mount-latest-subvol;h=d2e41f33f7e4f65388019d28b068d8860ebad8aa;hb=ce4cacd36c5b5babeea85d0f93771017e6169180;hp=d6af39259c7460ab24cd35f78caaf6cac54d07aa;hpb=40dd151ec6ba75633c74568da59e35a45351f194;p=distro-setup diff --git a/mount-latest-subvol b/mount-latest-subvol index d6af392..d2e41f3 100644 --- a/mount-latest-subvol +++ b/mount-latest-subvol @@ -37,6 +37,8 @@ EOF exit $1 } +all_vols=(q a o i ar qr) + tu() { while read -r line; do @@ -132,6 +134,7 @@ umount-kill() { } # duplicated in check-subvol +# Reassign $1 var from /dev/dm- to corresponding /dev/mapper/ mapper-dev() { local mapdev local -n devref=$1 @@ -185,8 +188,15 @@ if [[ -e /mnt/root/root2-fstab ]]; then mnt /mnt/boot2 fi +do_o=true root_dev=$(awk '$2 == "/" {print $1}' /etc/mtab) mapper-dev root_dev +o_dev=$(awk '$2 == "/mnt/o" {print $1}' /etc/mtab) +mapper-dev o_dev + +if [[ $o_dev == "$root_dev" ]]; then + do_o=false +fi # root2_dev=$(awk '$2 == "/mnt/root2" {print $1}' /etc/mtab) # mapper-dev root2_dev @@ -198,6 +208,7 @@ if cryptsetup status $root_dev &>/dev/null; then crypt_dev=$root_dev else # if we are in a recovery boot, find the next best crypt device mopts=,noauto + do_o=false for dev in $(dmsetup ls --target crypt | awk '{print $1}'); do dev=/dev/mapper/$dev if awk '{print $1}' /etc/mtab | grep -Fx $dev &>/dev/null; then @@ -232,12 +243,14 @@ $crypt_dev /q btrfs noatime,subvol=q,gid=1000$mopts 0 0 EOF fi -f=(/mnt/root/btrbk/o.*); f=${f[0]} +f=(/mnt/o/btrbk/o.*); f=${f[0]} if [[ -e $f ]]; then fstab </dev/null; then continue @@ -308,10 +321,11 @@ for vol in q a o i; do continue fi - if [[ $vol == q ]]; then - # allow to fail, user might not be logged in - x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop arbtt ||: - fi + ## not using arbtt at the moment + # if [[ $vol == q ]]; then + # ## allow to fail, user might not be logged in + # x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user stop arbtt ||: + # fi umount_ret=true unmounted=() for dir in $(echo $d ${binds[*]}\ |tac -s\ ); do @@ -365,7 +379,7 @@ for vol in q a o i; do #pi python-jmespath # dependency of btrfs-snapshots-diff # todo: need python3 port of btrfs-snapshots-diff, py2 no exist on nabia parentid=$(btrfs sub show $leaf | awk '$1 == "Parent" && $2 == "UUID:" {print $3}') - bsubs=(/mnt/root/btrbk/$vol.*) + bsubs=(btrbk/$vol.*) bsub= # go in reverse order as its more likely to be at the end for ((i=${#bsubs[@]}-1; i>=0; i--)); do @@ -408,8 +422,8 @@ for vol in q a o i; do ## begin expire leaf vols ## leaf_vols=($vol.leaf.*) count=${#leaf_vols[@]} - leaf_limit_time=$(( $(date +%s) - 60*60*24*60 )) # 60 days - leaf_new_limit_time=$(( $(date +%s) - 60*60*24 )) # 1 day + leaf_limit_time=$(( EPOCHSECONDS - 60*60*24*60 )) # 60 days + leaf_new_limit_time=$(( EPOCHSECONDS - 60*60*24 )) # 1 day # this goes backwards from oldest. leaf_new_limit_time is just in case # the order gets screwed up or something. for leaf in ${leaf_vols[@]}; do @@ -430,10 +444,13 @@ for vol in q a o i; do for dir in $d ${binds[@]}; do m mnt $dir done - if [[ $vol == q ]]; then - # maybe this will fail if X is not running - x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start arbtt ||: - fi + + ## arbtt disabled for now + # if [[ $vol == q ]]; then + # # maybe this will fail if X is not running + # x sudo -u $(id -nu 1000) XDG_RUNTIME_DIR=/run/user/1000 systemctl --user start arbtt ||: + # fi + stale_dir=/nocow/btrfs-stale rm -f $stale_dir/$d done