Skip to content

Unmount less aggressively in destroy script#54

Open
rcsanchez97 wants to merge 1 commit into
alpinelinux:masterfrom
rcsanchez97:fix_destroy_script
Open

Unmount less aggressively in destroy script#54
rcsanchez97 wants to merge 1 commit into
alpinelinux:masterfrom
rcsanchez97:fix_destroy_script

Conversation

@rcsanchez97

Copy link
Copy Markdown

As I was creating and removing chroots I noticed that if two chroots are named such that the name of one chroot is a strict substring of the other, calling the destroy script of the chroot with the shorter name will invoke umount for all mount points mounted in both chroots. This proposed changes makes the umount invocation more precise.

Before this change:

roberto@build01:~/alpine-chroot-install (master =)$  sudo ./alpine-chroot-install -d /var/lib/chroot/alpine-test
[output omitted]

roberto@build01:~/alpine-chroot-install (master =)$  sudo ./alpine-chroot-install -d /var/lib/chroot/alpine-test2
[output omitted]

roberto@build01:~/alpine-chroot-install (master =)$  ls -d /var/lib/chroot/alpine-test*
/var/lib/chroot/alpine-test  /var/lib/chroot/alpine-test2

roberto@build01:~/alpine-chroot-install (master =)$  ls -d /var/lib/chroot/alpine-test*
/var/lib/chroot/alpine-test  /var/lib/chroot/alpine-test2

roberto@build01:~/alpine-chroot-install (master =)$  sudo /var/lib/chroot/alpine-test/destroy --remove
Unmounting /var/lib/chroot/alpine-test2/sys/kernel/tracing
Unmounting /var/lib/chroot/alpine-test2/sys/kernel/security
Unmounting /var/lib/chroot/alpine-test2/sys/kernel/debug
Unmounting /var/lib/chroot/alpine-test2/sys/kernel/config
Unmounting /var/lib/chroot/alpine-test2/sys/fs/pstore
Unmounting /var/lib/chroot/alpine-test2/sys/fs/fuse/connections
Unmounting /var/lib/chroot/alpine-test2/sys/fs/cgroup
Unmounting /var/lib/chroot/alpine-test2/sys/fs/bpf
Unmounting /var/lib/chroot/alpine-test2/sys
Unmounting /var/lib/chroot/alpine-test2/proc
Unmounting /var/lib/chroot/alpine-test2/home/roberto/alpine-chroot-install
Unmounting /var/lib/chroot/alpine-test2/dev/shm
Unmounting /var/lib/chroot/alpine-test2/dev/pts
Unmounting /var/lib/chroot/alpine-test2/dev/mqueue
Unmounting /var/lib/chroot/alpine-test2/dev/hugepages
Unmounting /var/lib/chroot/alpine-test2/dev
Unmounting /var/lib/chroot/alpine-test/sys/kernel/tracing
Unmounting /var/lib/chroot/alpine-test/sys/kernel/security
Unmounting /var/lib/chroot/alpine-test/sys/kernel/debug
Unmounting /var/lib/chroot/alpine-test/sys/kernel/config
Unmounting /var/lib/chroot/alpine-test/sys/fs/pstore
Unmounting /var/lib/chroot/alpine-test/sys/fs/fuse/connections
Unmounting /var/lib/chroot/alpine-test/sys/fs/cgroup
Unmounting /var/lib/chroot/alpine-test/sys/fs/bpf
Unmounting /var/lib/chroot/alpine-test/sys
Unmounting /var/lib/chroot/alpine-test/proc
Unmounting /var/lib/chroot/alpine-test/home/roberto/alpine-chroot-install
Unmounting /var/lib/chroot/alpine-test/dev/shm
Unmounting /var/lib/chroot/alpine-test/dev/pts
Unmounting /var/lib/chroot/alpine-test/dev/mqueue
Unmounting /var/lib/chroot/alpine-test/dev/hugepages
Unmounting /var/lib/chroot/alpine-test/dev
Removing /var/lib/chroot/alpine-test

roberto@build01:~/alpine-chroot-install (master =)$  ls -d /var/lib/chroot/alpine-test*
/var/lib/chroot/alpine-test2

After the change, the sudo /var/lib/chroot/alpine-test/destroy --remove produces output like this:

roberto@build01:~/alpine-chroot-install (master >)$  sudo /var/lib/chroot/alpine-test/destroy --remove
Unmounting /var/lib/chroot/alpine-test/sys/kernel/tracing
Unmounting /var/lib/chroot/alpine-test/sys/kernel/security
Unmounting /var/lib/chroot/alpine-test/sys/kernel/debug
Unmounting /var/lib/chroot/alpine-test/sys/kernel/config
Unmounting /var/lib/chroot/alpine-test/sys/fs/pstore
Unmounting /var/lib/chroot/alpine-test/sys/fs/fuse/connections
Unmounting /var/lib/chroot/alpine-test/sys/fs/cgroup
Unmounting /var/lib/chroot/alpine-test/sys/fs/bpf
Unmounting /var/lib/chroot/alpine-test/sys
Unmounting /var/lib/chroot/alpine-test/proc
Unmounting /var/lib/chroot/alpine-test/home/roberto/alpine-chroot-install
Unmounting /var/lib/chroot/alpine-test/dev/shm
Unmounting /var/lib/chroot/alpine-test/dev/pts
Unmounting /var/lib/chroot/alpine-test/dev/mqueue
Unmounting /var/lib/chroot/alpine-test/dev/hugepages
Unmounting /var/lib/chroot/alpine-test/dev
Removing /var/lib/chroot/alpine-test

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

Successfully merging this pull request may close these issues.

1 participant