সি, বা পোসিক্স শেল ছাড়া কোনও বিটিআরএফএস ফাইল-সিস্টেম সাবভলিউমের তথ্য পাওয়ার কোনও সুবিধাজনক উপায় কি নেই ?
/sys/fs/btrfs
কেবল ফাইল সিস্টেমে তথ্য রয়েছে, সাবভলিউমগুলিতে কিছুই নেই, সুতরাং বর্তমানে আমি একটি অস্থায়ী ফোল্ডারে সমস্ত ফাইল সিস্টেমগুলি মাউন্ট করে শেষ করি, সেগুলি দিয়ে স্ক্যান করে btrfs subvol list
তারপরে ফলাফলটি আউটপুট বিশ্লেষণ করি। বলা বাহুল্য, এটি মোটামুটি কুৎসিত।
এটি একটি 3.16.x কার্নেল এবং বিটিআরএফএস-প্রগস v3.14.1 সহ (স্টক উবুন্টু 14.10 থেকে)।
নীচে আমি বর্তমানে ব্যবহার করছি (কুরুচিপূর্ণ) স্ক্রিপ্ট। আমি জানি যে খাঁটি সি ব্যবহারের জন্য আমার প্রয়োজনীয় তথ্যটি আমি পেয়েছি এবং সম্ভবত এটিই শেষ করব, তবে আমি ভাবছিলাম যে আরও সহজ, আরও মার্জিত উপায় আছে কিনা।
#!/bin/bash
for i in /sys/fs/btrfs/*[!features]; do
device="/dev/$(basename $i/devices/*)"
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