سؤال

لقد كتبت نظام ملفات صغير قائم على الصمامات ، والآن الجزء الوحيد المفقود هو أنني أريد تسجيله في 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 ، هناك خياران:

  1. تعديل /etc/fstab مثله:

    # <file system>   <mount point>      <type>  <options>         <dump>  <pass>
    # ...
    vdbfs.py#<dev>    /srv/virtual-db    fuse    user,<other-opts>    0    0
    

    أو،

  2. إنشاء بادئة قابلة للتنفيذ مع "جبل". (التأكد من أنه يمكن استخدامه مع 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 : معرف المستخدم. يمكنك كتابة أمر Linux id ويمكنك الحصول على 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top