GNU/Linux >> Znalost Linux >  >> Linux

Jak zaregistrovat typ souborového systému FUSE pomocí mount(8) a fstab?

Obecně platí, že se nový typ souborového systému "zaregistruje" vytvořením spustitelného souboru mount.fstype .

$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs

Pokud vdbfs.py trvá mount -ish argumenty (tj. dev path [-o opts] ), poté mount -t vdbfs a pomocí vdbfs jako 3. pole v fstab bude pracovat. Pokud ne, můžete vytvořit obal, který převezme argumenty tohoto tvaru a namapuje je na jakýkoli váš vdbfs.py trvá.

FUSE by také měla nainstalovat mount.fuse spustitelný; mount.fuse 'vdbfs.py#dev' path -o opts bude pokračovat a zavolá vdbfs.py dev path -o opts . V takovém případě můžete použít fuse jako typ vašeho souborového systému a předponu vašeho zařízení vdbfs.py# .


Abychom objasnili odpověď efemienta, existují dvě možnosti:

  1. Upravit /etc/fstab takhle:

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

    Nebo,

  2. Vytvořte spustitelný soubor s předponou „mount“. (zajistíme, že jej lze použít s mount -jako možnosti):

    $ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
    

    A upravte /etc/fstab takhle:

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

S ohledem na automatickou montáž při spuštění a ruční montáž pomocí mount , user a noauto možnosti jsou relevantní a plně podporované samotnou pojistkou, takže je nemusíte implementovat sami. user možnost umožňuje neprivilegovanému uživateli, který je členem skupiny "fuse", připojit váš souborový systém pomocí mount příkaz a noauto nařídí vašemu souborovému systému, aby se při startu automaticky nepřipojoval. Pokud nezadáte noauto , automaticky se připojí.


Pro upřesnění komentáře @patryk.beza k přijaté odpovědi, správným způsobem připojit souborový systém FUSE je nastavením typu systému souborů na fuse.<subtype> .

Chcete-li například připojit implementaci s3fs-fuse, která neposkytuje konkrétní /sbin/mount.* wrapper a normálně používá s3fs uživatelský příkaz pro připojení bucketů S3, lze tento příkaz použít jako root:

mount -t fuse.s3fs bucket-name /path/to/dir -o <some,options>

nebo tento řádek v /etc/fstab :

bucket-name /path/to/dir fuse.s3fs <some,options> 0 0

nebo tato montážní jednotka SystemD (například /etc/systemd/system/path-to-dir.mount ):

[Unit]
Description=S3 Storage
After=network.target

[Mount]
What=bucket-name
Where=/path/to/dir
Type=fuse.s3fs
Options=<some,options>

[Install]
WantedBy=multi-user.target

Jak to funguje:mount rozpozná koncept „podtypů systému souborů“, když je typ formátován tečkou (tj. <type>.<subtype> ), takže zadejte ve formátu fuse.someimpl je uznáno, že je zodpovědný pomocník pro připojení FUSE /sbin/mount.fuse . Pomocník pro připojení FUSE pak řeší someimpl část implementace FUSE, stejným způsobem jako # formát je použit v původní odpovědi (myslím, že se jedná pouze o hledání cesty pro program s názvem <subtype> , ale nejsem si tím 100% jistý).


Linux
  1. Jak provést Chroot s jmennými prostory Linuxu?

  2. Jak připojit souborový systém, mapování uživatelských id?

  3. Připojit souborový systém Cifs přímo nebo přes Fstab?

  1. Jak zkontrolovat, zda je oddíl připojen jako „noexec“?

  2. Jak zjistit typ souboru Img a připojit jej?

  3. Jak vytvořit soubor a připojit jej jako souborový systém?

  1. Jak psát řecké znaky s dechem a přízvukem?

  2. Jak aktivovat a připojit 2 skupiny svazků se stejnými názvy v CentOS/RHEL

  3. Jak připojit souborový systém v prostředí pouze pro čtení?