/sys/fs/btrfs
не перечисляет все файловые системы btrfs (, например, не смонтированную ), протестировано на Debian / Ubuntu (4.14.0 -1 / 4.10.0 -42 ).
Я бы использовал проги btrfs для их поиска:
btrfs filesystem show | awk '/ path /{print $NF}'
А так как проги btrfs могут перечислять подтомы только смонтированных файловых систем, ваш скрипт недалек от того, что я бы использовал:
#!/bin/bash
readarray -t btdev < <(sudo btrfs filesystem show | awk '/ path /{print $NF}' )
for i in "${btdev[@]}"; do
device="${i}"
mountpoint=/var/lib/btrfs/tmp/mnt/$(basename "$i")
[ -d "$mountpoint" ] || mkdir "$mountpoint"
grep -qs $mountpoint /proc/mounts
[ $? -ne 0 ] && mount -v "$device" "$mountpoint"
while read -r subvol; do
# whatever you want
done < <(btrfs subvolume list "$mountpoint")
umount $mountpoint
rmdir $mountpoint
done
Не тестировалось на нескольких -файловых системах устройств (raid -0/1/10/5/6)
Добавить параметр -a (autologin )в inittab и убить -HUP 1 (init):
T0:2345:respawn:/sbin/getty -a root -L ttyS0 115200 vt100