Files
docs/tutorials/media-manager/site/steps/setup-mount-points/index.html

836 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="prev" href="../overview/">
<link rel="next" href="../install-docker/">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.23">
<title>Setup Mount Points - Media Manager Tutorial</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.84d31ad4.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"JetBrains Mono"}</style>
<link rel="stylesheet" href="https://unpkg.com/dracula-prism/dist/css/dracula-prism.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="blue-grey" data-md-color-accent="teal">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#understanding-mounting-file-systems-and-choosing-between-ext4-vs-ntfs" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Media Manager Tutorial" class="md-header__button md-logo" aria-label="Media Manager Tutorial" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Media Manager Tutorial
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Setup Mount Points
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--integrated" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Media Manager Tutorial" class="md-nav__button md-logo" aria-label="Media Manager Tutorial" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>
</a>
Media Manager Tutorial
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../getting-started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
<span class="md-ellipsis">
Installation
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Installation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../overview/" class="md-nav__link">
<span class="md-ellipsis">
Overview
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Setup Mount Points
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Setup Mount Points
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#what-does-mounting-mean" class="md-nav__link">
<span class="md-ellipsis">
🧩 What Does “Mounting” Mean?
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#why-we-use-mnt" class="md-nav__link">
<span class="md-ellipsis">
📘 Why We Use /mnt/…
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#what-is-a-file-system" class="md-nav__link">
<span class="md-ellipsis">
🔧 What Is a File System?
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../install-docker/" class="md-nav__link">
<span class="md-ellipsis">
Install Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../install-plex/" class="md-nav__link">
<span class="md-ellipsis">
Install Plex
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../install-qbittorrent/" class="md-nav__link">
<span class="md-ellipsis">
Install Qbittorrent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../setup-media-manager/" class="md-nav__link">
<span class="md-ellipsis">
Setup Media Manager
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-ellipsis">
Optional Installation
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Optional Installation
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../install-samba/" class="md-nav__link">
<span class="md-ellipsis">
Install Samba
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="understanding-mounting-file-systems-and-choosing-between-ext4-vs-ntfs">Understanding Mounting, File Systems, and Choosing Between EXT4 vs NTFS</h1>
<p>Before we connect our drives and get everything ready, its important to understand <strong>what mounting is</strong>, <strong>what a file
system is</strong>, and <strong>why we choose either EXT4 or NTFS</strong> depending on how you'll use your storage.</p>
<p>This page explains these concepts in simple terms so beginners can follow with confidence.</p>
<hr />
<h2 id="what-does-mounting-mean">🧩 What Does “Mounting” Mean?</h2>
<p>On Linux, storage devices like HDDs, SSDs, or USB drives <strong>dont automatically appear as folders</strong> when plugged in.<br />
Instead, the operating system <em>attaches</em> or <em>mounts</em> them to a folder—meaning:</p>
<p><strong>Mounting = attaching a drive to a folder in the filesystem</strong></p>
<p>For example:</p>
<div class="language-text highlight"><span class="filename">Text Only</span><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>Device: /dev/sda1
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>Mounted at: /mnt/omnissiah-vault
</code></pre></div>
<p>Once mounted:</p>
<ul>
<li>The drive is accessible through that folder path</li>
<li>Applications can read/write files there</li>
<li>You can organize your media, downloads, and settings</li>
</ul>
<p>If the drive isnt mounted, Linux can see the hardware but wont be able to access the data stored on it.</p>
<hr />
<h2 id="why-we-use-mnt">📘 Why We Use <code>/mnt/…</code></h2>
<p>Linux organizes storage under specific folders:</p>
<table>
<thead>
<tr>
<th>Path</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>/home</code></td>
<td>Users personal files</td>
</tr>
<tr>
<td><code>/root</code></td>
<td>Root users files</td>
</tr>
<tr>
<td><code>/etc</code></td>
<td>System configuration files</td>
</tr>
<tr>
<td><code>/mnt</code></td>
<td>External drives mounted by the user</td>
</tr>
</tbody>
</table>
<p>We typically mount drives in <code>/mnt</code> to keep things organized, for example:</p>
<div class="language-text highlight"><span class="filename">Text Only</span><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>/mnt/omnissiah-vault
</code></pre></div>
<p>This makes it clear that the drive is external storage, not part of the system root.</p>
<hr />
<h2 id="what-is-a-file-system">🔧 What Is a File System?</h2>
<p>A <strong>file system</strong> determines how data is organized on a drive.</p>
<p>It controls:</p>
<ul>
<li>How files are stored</li>
<li>How permissions work</li>
<li>How large files can be</li>
<li>How reliable and fast the storage is</li>
</ul>
<p>Two major file systems matter for media management:</p>
<hr />
<h1 id="ext4-vs-ntfs-which-should-you-use">🆚 EXT4 vs NTFS — Which Should You Use?</h1>
<p>Below is a simple, clear comparison.</p>
<table>
<thead>
<tr>
<th>Feature</th>
<th>EXT4 (Linux Native)</th>
<th>NTFS (Windows Native)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Best OS support</td>
<td>Linux</td>
<td>Windows</td>
</tr>
<tr>
<td>Performance on Linux</td>
<td>⭐⭐⭐⭐ Fast</td>
<td>⭐ Slow (requires NTFS-3G driver)</td>
</tr>
<tr>
<td>Supports Linux permissions (chmod, chown)</td>
<td>✔ Yes</td>
<td>❌ No (emulated)</td>
</tr>
<tr>
<td>Good for Plex &amp; ARR stack</td>
<td>✔ Best choice</td>
<td>✔ Works but slower</td>
</tr>
<tr>
<td>Reliability</td>
<td>⭐⭐⭐⭐⭐ Excellent</td>
<td>⭐⭐⭐ Good</td>
</tr>
<tr>
<td>4K/large drive support</td>
<td>✔ Yes</td>
<td>✔ Yes</td>
</tr>
<tr>
<td>Automatic mounting</td>
<td>Easy</td>
<td>Slightly more complex</td>
</tr>
<tr>
<td>Ideal use case</td>
<td>Permanent Linux storage</td>
<td>External drive shared with Windows</td>
</tr>
</tbody>
</table>
<h3 id="choose-ext4-if-the-drive-stays-connected-to-your-raspberry-pilinux-system"><strong>Choose EXT4 if the drive stays connected to your Raspberry Pi/Linux system.</strong></h3>
<p>This is the recommended choice for <strong>media servers</strong>, <strong>Plex</strong>, and <strong>qBittorrent</strong> because:</p>
<ul>
<li>Its faster</li>
<li>Uses native permissions</li>
<li>More stable</li>
<li>Less CPU overhead</li>
<li>Easier integration with Docker</li>
</ul>
<h3 id="choose-ntfs-only-if-the-drive-must-also-be-used-on-windows"><strong>Choose NTFS only if the drive must also be used on Windows.</strong></h3>
<p>For example:</p>
<ul>
<li>You physically unplug the drive and connect it to a Windows PC</li>
<li>You want to browse the media on Windows without a network share</li>
</ul>
<hr />
<h2 id="accessing-an-ext4-drive-on-windows">🪟 Accessing an EXT4 Drive on Windows?</h2>
<p>EXT4 cannot be read by Windows <em>natively</em>.</p>
<p>However, <strong>this is not a problem</strong>, because:</p>
<h3 id="you-will-access-your-media-over-the-network-using-samba-smb">You will access your media over the network using <strong>Samba (SMB)</strong>.</h3>
<p>This means:</p>
<ul>
<li>You keep the performance, safety, and permissions of EXT4</li>
<li>Windows PCs can still browse the media like a shared network drive</li>
</ul>
<p>We will configure Samba later in an optional section:</p>
<p>👉 <em>“Accessing Your Media from Windows (Samba Setup)”</em></p>
<hr />
<h2 id="choose-your-mounting-ritual">📥 Choose Your Mounting Ritual</h2>
<p>Below are two scripts — pick one based on your file system choice.</p>
<h3 id="ext4-mounting-ritual-recommended">🟦 EXT4 Mounting Ritual (Recommended)</h3>
<p><strong>Download:</strong><br />
👉 <a href="../../scripts/shell/setup-mount-points/ext4.sh">bind-machine-spirits-ext4.sh</a></p>
<p>(Use this if your drive is formatted as EXT4 and stays connected permanently.)</p>
<hr />
<h3 id="ntfs-mounting-ritual-legacyoptional">🟨 NTFS Mounting Ritual (Legacy/Optional)</h3>
<p><strong>Download:</strong><br />
👉 <a href="../../scripts/shell/setup-mount-points/ntfs.sh">bind-machine-spirits-ntfs.sh</a></p>
<p>(Use this only if your drive must work on both Linux and Windows without Samba.)</p>
<hr />
<h2 id="what-happens-next">🧭 What Happens Next?</h2>
<p>Once you choose your file system and run the ritual script:</p>
<ol>
<li>Your mount point will be created</li>
<li><code>/etc/fstab</code> will be updated for automatic mounting</li>
<li>The drive will appear under <code>/mnt/omnissiah-vault</code></li>
<li>Subdirectories (movies, tv-shows, downloads, etc.) will be generated</li>
</ol>
<h2 id="next-step-install-docker">➡️ Next Step: Install Docker</h2>
<p>Proceed to the <strong>Install Docker</strong> step to prepare docker for media management.
Go to 👉 <strong><a href="../install-docker/">Install Docker</a></strong></p>
<hr />
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.expand", "navigation.sections", "navigation.top", "toc.integrate", "content.code.annotate", "content.code.copy", "content.code.select", "content.code.line_numbers", "content.tabs.link", "content.tooltips", "content.action.edit", "search.suggest", "search.highlight", "search.share", "header.autohide", "announce.dismiss", "footer.social"], "search": "../../assets/javascripts/workers/search.973d3a69.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
<script src="../../assets/javascripts/bundle.f55a23d4.min.js"></script>
</body>
</html>