Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: .... is not a btrfs mountpoint (or old version of btrfs-tools, try > 0.19) Ubuntu 20.04 #30

Open
axeljacobs opened this issue Feb 18, 2022 · 0 comments

Comments

@axeljacobs
Copy link

btrfs-snap version: 1.7.3
btrfs-progs version : 5.4.1
root btrfs volume : /var/fileserver
btrfs subvolume : /var/fileserver/data/active

When Verifying that the path is either a valid btrfs mountpoint or a subvolume

# Verify that the path is either a valid btrfs mountpoint
mount -t btrfs | cut -d " " -f 3 | grep "^${mp}$" > /dev/null
if [ $? -ne 0 ] ; then
    # or a valid snapshot matching mp
    btrfs subvolume show $mp | grep "${mp}$" > /dev/null
    if [ $? -ne 0 ] ; then
        log.error "${mp} is not a btrfs mountpoint (or old version of btrfs-tools, try > 0.19)"
        exit 1;
    fi
fi

with btrfs-progs version 4.4:
btrfs subvolume show /var/fileserver/data/active
the output would look like this:

/var/fileserver/data/active
        Name:                   active
        UUID:                   84638c7b-742f-3c4a-a6ba-6d64b82cba71
        Parent UUID:            -
        Received UUID:          -
        Creation time:          2018-02-10 15:02:47 +0100
        Subvolume ID:           260
        Generation:             233633
        Gen at creation:        25
        Parent ID:              5
        Top level ID:           5
        Flags:                  -
        Snapshot(s):

with btrfs-progs version 5.4.1:
the same command btrfs subvolume show /var/fileserver/data/active output:

data/active
        Name:                   active
        UUID:                   57e8d80f-99b6-394d-9b12-bc766e0a249a
        Parent UUID:            -
        Received UUID:          -
        Creation time:          2022-02-17 13:54:53 +0000
        Subvolume ID:           258
        Generation:             308
        Gen at creation:        8
        Parent ID:              5
        Top level ID:           5
        Flags:                  -
        Snapshot(s):

the "full" path is not present anymore /var/fileserver/data/active != data/active

the command btrfs subvolume show $mp | grep "${mp}$" will always retrun exit code 1 leading the script to stop.

A solution is to adapt the script like this, in order to grep the correct subvolume name :

# Verify that the path is either a valid btrfs mountpoint
mount -t btrfs | cut -d " " -f 3 | grep "^${mp}$" > /dev/null
if [ $? -ne 0 ] ; then
    # or a valid snapshot matching mp
    # Get the path of the root volume as a prefix
    rv=$(mount -t btrfs | cut -d " " -f 3)
    # Remove the prefix with the / from the full path
    vn=${mp#"$rv/"}
    btrfs subvolume show $mp | grep "$vn" > /dev/null
    if [ $? -ne 0 ] ; then
        log.error "${mp} is not a btrfs mountpoint (or old version of btrfs-tools, try > 0.19)"
        exit 1;
    fi
fi

Hope it helps someone....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant