كيفية تسجيل نوع نظام ملفات Fuse مع Mount (8) و FSTAB؟
-
20-09-2019 - |
سؤال
لقد كتبت نظام ملفات صغير قائم على الصمامات ، والآن الجزء الوحيد المفقود هو أنني أريد تسجيله في FSTAB (5) لتشغيله تلقائيًا على بدء التشغيل و/أو تركيبه يدويًا مع فقط mount /srv/virtual-db
. كيف يمكنني تحقيق ذلك؟
أعلم أنه يمكنني فقط الجري /usr/bin/vdbfs.py /srv/virtual-db
من بعض البرنامج النصي init ، ولكن هذا ليس جميلًا تمامًا.
أنا آسف لأن هذا قد لا يكون سؤال البرمجة بالضبط ، لكنه مرتبط للغاية ، حيث أن العبوة والنشر لا تزال مهمة المبرمج.
المحلول
بشكل عام ، أحد "السجلات" نوعًا جديدًا من نظام ملفات التثبيت من خلال إنشاء قابلة للتنفيذ mount.fstype
.
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
لو vdbfs.py
يأخذ mount
-حجج (أي dev path [-o opts]
)، من ثم mount -t vdbfs
واستخدام vdbfs
كحقل ثالث في fstab
سيعمل. إذا لم يكن الأمر كذلك ، فيمكنك إنشاء غلاف يأخذ حججًا لهذا النموذج ويخطط لها إلى أي شيء الخاص بك vdbfs.py
يأخذ.
يجب أيضًا تثبيت الصمامات mount.fuse
تنفيذ؛ mount.fuse 'vdbfs.py#dev' path -o opts
سوف تستمر واتصل vdbfs.py dev path -o opts
. في هذه الحالة ، يمكنك استخدام fuse
كنوع نظام الملفات الخاص بك وبدلة جهازك مع vdbfs.py#
.
نصائح أخرى
لتوضيح إجابة ephemient ، هناك خياران:
تعديل
/etc/fstab
مثله:# <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0
أو،
إنشاء بادئة قابلة للتنفيذ مع "جبل". (التأكد من أنه يمكن استخدامه مع
mount
-مثل الخيارات):$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
وتعديل
/etc/fstab
مثله:# <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0
فيما يتعلق بالتركيب التلقائي عند البدء والتركيب يدويًا مع mount
, ، ال user
و noauto
الخيارات ذات صلة ومدعومة بالكامل من قبل Fuse نفسها حتى لا تضطر إلى تنفيذها بنفسك. ال user
يتيح الخيار لمستخدم غير مستقر وهو عضو في مجموعة "Fuse" نظام الملفات الخاص بك مع mount
القيادة ، و noauto
يوجه نظام الملفات الخاص بك بعدم التركيز تلقائيًا عند بدء التشغيل. إذا لم تحدد noauto
, ، سوف يتصاعد تلقائيا.
يمكنك فقط استخدام نوع نظام ملفات Fuse. الأعمال التالية على نظامي:
smbnetfs /media/netbios fuse defaults,allow_other 0 0
مثال آخر:
sshfs#user@example.com:/ /mnt fuse user,noauto 0 0
بعد البحث عن الكثير من هذا الحل لمقاضاة نظام ملفات FUSE fstab
دخول. كنت أستخدم Fuse for S3Bucket للتركيز على آلة Linux المحلية.
.passwd-s3fs
: يحتوي على بيانات اعتماد للوصول إلى حساب AWS الخاص بك 1] المفتاح السري ومفتاح الوصول 2].uid
: معرف المستخدم. يمكنك كتابة أمر Linuxid
ويمكنك الحصول على UID
بناء الجملة:
s3fs#<Bucket_Name> <Mounted_Direcotry_Path> fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,use_cache=/tmp,umask=002,uid=<User_Id> 0 0
مثال:
s3fs#myawsbucket /home/ubuntu/s3bucket/mys3bucket fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,use_cache=/tmp,umask=002,uid=1000 0 0
لتركيب تحتاج إلى تشغيل الأمر التالي.
mount -a
للتحقق من دلوك يتم تركيبه بشكل صحيح أو عدم استخدام الأمر التالي للتحقق مما يدل على جميع النقاط المثبتة.
df -h