diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 236694d47a..c3e5444341 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -73,7 +73,6 @@ jobs: git push origin HEAD:${{ github.event.pull_request.head.ref }} || echo "Unable to push lint fixes (likely due to branch permissions)." deploy-preview: - if: ${{ github.event.action != 'closed' }} runs-on: ubuntu-latest permissions: contents: write diff --git a/docs/API/api-key-app-developer-authorization-flow.mdx b/docs/API/api-key-app-developer-authorization-flow.mdx index 0843eaed93..224fdc3b98 100644 --- a/docs/API/api-key-app-developer-authorization-flow.mdx +++ b/docs/API/api-key-app-developer-authorization-flow.mdx @@ -1,4 +1,4 @@ -# API Key Authorization Flow +# API key authorization flow This document describes the self-service API key creation flow for third-party applications. @@ -10,11 +10,11 @@ Applications can request API access to an Unraid server by redirecting users to 1. **Application initiates request**: The app redirects the user to: - ``` + ```text https://[unraid-server]/ApiKeyAuthorize?name=MyApp&scopes=docker:read,vm:*&redirect_uri=https://myapp.com/callback&state=abc123 ``` -2. **User authentication**: If not already logged in, the user is redirected to login first (standard Unraid auth) +2. **User authentication**: If not already logged in, the user is redirected to login first (standard Unraid auth). 3. **Consent screen**: User sees: - Application name and description @@ -23,16 +23,17 @@ Applications can request API access to an Unraid server by redirecting users to - Authorize & Cancel buttons 4. **API key creation**: Upon authorization: - - API key is created with approved scopes - - Key is displayed to the user - - If `redirect_uri` is provided, user is redirected back with the key + - API key is created with approved scopes. + - Key is displayed to the user. + - If `redirect_uri` is provided, user is redirected back with the key. 5. **Callback**: App receives the API key: - ``` + + ```text https://myapp.com/callback?api_key=xxx&state=abc123 ``` -## Query Parameters +## Query parameters - `name` (required): Name of the requesting application - `description` (optional): Description of the application @@ -40,34 +41,15 @@ Applications can request API access to an Unraid server by redirecting users to - `redirect_uri` (optional): URL to redirect after authorization - `state` (optional): Opaque value for maintaining state -## Scope Format - -Scopes follow the pattern: `resource:action` - -### Examples: - -- `docker:read` - Read access to Docker -- `vm:*` - Full access to VMs -- `system:update` - Update access to system -- `role:viewer` - Viewer role access -- `role:admin` - Admin role access - -### Available Resources: - -- `docker`, `vm`, `system`, `share`, `user`, `network`, `disk`, etc. - -### Available Actions: +## Scope format -- `create`, `read`, `update`, `delete` or `*` for all +Scopes follow the pattern: `resource:action`. Examples include `docker:read` (read access to Docker), `vm:*` (full access to VMs), `system:update` (update access to system), `role:viewer` (viewer role access), and `role:admin` (admin role access). -## Security Considerations +Available resources include `docker`, `vm`, `system`, `share`, `user`, `network`, `disk`, and others. Available actions are `create`, `read`, `update`, `delete`, or `*` for all. -1. **HTTPS required**: Redirect URIs must use HTTPS (except localhost for development) -2. **User consent**: Users explicitly approve each permission -3. **Session-based**: Uses existing Unraid authentication session -4. **One-time display**: API keys are shown once and must be saved securely +Redirect URIs must use HTTPS (except localhost for development). Users explicitly approve each permission, and the flow uses existing Unraid authentication sessions. API keys are shown once and must be saved securely. -## Example Integration +## Example integration ```javascript // JavaScript example diff --git a/docs/API/cli.mdx b/docs/API/cli.mdx index f68b7a0965..b47db3b0d4 100644 --- a/docs/API/cli.mdx +++ b/docs/API/cli.mdx @@ -1,18 +1,16 @@ --- -title: CLI Reference +title: CLI reference description: Complete reference for all Unraid API CLI commands sidebar_position: 4 --- -# CLI Commands + -:::info[Command Structure] +# CLI commands -All commands follow the pattern: `unraid-api [options]` +All commands follow the pattern: `unraid-api [options]`. -::: - -## 🚀 Service Management +## Service management ### Start @@ -40,7 +38,7 @@ unraid-api stop [--delete] Stops the Unraid API service. -- `--delete`: Optional. Delete the PM2 home directory +- `--delete`: Optional. Delete the PM2 home directory. ### Restart @@ -70,7 +68,7 @@ View the API logs. - `-l, --lines`: Optional. Number of lines to tail (default: 100) -## ⚙️ Configuration Commands +## Configuration commands ### Config @@ -80,7 +78,7 @@ unraid-api config Displays current configuration values. -### Switch Environment +### Switch environment ```bash unraid-api switch-env [-e ] @@ -88,38 +86,30 @@ unraid-api switch-env [-e ] Switch between production and staging environments. -- `-e, --environment`: Optional. Target environment (production|staging) - -### Developer Mode +- `-e, --environment`: Optional. Target environment (production|staging). -:::tip[Web GUI Management] +### Developer mode -You can also manage developer options through the web interface at **Settings** → **Management Access** → **Developer Options** - -::: +You can also manage developer options through the web interface at ***Settings → Management Access → Developer Options*** in the %%WebGUI|web-gui%%. ```bash unraid-api developer # Interactive prompt for tools -unraid-api developer --sandbox true # Enable GraphQL sandbox -unraid-api developer --sandbox false # Disable GraphQL sandbox +unraid-api developer --sandbox true # Enable %%GraphQL|graphql%% sandbox +unraid-api developer --sandbox false # Disable %%GraphQL|graphql%% sandbox unraid-api developer --enable-modal # Enable modal testing tool unraid-api developer --disable-modal # Disable modal testing tool ``` Configure developer features for the API: -- **GraphQL Sandbox**: Enable/disable Apollo GraphQL sandbox at `/graphql` +- **%%GraphQL|graphql%% Sandbox**: Enable/disable Apollo %%GraphQL|graphql%% sandbox at `/graphql` - **Modal Testing Tool**: Enable/disable UI modal testing in the Unraid menu -## API Key Management - -:::tip[Web GUI Management] +## API key management -You can also manage API keys through the web interface at **Settings** → **Management Access** → **API Keys** +You can also manage API keys through the web interface at ***Settings → Management Access → API Keys*** in the %%WebGUI|web-gui%%. -::: - -### API Key Commands +### API key commands ```bash unraid-api apikey [options] @@ -135,21 +125,17 @@ Options: - `-p, --permissions `: Comma-separated list of permissions - `-d, --description `: Description for the key -## SSO (Single Sign-On) Management - -:::info[OIDC Configuration] - -For OIDC/SSO provider configuration, see the web interface at **Settings** → **Management Access** → **API** → **OIDC** or refer to the [OIDC Provider Setup](./oidc-provider-setup.mdx) guide. +## %%SSO|sso%% (Single Sign-On) management -::: +For OIDC/%%SSO|sso%% provider configuration, see the web interface at ***Settings → Management Access → API → OIDC*** in the %%WebGUI|web-gui%% or refer to the [OIDC Provider Setup](./oidc-provider-setup.mdx) guide. -### SSO Base Command +### SSO base command ```bash unraid-api sso ``` -#### Add SSO User +**Add SSO user:** ```bash unraid-api sso add-user @@ -159,9 +145,7 @@ unraid-api sso add unraid-api sso a ``` -Add a new user for SSO authentication. - -#### Remove SSO User +**Remove SSO user:** ```bash unraid-api sso remove-user @@ -171,9 +155,7 @@ unraid-api sso remove unraid-api sso r ``` -Remove a user (or all users) from SSO. - -#### List SSO Users +**List SSO users:** ```bash unraid-api sso list-users @@ -183,9 +165,9 @@ unraid-api sso list unraid-api sso l ``` -List all configured SSO users. +**Validate SSO token:** -#### Validate SSO Token +Validates an SSO token and returns its status. ```bash unraid-api sso validate-token @@ -195,11 +177,9 @@ unraid-api sso validate unraid-api sso v ``` -Validates an SSO token and returns its status. - -## Report Generation +## Report generation -### Generate Report +### Generate report ```bash unraid-api report [-r] [-j] @@ -210,9 +190,4 @@ Generate a system report. - `-r, --raw`: Display raw command output - `-j, --json`: Display output in JSON format -## Notes - -1. Most commands require appropriate permissions to modify system state -2. Some commands require the API to be running or stopped -3. Store API keys securely as they provide system access -4. SSO configuration changes may require a service restart +Most commands require appropriate permissions to modify system state. Some commands require the API to be running or stopped. Store API keys securely as they provide system access. %%SSO|sso%% configuration changes may require a service restart. diff --git a/docs/API/how-to-use-the-api.mdx b/docs/API/how-to-use-the-api.mdx index 5b1ea2b6f8..fce6b29e47 100644 --- a/docs/API/how-to-use-the-api.mdx +++ b/docs/API/how-to-use-the-api.mdx @@ -4,6 +4,8 @@ description: Learn how to interact with your Unraid server through the GraphQL A sidebar_position: 2 --- + + import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; @@ -11,33 +13,23 @@ import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; # Using the Unraid API -:::tip[Quick Start] - -The Unraid API provides a powerful GraphQL interface for managing your server. This guide covers authentication, common queries, and best practices. - -::: - -The Unraid API provides a GraphQL interface that allows you to interact with your Unraid server. This guide will help you get started with exploring and using the API. - -## 🎮 Enabling the GraphQL Sandbox +The Unraid API provides a %%GraphQL|graphql%% interface that allows you to interact with your Unraid server. This guide covers authentication, common queries, and usage patterns. -### Web GUI Method (Recommended) +## Enabling the GraphQL sandbox -:::info[Preferred Method] +### WebGUI method (recommended) -Using the Web GUI is the easiest way to enable the GraphQL sandbox. +Using the %%WebGUI|web-gui%% is the easiest way to enable the %%GraphQL|graphql%% sandbox: -::: - -1. Navigate to **Settings** → **Management Access** → **Developer Options** -2. Enable the **GraphQL Sandbox** toggle -3. Access the GraphQL playground by navigating to: +1. Navigate to ***Settings → Management Access → Developer Options*** +2. Enable the **%%GraphQL|graphql%% Sandbox** toggle +3. Access the %%GraphQL|graphql%% playground by navigating to: ```txt http://YOUR_SERVER_IP/graphql ``` -### CLI Method +### CLI method Alternatively, you can enable developer mode using the CLI: @@ -51,21 +43,15 @@ Or use the interactive mode: unraid-api developer ``` -## 🔑 Authentication - -:::warning[Required for Most Operations] - -Most queries and mutations require authentication. Always include appropriate credentials in your requests. - -::: +## Authentication -You can authenticate using: +Most queries and mutations require authentication. Always include appropriate credentials in your requests. You can authenticate using: 1. **API Keys** - For programmatic access -2. **Cookies** - Automatic when signed into the WebGUI -3. **SSO/OIDC** - When configured with external providers +2. **Cookies** - Automatic when signed in to the %%WebGUI|web-gui%% +3. **%%SSO|sso%%/OIDC** - When configured with external providers -### Managing API Keys +### Managing API keys @@ -77,9 +63,9 @@ You can authenticate using: -### Using API Keys +### Using API keys -The generated API key should be included in your GraphQL requests as a header: +The generated API key should be included in your %%GraphQL|graphql%% requests as a header. ```json { @@ -87,38 +73,18 @@ The generated API key should be included in your GraphQL requests as a header: } ``` -## 📊 Available Schemas +## Available schemas The API provides access to various aspects of your Unraid server: -### System Information +- **System information**: Query system details including CPU, memory, and OS information; monitor system status and health; access baseboard and hardware information. +- **%%Array|array%% management**: Query %%array|array%% status and configuration; manage %%array|array%% operations (start/stop); monitor disk status and health; perform %%parity checks|parity-check%%. For more information about array operations, see [Array overview](../unraid-os/using-unraid-to/manage-storage/array/overview.mdx). +- **Docker management**: List and manage Docker containers; monitor container status; manage Docker networks. +- **Remote access**: Configure and manage remote access settings; handle %%SSO|sso%% configuration; manage allowed origins. -- Query system details including CPU, memory, and OS information -- Monitor system status and health -- Access baseboard and hardware information +## Example queries -### Array Management - -- Query array status and configuration -- Manage array operations (start/stop) -- Monitor disk status and health -- Perform parity checks - -### Docker Management - -- List and manage Docker containers -- Monitor container status -- Manage Docker networks - -### Remote Access - -- Configure and manage remote access settings -- Handle SSO configuration -- Manage allowed origins - -### 💻 Example Queries - -#### Check System Status +### Check system status ```graphql query { @@ -139,7 +105,7 @@ query { } ``` -#### Monitor Array Status +### Monitor array status ```graphql query { @@ -162,7 +128,7 @@ query { } ``` -#### List Docker Containers +### List Docker containers ```graphql query { @@ -176,56 +142,15 @@ query { } ``` -## 🏗️ Schema Types - -The API includes several core types: +## Schema types -### Base Types +The API includes several core types. Base types include `Node` (interface for objects with unique IDs; see [Object Identification](https://graphql.org/learn/global-object-identification/)), `JSON` (for complex JSON data), `DateTime` (for timestamp values), and `Long` (for 64-bit integers). Resource types include `Array` (%%array|array%% and disk management), `Docker` (container and network management), `Info` (system information), `Config` (server configuration), and `Connect` (remote access settings). Available roles are `admin` (full access), `connect` (remote access features), and `guest` (limited read access). -- `Node`: Interface for objects with unique IDs - please see [Object Identification](https://graphql.org/learn/global-object-identification/) -- `JSON`: For complex JSON data -- `DateTime`: For timestamp values -- `Long`: For 64-bit integers +Use the Apollo Sandbox to explore the schema and test queries. Start with small queries and gradually add fields as needed. Monitor your query complexity to maintain performance, use appropriate roles and permissions for your API keys, and keep your API keys secure by rotating them periodically. -### Resource Types +## Error handling and rate limiting -- `Array`: Array and disk management -- `Docker`: Container and network management -- `Info`: System information -- `Config`: Server configuration -- `Connect`: Remote access settings - -### Role-Based Access - -Available roles: - -- `admin`: Full access -- `connect`: Remote access features -- `guest`: Limited read access - -## ✨ Best Practices - -:::tip[Pro Tips] - -1. Use the Apollo Sandbox to explore the schema and test queries -2. Start with small queries and gradually add fields as needed -3. Monitor your query complexity to maintain performance -4. Use appropriate roles and permissions for your API keys -5. Keep your API keys secure and rotate them periodically - -::: - -## ⏱️ Rate Limiting - -:::caution[Rate Limits] - -The API implements rate limiting to prevent abuse. Ensure your applications handle rate limit responses appropriately. - -::: - -## 🚨 Error Handling - -The API returns standard GraphQL errors in the following format: +The API returns standard %%GraphQL|graphql%% errors in the following format: ```json { @@ -239,15 +164,6 @@ The API returns standard GraphQL errors in the following format: } ``` -## 📚 Additional Resources - -:::info[Learn More] - -- Use the Apollo Sandbox's schema explorer to browse all available types and fields -- Check the documentation tab in Apollo Sandbox for detailed field descriptions -- Monitor the API's health using `unraid-api status` -- Generate reports using `unraid-api report` for troubleshooting - -For more information about specific commands and configuration options, refer to the [CLI documentation](cli.mdx) or run `unraid-api --help`. +The API implements rate limiting to prevent abuse. Ensure your applications handle rate limit responses appropriately. Use the Apollo Sandbox's schema explorer to browse all available types and fields, and check the documentation tab for detailed field descriptions. Monitor the API's health using `unraid-api status` and generate reports using `unraid-api report` for troubleshooting. For more information about specific commands and configuration options, refer to the [CLI documentation](cli.mdx) or run `unraid-api --help`. If you encounter issues, visit the [Unraid forums](https://forums.unraid.net/) for community support. -::: + diff --git a/docs/API/index.mdx b/docs/API/index.mdx index 9bc842c4e9..0321894587 100644 --- a/docs/API/index.mdx +++ b/docs/API/index.mdx @@ -1,99 +1,47 @@ --- title: Welcome to Unraid API -description: The official GraphQL API for Unraid Server management and automation +description: The official GraphQL API for Unraid server management and automation sidebar_position: 1 --- + + import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -import Card from '@site/src/components/Card'; import GetStartedV72 from './partials/get-started-v72.mdx'; import GetStartedPre72 from './partials/get-started-pre72.mdx'; # Welcome to Unraid API -:::tip[What's New] - -Starting with Unraid OS v7.2, the API comes built into the operating system - no plugin installation required! - -::: +Starting with Unraid 7.2, the API comes built into the operating system - no plugin installation required. -The Unraid API provides a GraphQL interface for programmatic interaction with your Unraid server. It enables automation, monitoring, and integration capabilities. +The Unraid API provides a %%GraphQL|graphql%% interface for programmatic interaction with your Unraid server. It enables automation, monitoring, and integration capabilities through a modern, strongly-typed API with multiple authentication methods (API keys, session cookies, and %%SSO|sso%%/OIDC), comprehensive system coverage, and built-in developer tools. -## 📦 Availability +## Availability -### ✨ Native Integration (Unraid OS v7.2+) +### Native integration (Unraid 7.2+) -Starting with Unraid OS v7.2, the API is integrated directly into the operating system: +Starting with Unraid 7.2, the API is integrated directly into the operating system: - No plugin installation required - Automatically available on system startup - Deep system integration -- Access through **Settings** → **Management Access** → **API** - -### 🔌 Plugin Installation (Pre-7.2 and Advanced Users) - -For Unraid versions prior to v7.2 or to access newer API features: - -1. Install the Unraid Connect Plugin from Community Apps -2. [Configure the plugin](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox) -3. Access API functionality through the [GraphQL Sandbox](./how-to-use-the-api.mdx) - -:::info[Important Notes] - -- The Unraid Connect plugin provides the API for pre-7.2 versions -- You do NOT need to sign in to Unraid Connect to use the API locally -- Installing the plugin on 7.2+ gives you access to newer API features before they're included in OS releases - -::: - -## 📚 Documentation Sections - -
- - - Complete reference for all CLI commands +- Access through ***Settings → Management Access → API*** - +### Plugin installation (Pre-7.2 and Advanced Users) - +For Unraid versions prior to 7.2, or to access newer API features: - Learn how to interact with the GraphQL API +1. Install the [Unraid Connect](../unraid-connect/overview-and-setup.mdx) plugin from [Community Applications](../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx). +2. [Configure the plugin](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox). +3. Access API functionality through the %%GraphQL|graphql%% Sandbox. - +The [Unraid Connect](../unraid-connect/overview-and-setup.mdx) plugin provides the API for pre-7.2 versions. You do **not** need to sign in to Unraid Connect to use the API locally. Installing the plugin on Unraid 7.2+ gives you access to newer API features before they're included in OS releases. - - - Configure SSO authentication providers - - - - - - See what's coming next - - -
- -## 🌟 Key Features - -:::info[Core Capabilities] - -The API provides: - -- **GraphQL Interface**: Modern, flexible API with strong typing -- **Authentication**: Multiple methods including API keys, session cookies, and SSO/OIDC -- **Comprehensive Coverage**: Access to system information, array management, and Docker operations -- **Developer Tools**: Built-in GraphQL sandbox configurable via web interface or CLI -- **Role-Based Access**: Granular permission control -- **Web Management**: Manage API keys and settings through the web interface - -::: - -## 🚀 Get Started +## Get started - + @@ -103,3 +51,5 @@ The API provides: For detailed usage instructions, see the [CLI Commands](./cli) reference. + + diff --git a/docs/API/oidc-provider-setup.mdx b/docs/API/oidc-provider-setup.mdx index 3f1b46da19..77bbf5e5e3 100644 --- a/docs/API/oidc-provider-setup.mdx +++ b/docs/API/oidc-provider-setup.mdx @@ -1,115 +1,118 @@ --- -title: OIDC Provider Setup +title: OIDC provider setup description: Configure OIDC (OpenID Connect) providers for SSO authentication in Unraid API sidebar_position: 3 --- -# OIDC Provider Setup + -:::info[What is OIDC?] +# OIDC provider setup -OpenID Connect (OIDC) is an authentication protocol that allows users to sign in using their existing accounts from providers like Google, Microsoft, or your corporate identity provider. It enables Single Sign-On (SSO) for seamless and secure authentication. +:::info + +OpenID Connect (OIDC) is an authentication protocol that allows users to sign in using their existing accounts from providers like Google, Microsoft, or your corporate identity provider. It enables Single Sign-On (%%SSO|sso%%) for seamless and secure authentication. ::: -This guide walks you through configuring OIDC (OpenID Connect) providers for SSO authentication in the Unraid API using the web interface. +This guide walks you through configuring OIDC (OpenID Connect) providers for %%SSO|sso%% authentication in the Unraid API using the %%WebGUI|web-gui%%. -## 🚀 Quick Start +## Quick start
Getting to OIDC Settings - 1. Navigate to your Unraid server's web interface - 2. Go to **Settings** → **Management Access** → **API** → **OIDC** - 3. You'll see tabs for different providers - click the **+** button to add a new provider +1. Navigate to your Unraid server's %%WebGUI|web-gui%%. +2. Go to ***Settings → Management Access → API → OIDC***. +3. You'll see tabs for different providers - click the **+** button to add a new provider.
-### OIDC Providers Interface Overview +### OIDC providers interface overview ![Login Page with SSO Options](/img/api/sso-with-options.png) -*Login page showing traditional login form with SSO options - "Login With Unraid.net" and "Sign in with Google" buttons* +*Login page showing traditional login form with %%SSO|sso%% options - "Login With Unraid.net" and "Sign in with Google" buttons* The interface includes: -- **Provider tabs**: Each configured provider (Unraid.net, Google, etc.) appears as a tab -- **Add Provider button**: Click the **+** button to add new providers -- **Authorization Mode dropdown**: Toggle between "simple" and "advanced" modes -- **Simple Authorization section**: Configure allowed email domains and specific addresses -- **Add Item buttons**: Click to add multiple authorization rules +- **Provider tabs**: Each configured provider (Unraid.net, Google, etc.) appears as a tab. +- **Add Provider button**: Click the **+** button to add new providers. +- **Authorization Mode dropdown**: Toggle between "simple" and "advanced" modes. +- **Simple Authorization section**: Configure allowed email domains and specific addresses. +- **Add Item buttons**: Click to add multiple authorization rules. -## Understanding Authorization Modes +## Understanding authorization modes The interface provides two authorization modes: -### Simple Mode (Recommended) +### Simple mode (recommended) Simple mode is the easiest way to configure authorization. You can: -- Allow specific email domains (e.g., @company.com) -- Allow specific email addresses -- Configure who can access your Unraid server with minimal setup +- Allow specific email domains (e.g., @company.com). +- Allow specific email addresses. +- Configure who can access your Unraid server with minimal setup. **When to use Simple Mode:** -- You want to allow all users from your company domain -- You have a small list of specific users -- You're new to OIDC configuration +- You want to allow all users from your company domain. +- You have a small list of specific users. +- You're new to OIDC configuration.
Advanced Mode Advanced mode provides granular control using claim-based rules. You can: - - Create complex authorization rules based on JWT claims - - Use operators like equals, contains, endsWith, startsWith - - Combine multiple conditions with OR/AND logic - - Choose whether ANY rule must pass (OR mode) or ALL rules must pass (AND mode) +- Create complex authorization rules based on JWT claims. +- Use operators like equals, contains, endsWith, startsWith. +- Combine multiple conditions with OR/AND logic. +- Choose whether ANY rule must pass (OR mode) or ALL rules must pass (AND mode). **When to use Advanced Mode:** - - You need to check group memberships - - You want to verify multiple claims (e.g., email domain AND verified status) - - You have complex authorization requirements - - You need fine-grained control over how rules are evaluated +- You need to check group memberships. +- You want to verify multiple claims (e.g., email domain AND verified status). +- You have complex authorization requirements. +- You need fine-grained control over how rules are evaluated.
-## Authorization Rules +## Authorization rules ![Authorization Rules Configuration](/img/api/advanced-rules.png) *Advanced authorization rules showing JWT claim configuration with email endsWith operator for domain-based access control* -### Simple Mode Examples +### Simple mode examples -#### Allow Company Domain +#### Allow company domain -In Simple Authorization: +In simple authorization: -- **Allowed Email Domains**: Enter `company.com` -- This allows anyone with @company.com email +- **Allowed Email Domains**: Enter `company.com`. +- This allows anyone with @company.com email. -#### Allow Specific Users +#### Allow specific users -- **Specific Email Addresses**: Add individual emails -- Click **Add Item** to add multiple addresses +- **Specific Email Addresses**: Add individual emails. +- Click **Add Item** to add multiple addresses.
Advanced Mode Examples + #### Authorization Rule Mode When using multiple rules, you can choose how they're evaluated: - - **OR Mode** (default): User is authorized if ANY rule passes - - **AND Mode**: User is authorized only if ALL rules pass +- **OR Mode** (default): User is authorized if ANY rule passes. +- **AND Mode**: User is authorized only if ALL rules pass. #### Email Domain with Verification (AND Mode) To require both email domain AND verification: - 1. Set **Authorization Rule Mode** to `AND` - 2. Add two rules: +1. Set **Authorization Rule Mode** to `AND`. +2. Add two rules: - Rule 1: - **Claim**: `email` - **Operator**: `endsWith` @@ -121,12 +124,13 @@ In Simple Authorization: This ensures users must have both a company email AND a verified email address. + #### Group-Based Access (OR Mode) To allow access to multiple groups: - 1. Set **Authorization Rule Mode** to `OR` (default) - 2. Add rules for each group: +1. Set **Authorization Rule Mode** to `OR` (default). +2. Add rules for each group: - **Claim**: `groups` - **Operator**: `contains` - **Value**: `admins` @@ -137,18 +141,23 @@ In Simple Authorization: Users in either `admins` OR `developers` group will be authorized. + #### Multiple Domains + - **Claim**: `email` + - **Operator**: `endsWith` + - **Values**: Add multiple domains (e.g., `company.com`, `subsidiary.com`) + #### Complex Authorization (AND Mode) For strict security requiring multiple conditions: - 1. Set **Authorization Rule Mode** to `AND` - 2. Add multiple rules that ALL must pass: +1. Set **Authorization Rule Mode** to `AND`. +2. Add multiple rules that ALL must pass: - Email must be from company domain - Email must be verified - User must be in specific group @@ -159,51 +168,63 @@ In Simple Authorization:
Configuration Interface Details + ### Provider Tabs - - Each configured provider appears as a tab at the top - - Click a tab to switch between provider configurations - - The **+** button on the right adds a new provider +- Each configured provider appears as a tab at the top. +- Click a tab to switch between provider configurations. +- The **+** button on the right adds a new provider. ### Authorization Mode Dropdown - - **simple**: Best for email-based authorization (recommended for most users) - - **advanced**: For complex claim-based rules using JWT claims +- **Simple**: Best for email-based authorization (recommended for most users). +- **Advanced**: For complex claim-based rules using JWT claims. + ### Simple Authorization Fields When "simple" mode is selected, you'll see: - - **Allowed Email Domains**: Enter domains without @ (e.g., `company.com`) + + - **Allowed Email Domains**: Enter domains without @ (e.g., `company.com`). - Helper text: "Users with emails ending in these domains can login" - - **Specific Email Addresses**: Add individual email addresses + + - **Specific Email Addresses**: Add individual email addresses. - Helper text: "Only these exact email addresses can login" - - **Add Item** buttons to add multiple entries + + - **Add Item** buttons to add multiple entries. + ### Advanced Authorization Fields When "advanced" mode is selected, you'll see: - - **Authorization Rule Mode**: Choose `OR` (any rule passes) or `AND` (all rules must pass) - - **Authorization Rules**: Add multiple claim-based rules + + - **Authorization Rule Mode**: Choose `OR` (any rule passes) or `AND` (all rules must pass). + + - **Authorization Rules**: Add multiple claim-based rules. + - **For each rule**: - - **Claim**: The JWT claim to check - - **Operator**: How to compare (equals, contains, endsWith, startsWith) - - **Value**: What to match against + + - **Claim**: The JWT claim to check. + + - **Operator**: How to compare (equals, contains, endsWith, startsWith). + + - **Value**: What to match against. ### Additional Interface Elements - - **Enable Developer Sandbox**: Toggle to enable GraphQL sandbox at `/graphql` - - The interface uses a dark theme for better visibility - - Field validation indicators help ensure correct configuration +- **Enable Developer Sandbox**: Toggle to enable %%GraphQL|graphql%% sandbox at `/graphql`. +- The interface uses a dark theme for better visibility. +- Field validation indicators help ensure correct configuration.
-### Required Redirect URI +### Required redirect URI -:::caution[Important Configuration] +:::caution -All providers must be configured with this exact redirect URI format: +All providers must be configured with this exact redirect URI format. ::: @@ -217,14 +238,14 @@ Replace `YOUR_UNRAID_IP` with your actual server IP address (e.g., `192.168.1.10 ::: -### Issuer URL Format +### Issuer URL format The **Issuer URL** field accepts both formats, but **base URL is strongly recommended** for security: - **Base URL** (recommended): `https://accounts.google.com` - **Full discovery URL**: `https://accounts.google.com/.well-known/openid-configuration` -**⚠️ Security Note**: Always use the base URL format when possible. The system automatically appends `/.well-known/openid-configuration` for OIDC discovery. Using the full discovery URL directly disables important issuer validation checks and is not recommended by the OpenID Connect specification. +**Security Note**: Always use the base URL format when possible. The system automatically appends `/.well-known/openid-configuration` for OIDC discovery. Using the full discovery URL directly disables important issuer validation checks and is not recommended by the OpenID Connect specification. **Examples of correct base URLs:** @@ -233,47 +254,30 @@ The **Issuer URL** field accepts both formats, but **base URL is strongly recomm - Keycloak: `https://keycloak.example.com/realms/YOUR_REALM` - Authelia: `https://auth.yourdomain.com` -## ✅ Testing Your Configuration +## Testing your configuration ![Login Page with SSO Buttons](/img/api/sso-with-options.png) -*Unraid login page displaying both traditional username/password authentication and SSO options with customized provider buttons* - -1. Save your provider configuration -2. Log out (if logged in) -3. Navigate to the login page -4. Your configured provider button should appear -5. Click to test the login flow - -## 🔧 Troubleshooting - -### Common Issues +*Unraid login page displaying both traditional username/password authentication and %%SSO|sso%% options with customized provider buttons* -#### "Provider not found" error +1. Save your provider configuration. +2. Log out (if logged in). +3. Navigate to the login page. +4. Your configured provider button should appear. +5. Click to test the login flow. -- Ensure the Issuer URL is correct -- Check that the provider supports OIDC discovery (/.well-known/openid-configuration) +## Troubleshooting -#### "Authorization failed" +### Common issues -- In Simple Mode: Check email domains are entered correctly (without @) -- In Advanced Mode: - - Verify claim names match exactly what your provider sends - - Check if Authorization Rule Mode is set correctly (OR vs AND) - - Ensure all required claims are present in the token -- Enable debug logging to see actual claims and rule evaluation +**"Provider not found" error:** Ensure the issuer URL is correct and that the provider supports OIDC discovery (/.well-known/openid-configuration). -#### "Invalid redirect URI" +**"Authorization failed":** In simple mode, check email domains are entered correctly (without @). In advanced mode, verify claim names match exactly what your provider sends, check if Authorization Rule Mode is set correctly (OR vs AND), and ensure all required claims are present in the token. Enable debug logging to see actual claims and rule evaluation. -- Ensure the redirect URI in your provider matches exactly -- Include the correct port if using a non-standard configuration -- Verify the redirect URI protocol matches your server's configuration (HTTP or HTTPS) +**"Invalid redirect URI":** Ensure the redirect URI in your provider matches exactly, include the correct port if using a non-standard configuration, and verify the redirect URI protocol matches your server's configuration (HTTP or HTTPS). -#### Cannot see login button +**Cannot see login button:** Check that at least one authorization rule is configured and verify the provider is enabled/saved. -- Check that at least one authorization rule is configured -- Verify the provider is enabled/saved - -### Debug Mode +### Debug mode To troubleshoot issues: @@ -283,29 +287,19 @@ To troubleshoot issues: LOG_LEVEL=debug unraid-api start --debug ``` -2. Check logs for: - -- Received claims from provider -- Authorization rule evaluation -- Token validation errors +1. Check logs for: -## 🔐 Security Best Practices +- Received claims from provider. +- Authorization rule evaluation. +- Token validation errors. -1. **Use Simple Mode for authorization** - Prevents overly accepting configurations and reduces misconfiguration risks -2. **Be specific with authorization** - Don't use overly broad rules -3. **Rotate secrets regularly** - Update client secrets periodically -4. **Test thoroughly** - Verify only intended users can access +Use Simple Mode for authorization to prevent overly accepting configurations and reduce misconfiguration risks. Be specific with authorization rules and avoid overly broad rules. Rotate secrets regularly by updating client secrets periodically. Test thoroughly to verify only intended users can access. -## 💡 Need Help? +If you encounter issues, check your provider's OIDC documentation, review Unraid API logs for detailed error messages, ensure your provider supports standard OIDC discovery, and verify network connectivity between Unraid and provider. For additional help, visit the [Unraid forums](https://forums.unraid.net/). -- Check provider's OIDC documentation -- Review Unraid API logs for detailed error messages -- Ensure your provider supports standard OIDC discovery -- Verify network connectivity between Unraid and provider +## Provider-specific setup -## 🏢 Provider-Specific Setup - -### Unraid.net Provider +### Unraid.net provider The Unraid.net provider is built-in and pre-configured. You only need to configure authorization rules in the interface. @@ -315,26 +309,26 @@ The Unraid.net provider is built-in and pre-configured. You only need to configu - **Client ID/Secret**: Pre-configured (built-in provider) - **Redirect URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` -:::tip[Redirect URI Protocol] +:::tip -**Match the protocol to your server setup:** Use `http://` if accessing your Unraid server without SSL/TLS (typical for local network access). Use `https://` if you've configured SSL/TLS on your server. Some OIDC providers (like Google) require HTTPS and won't accept HTTP redirect URIs. +Match the protocol to your server setup. Use `http://` if accessing your Unraid server without %%SSL|ssl%%/%%TLS|tls%% (typical for local network access). Use `https://` if you've configured %%SSL|ssl%%/%%TLS|tls%% on your server. Some OIDC providers (like Google) require HTTPS and won't accept HTTP redirect URIs. ::: -Configure authorization rules using Simple Mode (allowed email domains/addresses) or Advanced Mode for complex requirements. +Configure authorization rules using simple mode (allowed email domains/addresses) or advanced mode for complex requirements. ### Google
- 📋 Setup Steps + Setup Steps Set up OAuth 2.0 credentials in [Google Cloud Console](https://console.cloud.google.com/): - 1. Go to **APIs & Services** → **Credentials** - 2. Click **Create Credentials** → **OAuth client ID** - 3. Choose **Web application** as the application type - 4. Add your redirect URI to **Authorized redirect URIs** - 5. Configure the OAuth consent screen if prompted +1. Go to **APIs & Services** → **Credentials**. +2. Click **Create Credentials** → **OAuth client ID**. +3. Choose **Web application** as the application type. +4. Add your redirect URI to **Authorized redirect URIs**. +5. Configure the OAuth consent screen if prompted.
@@ -345,19 +339,19 @@ Configure authorization rules using Simple Mode (allowed email domains/addresses - **Required Scopes**: `openid`, `profile`, `email` - **Redirect URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` -:::warning[Google Domain Requirements] +:::warning -**Google requires valid domain names for OAuth redirect URIs.** Local IP addresses and `.local` domains are not accepted. To use Google OAuth with your Unraid server, you'll need: +Google requires valid domain names for OAuth redirect URIs. Local IP addresses and `.local` domains are not accepted. To use Google OAuth with your Unraid server, you'll need: -- **Option 1: Reverse Proxy** - Set up a reverse proxy (like NGINX Proxy Manager or Traefik) with a valid domain name pointing to your Unraid API -- **Option 2: Tailscale** - Use Tailscale to get a valid `*.ts.net` domain that Google will accept -- **Option 3: Dynamic DNS** - Use a DDNS service to get a public domain name for your server +- **Option 1: Reverse Proxy** - Set up a reverse proxy (like NGINX Proxy Manager or Traefik) with a valid domain name pointing to your Unraid API. +- **Option 2: %%Tailscale|tailscale%%** - Use %%Tailscale|tailscale%% to get a valid `*.ts.net` domain that Google will accept. For more information about %%Tailscale|tailscale%%, see [Remote access](../unraid-connect/remote-access.mdx). +- **Option 3: Dynamic DNS** - Use a DDNS service to get a public domain name for your server. Remember to update your redirect URI in both Google Cloud Console and your Unraid OIDC configuration to use the valid domain. ::: -For Google Workspace domains, use Advanced Mode with the `hd` claim to restrict access to your organization's domain. +For Google Workspace domains, use advanced mode with the `hd` claim to restrict access to your organization's domain. ### Authelia @@ -371,7 +365,7 @@ Configure OIDC client in your Authelia `configuration.yml` with client ID `unrai - **Required Scopes**: `openid`, `profile`, `email`, `groups` - **Redirect URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` -Use Advanced Mode with `groups` claim for group-based authorization. +Use advanced mode with `groups` claim for group-based authorization. ### Microsoft/Azure AD diff --git a/docs/API/partials/get-started-pre72.mdx b/docs/API/partials/get-started-pre72.mdx index 8f85285aa6..6536b56e00 100644 --- a/docs/API/partials/get-started-pre72.mdx +++ b/docs/API/partials/get-started-pre72.mdx @@ -1,5 +1,7 @@ -1. Install the Unraid Connect plugin from Community Apps -2. No Unraid Connect login required for local API access -3. Configure the plugin settings -4. Enable the GraphQL Sandbox + + +1. Install the [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) plugin from [Community Applications](../../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx). +2. No Unraid Connect login required for local API access. +3. Configure the plugin settings. +4. Enable the %%GraphQL|graphql%% Sandbox. 5. Start exploring the API! diff --git a/docs/API/partials/get-started-v72.mdx b/docs/API/partials/get-started-v72.mdx index 79772d98b6..554c01f5bf 100644 --- a/docs/API/partials/get-started-v72.mdx +++ b/docs/API/partials/get-started-v72.mdx @@ -1,5 +1,7 @@ -1. The API is already installed and running -2. Access settings at **Settings** → **Management Access** → **API** -3. Enable the GraphQL Sandbox for development -4. Create your first API key -5. Start making GraphQL queries! + + +1. The API is already installed and running. +2. Access settings at ***Settings → Management Access → API***. +3. Enable the %%GraphQL|graphql%% Sandbox for development. +4. Create your first API key. +5. Start making %%GraphQL|graphql%% queries! diff --git a/docs/API/partials/manage-api-keys-gui.mdx b/docs/API/partials/manage-api-keys-gui.mdx index 2f11cf831c..4962a22386 100644 --- a/docs/API/partials/manage-api-keys-gui.mdx +++ b/docs/API/partials/manage-api-keys-gui.mdx @@ -1,6 +1,8 @@ -Navigate to **Settings** → **Management Access** → **API Keys** in your Unraid web interface to: + -- View existing API keys -- Create new API keys -- Manage permissions and roles -- Revoke or regenerate keys +Navigate to ***Settings → Management Access → API Keys*** in your Unraid %%WebGUI|web-gui%% to: + +- View existing API keys. +- Create new API keys. +- Manage permissions and roles. +- Revoke or regenerate keys. diff --git a/docs/API/programmatic-api-key-management.mdx b/docs/API/programmatic-api-key-management.mdx index f70e1bd032..936be0c788 100644 --- a/docs/API/programmatic-api-key-management.mdx +++ b/docs/API/programmatic-api-key-management.mdx @@ -1,31 +1,22 @@ --- -title: Programmatic API Key Management +title: Programmatic API key management description: Create, use, and delete API keys programmatically for automated workflows sidebar_position: 4 --- -# Programmatic API Key Management + + +# Programmatic API key management This guide explains how to create, use, and delete API keys programmatically using the Unraid API CLI, enabling automated workflows and scripts. ## Overview -The `unraid-api apikey` command supports both interactive and non-interactive modes, making it suitable for: - -- Automated deployment scripts -- CI/CD pipelines -- Temporary access provisioning -- Infrastructure as code workflows +The `unraid-api apikey` command supports both interactive and non-interactive modes, making it suitable for automated deployment scripts, CI/CD pipelines, temporary access provisioning, and infrastructure as code workflows. -:::tip[Quick Start] +## Creating API keys -Jump to the [Complete Workflow Example](#complete-workflow-example) to see everything in action. - -::: - -## Creating API Keys Programmatically - -### Basic Creation with JSON Output +**Basic creation with JSON output:** Use the `--json` flag to get machine-readable output: @@ -43,7 +34,7 @@ unraid-api apikey --create --name "workflow key" --roles ADMIN --json } ``` -### Advanced Creation with Permissions +**Advanced creation with permissions:** ```bash unraid-api apikey --create \ @@ -53,7 +44,7 @@ unraid-api apikey --create \ --json ``` -### Handling Existing Keys +**Handling existing keys:** If a key with the same name exists, use `--overwrite`: @@ -61,15 +52,15 @@ If a key with the same name exists, use `--overwrite`: unraid-api apikey --create --name "existing key" --roles ADMIN --overwrite --json ``` -:::warning[Key Replacement] +:::warning The `--overwrite` flag will permanently replace the existing key. The old key will be immediately invalidated. ::: -## Deleting API Keys Programmatically +## Deleting API keys -### Non-Interactive Deletion +**Non-interactive deletion:** Delete a key by name without prompts: @@ -79,11 +70,11 @@ unraid-api apikey --delete --name "workflow key" **Output:** -``` +```text Successfully deleted 1 API key ``` -### JSON Output for Deletion +**JSON output for deletion:** Use `--json` flag for machine-readable delete confirmation: @@ -114,7 +105,7 @@ unraid-api apikey --delete --name "workflow key" --json } ``` -### Error Handling +**Error handling:** When the specified key doesn't exist: @@ -132,9 +123,9 @@ unraid-api apikey --delete --name "nonexistent key" } ``` -## Complete Workflow Example +## Complete workflow example -Here's a complete example for temporary access provisioning: +This example demonstrates temporary access provisioning: ```bash #!/bin/bash @@ -165,9 +156,9 @@ trap 'echo "Cleaning up..."; unraid-api apikey --delete --name "temp deployment echo "Deployment completed successfully" ``` -## Command Reference +## Command reference -### Create Command Options +**Create command options:** | Flag | Description | Example | | ----------------------- | ----------------------- | --------------------------------- | @@ -178,78 +169,32 @@ echo "Deployment completed successfully" | `--overwrite` | Replace existing key | `--overwrite` | | `--json` | Machine-readable output | `--json` | -### Available Roles +**Available roles:** `ADMIN` (full system access), `CONNECT` (Unraid Connect features), `VIEWER` (read-only access), `GUEST` (limited access). -- `ADMIN` - Full system access -- `CONNECT` - Unraid Connect features -- `VIEWER` - Read-only access -- `GUEST` - Limited access +**Available resources:** `ACTIVATION_CODE`, `API_KEY`, `ARRAY`, `CLOUD`, `CONFIG`, `CONNECT`, `CONNECT__REMOTE_ACCESS`, `CUSTOMIZATIONS`, `DASHBOARD`, `DISK`, `DISPLAY`, `DOCKER`, `FLASH`, `INFO`, `LOGS`, `ME`, `NETWORK`, `NOTIFICATIONS`, `ONLINE`, `OS`, `OWNER`, `PERMISSION`, `REGISTRATION`, `SERVERS`, `SERVICES`, `SHARE`, `VARS`, `VMS`, `WELCOME`. -### Available Resources and Actions +**Available actions:** `CREATE_ANY`, `CREATE_OWN`, `READ_ANY`, `READ_OWN`, `UPDATE_ANY`, `UPDATE_OWN`, `DELETE_ANY`, `DELETE_OWN`. -**Resources:** `ACTIVATION_CODE`, `API_KEY`, `ARRAY`, `CLOUD`, `CONFIG`, `CONNECT`, `CONNECT__REMOTE_ACCESS`, `CUSTOMIZATIONS`, `DASHBOARD`, `DISK`, `DISPLAY`, `DOCKER`, `FLASH`, `INFO`, `LOGS`, `ME`, `NETWORK`, `NOTIFICATIONS`, `ONLINE`, `OS`, `OWNER`, `PERMISSION`, `REGISTRATION`, `SERVERS`, `SERVICES`, `SHARE`, `VARS`, `VMS`, `WELCOME` - -**Actions:** `CREATE_ANY`, `CREATE_OWN`, `READ_ANY`, `READ_OWN`, `UPDATE_ANY`, `UPDATE_OWN`, `DELETE_ANY`, `DELETE_OWN` - -### Delete Command Options +**Delete command options:** | Flag | Description | Example | | --------------- | ------------------------ | ----------------- | | `--delete` | Enable delete mode | `--delete` | | `--name ` | Key to delete (optional) | `--name "my key"` | -**Note:** If `--name` is omitted, the command runs interactively. - -## Best Practices - -:::info[Security Best Practices] - -**Minimal Permissions** - -- Use specific permissions instead of ADMIN role when possible -- Example: `--permissions "DOCKER:READ_ANY"` instead of `--roles ADMIN` - -**Key Lifecycle Management** +If `--name` is omitted, the command runs interactively. -- Always clean up temporary keys after use -- Store API keys securely (environment variables, secrets management) -- Use descriptive names and descriptions for audit trails +Use specific permissions instead of ADMIN role when possible (for example, `--permissions "DOCKER:READ_ANY"` instead of `--roles ADMIN`). Always clean up temporary keys after use and store API keys securely (environment variables, secrets management). Use descriptive names that include purpose and date for audit trails. Note that names must contain only letters, numbers, and spaces (Unicode letters are supported). -::: - -### Error Handling - -- Check exit codes (`$?`) after each command -- Use `set -e` in bash scripts to fail fast -- Implement proper cleanup with `trap` - -### Key Naming - -- Use descriptive names that include purpose and date -- Names must contain only letters, numbers, and spaces -- Unicode letters are supported +Check exit codes (`$?`) after each command. Use `set -e` in bash scripts to fail fast and implement proper cleanup with `trap`. ## Troubleshooting -### Common Issues - -:::note[Common Error Messages] - -**"API key name must contain only letters, numbers, and spaces"** - -- **Solution:** Remove special characters like hyphens, underscores, or symbols - -**"API key with name 'x' already exists"** - -- **Solution:** Use `--overwrite` flag or choose a different name - -**"Please add at least one role or permission to the key"** - -- **Solution:** Specify either `--roles` or `--permissions` (or both) - -::: +**Common error messages:** -### Debug Mode +- **"API key name must contain only letters, numbers, and spaces"**: Remove special characters like hyphens, underscores, or symbols. +- **"API key with name 'x' already exists"**: Use `--overwrite` flag or choose a different name. +- **"Please add at least one role or permission to the key"**: Specify either `--roles` or `--permissions` (or both). For troubleshooting, run with debug logging: diff --git a/docs/API/upcoming-features.mdx b/docs/API/upcoming-features.mdx index d279d19177..9f50df82c2 100644 --- a/docs/API/upcoming-features.mdx +++ b/docs/API/upcoming-features.mdx @@ -4,6 +4,8 @@ description: Current status and upcoming features for the Unraid API sidebar_position: 10 --- + + # Roadmap & Features :::info[Development Status] diff --git a/docs/unraid-account/server-management.mdx b/docs/unraid-account/server-management.mdx index d216a6f16b..d8ec636ba4 100644 --- a/docs/unraid-account/server-management.mdx +++ b/docs/unraid-account/server-management.mdx @@ -5,7 +5,7 @@ description: How to perform license key actions and OS updates for your server(s :::info[Prerequisite] -A minimum of Unraid OS v6.12.8 or the latest version of the Unraid Connect plugin. +A minimum of Unraid 6.12.8 or the latest version of the Unraid Connect plugin. ::: @@ -23,7 +23,7 @@ To manage your Unraid server: ## How do I remove my server from this app? -There are two options: +There are three options: 1. Close your web browser. This resets your session. 2. Sign out of your account. diff --git a/static/img/zfs1.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png similarity index 100% rename from static/img/zfs1.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png diff --git a/static/img/zfs10.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png similarity index 100% rename from static/img/zfs10.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png diff --git a/static/img/zfs11.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png similarity index 100% rename from static/img/zfs11.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png diff --git a/static/img/zfs12.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png similarity index 100% rename from static/img/zfs12.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png diff --git a/static/img/zfs13.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png similarity index 100% rename from static/img/zfs13.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png diff --git a/static/img/zfs14.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png similarity index 100% rename from static/img/zfs14.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png diff --git a/static/img/zfs15.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png similarity index 100% rename from static/img/zfs15.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png diff --git a/static/img/zfs16.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png similarity index 100% rename from static/img/zfs16.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png diff --git a/static/img/zfs2.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png similarity index 100% rename from static/img/zfs2.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png diff --git a/static/img/zfs3.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png similarity index 100% rename from static/img/zfs3.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png diff --git a/static/img/zfs4.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png similarity index 100% rename from static/img/zfs4.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png diff --git a/static/img/zfs5.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png similarity index 100% rename from static/img/zfs5.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png diff --git a/static/img/zfs6.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png similarity index 100% rename from static/img/zfs6.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png diff --git a/static/img/zfs7.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png similarity index 100% rename from static/img/zfs7.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png diff --git a/static/img/zfs8.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png similarity index 100% rename from static/img/zfs8.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png diff --git a/static/img/zfs9.png b/docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png similarity index 100% rename from static/img/zfs9.png rename to docs/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png diff --git a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index d0c3a118d5..b8e5695a9e 100644 --- a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -3,6 +3,8 @@ sidebar_position: 1 sidebar_label: ZFS storage --- + + import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -39,7 +41,7 @@ You can use %%ZFS|zfs%% %%snapshots|snapshot%% and replication on a single disk :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -59,7 +61,7 @@ Redundancy is always per vdev. If any vdev fails, the entire pool fails, even if :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -72,10 +74,12 @@ To create a %%ZFS|zfs%% pool using the %%WebGUI|web-gui%%: 2. Click **Add Pool**.
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
+ 3. Choose a name for your pool (for example, `raptor`). + 4. Set the number of slots to match the number of disks you want in your primary data vdev(s). :::note @@ -85,22 +89,26 @@ This initial slot count is for data vdevs only. Support vdevs (such as log or ca :::
- ![](/img/zfs4.png) + ![](./assets/zfs4.png)
+ 5. Assign disks to the pool (disk order does not matter).
- ![](/img/zfs5.png) + ![](./assets/zfs5.png)
+ 6. Click the pool name (e.g., `raptor`) to open its configuration screen. + 7. Set the file system type to `zfs` or `zfs-encrypted` (for LUKS encryption).
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
+ 8. Choose your allocation profile - this determines your pool's redundancy and performance. :::tip @@ -110,14 +118,16 @@ Before finalizing, review the sections on allocation profiles and topology to ma :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
+ 9. Enable compression if desired (recommended for most workloads). + 10. Click **Done**, then start the %%array|array%%. --- @@ -144,16 +154,19 @@ To add a %%ZFS|zfs%% disk to the %%array|array%%: 4. Select the disk you want to add.
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
+ 5. Under **File system**, choose `zfs` or `zfs-encrypted`.
- ![](/img/zfs10.png) + ![](./assets/zfs10.png)
+ 6. Click **Apply**. + 7. Start the %%array|array%% and let the disk be formatted if needed. --- @@ -163,16 +176,16 @@ To add a %%ZFS|zfs%% disk to the %%array|array%%: When you set up a %%ZFS|zfs%% pool, your allocation profile determines how your data is protected, how your pool performs, and how you can expand it. Here’s a simple comparison to help you decide which profile fits your needs:
- ![](/img/zfs11.png) + ![](./assets/zfs11.png)
| Profile | Redundancy | Performance | Expansion | Space Efficiency | Typical Use Case | Recommended Drive Count Per vdev | -| ------- | ----------------------------- | --------------------------------------------------------- | ---------------- | ---------------- | ---------------------------------------- | -------------------------------- | -| Stripe | None | Fast, but risky | Add more disks | 100% | Temporary/scratch storage | Any number | -| Mirror | 1:1 (%%RAID 1\|raid1%% style) | Excellent for random I/O | Add more mirrors | 50% | High performance, easy expansion | 2 drives (can add more mirrors) | -| RAIDZ1 | 1 disk per vdev | Fast for big files. Not ideal for small or random writes. | Add new vdevs | High | General use, 1-disk fault tolerance | 3-6 drives (max 8) | -| RAIDZ2 | 2 disks per vdev | Like Z1 but slightly slower writes (extra parity) | Add new vdevs | Moderate | Important data, 2-disk fault tolerance | 6-12 drives (max 14) | -| RAIDZ3 | 3 disks per vdev | Like Z2, with more write overhead (for maximum safety) | Add new vdevs | Lower | Mission-critical, 3-disk fault tolerance | 10-16 drives (max 20) | +| ------- | ----------------------------- | --------------------------------------------------------- | ---------------- | ---------------- | ---------------------------------------- | ----------------------------------- | +| Stripe | None | Fast, but risky | Add more disks | 100% | Temporary/scratch storage | Any number | +| Mirror | 1:1 (%%RAID 1\|raid1%% style) | Excellent for random I/O | Add more mirrors | 50% | High performance, easy expansion | 2 drives (can add more mirrors) | +| RAIDZ1 | 1 disk per vdev | Fast for big files. Not ideal for small or random writes. | Add new vdevs | High | General use, 1-disk fault tolerance | 3-6 drives (max 8) | +| RAIDZ2 | 2 disks per vdev | Like Z1 but slightly slower writes (extra parity) | Add new vdevs | Moderate | Important data, 2-disk fault tolerance | 6-12 drives (max 14) | +| RAIDZ3 | 3 disks per vdev | Like Z2, with more write overhead (for maximum safety) | Add new vdevs | Lower | Mission-critical, 3-disk fault tolerance | 10-16 drives (max 20) | :::tip[Optimizing drive counts] @@ -181,7 +194,7 @@ The recommended drive counts in the table above work well for most users. For ev **Examples of optimized configurations:** - **RAIDZ1**: 3, 5, or 9 drives (data disks = 2, 4, or 8) -- **RAIDZ2**: 4, 6, or 10 drives (data disks = 2, 4, or 8) +- **RAIDZ2**: 4, 6, or 10 drives (data disks = 2, 4, or 8) - **RAIDZ3**: 5, 9, or 17 drives (data disks = 2, 6, or 14) Note that these optimizations are optional - the recommendations above should work well for most use cases. @@ -203,7 +216,7 @@ Note that these optimizations are optional - the recommendations above should wo How you group disks into vdevs affects both data safety and speed.
- ![](/img/zfs12.png) + ![](./assets/zfs12.png)
- If you put all your disks into a large RAIDZ2 vdev, you can lose any two disks without losing data. However, expansion means adding another full vdev. @@ -231,7 +244,7 @@ This offers two major benefits: - **Improved performance:** Writing and reading less data can lead to faster operations, especially on modern CPUs.
- ![](/img/zfs13.png) + ![](./assets/zfs13.png)
:::tip @@ -248,7 +261,7 @@ Enable %%ZFS|zfs%% compression for most Unraid %%ZFS|zfs%% pools. It's safe, eff Unraid automatically limits %%ZFS|zfs%% to using a reasonable portion of your system's RAM (usually 1/8th of total RAM). This allows %%ZFS|zfs%% to perform well without affecting Docker containers, %%VMs|vm%%, or the Unraid OS.
- ![](/img/zfs14.png) + ![](./assets/zfs14.png)
@@ -282,11 +295,13 @@ Unraid can import %%ZFS|zfs%% pools created on other platforms with minimal hass After importing, running a %%scrub|scrub%% is highly recommended to verify data integrity. + - Click the pool name (e.g., `raptor`) to open its configuration. + - Under **Pool Status**, check the status and click **Scrub**.
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -297,7 +312,7 @@ Unraid can import %%ZFS|zfs%% pools created on other platforms with minimal hass Unraid refers to %%ZFS|zfs%% support vdevs as subpools. Most users do **not** need these, but advanced users may encounter them:
- ![](/img/zfs16.png) + ![](./assets/zfs16.png)
| Support vdev (subpool) | Purpose | Risk/Notes | @@ -373,7 +388,7 @@ If you're running a traditional Unraid %%array|array%% and want to add %%ZFS|zfs - **Drive size mismatch in RAIDZ:** %%ZFS|zfs%% treats all disks in a RAIDZ vdev as the size of the smallest one. To ensure the best efficiency, always use identically sized drives within each vdev. -- **Expanding RAIDZ vdevs via the %%WebGUI|web-gui%%:** While Unraid 7.1.x and newer support RAIDZ expansion via the command line, this feature isn't yet available in the %%WebGUI|web-gui%%. For the time being, expand via the CLI or add new vdevs through the GUI. +- **Expanding RAIDZ vdevs via the %%WebGUI|web-gui%%:** RAIDZ expansion is available via the %%WebGUI|web-gui%% in Unraid 7.2 and later. Earlier versions (7.1.x) supported expansion via CLI only. - **%%ZFS|zfs%% disk vs. full zpool:** A single %%ZFS|zfs%%-formatted disk in the Unraid %%array|array%% does not offer the redundancy or features of a dedicated %%ZFS|zfs%% pool. To leverage advanced functionality, use standalone pools. diff --git a/docs/unraid-os/release-notes/7.2.0.md b/docs/unraid-os/release-notes/7.2.0.md index e7c42c41c3..75907c154d 100644 --- a/docs/unraid-os/release-notes/7.2.0.md +++ b/docs/unraid-os/release-notes/7.2.0.md @@ -31,10 +31,10 @@ If rolling back earlier than 7.1.4, also see the [7.1.4 release notes](7.1.4.md# You can now expand your single-vdev RAIDZ1/2/3 pools, one drive at a time: -- With the array running, on ***Main → Pool Devices***, select the pool name to view the details +- With the array running, on **_Main → Pool Devices_**, select the pool name to view the details - In the **Pool Status** area, check for an **Upgrade Pool** button. If one exists, you'll need to click that before continuing. Note that upgrading the pool will limit your ability to downgrade to earlier releases of Unraid (7.1 should be OK, but not 7.0) - Stop the array -- On ***Main → Pool Devices***, add a slot to the pool +- On **_Main → Pool Devices_**, add a slot to the pool - Select the appropriate drive (must be at least as large as the smallest drive in the pool) - Start the array @@ -47,7 +47,7 @@ You can now expand your single-vdev RAIDZ1/2/3 pools, one drive at a time: Unraid now supports Ext2/3/4, NTFS, and exFAT drive formats in addition to XFS, BTRFS, and ZFS. -Use case: say you are a content creator with a box full of hard drives containing all of your historical videos. When first creating an array (or after running ***Tools → New Config***), add all of your existing data drives (blank, or with data in a supported drive format) to the array. Any parity drives will be overwritten but the data drives will retain their data. You can enjoy parity protection, share them on the network, and take full advantage of everything Unraid has to offer. +Use case: say you are a content creator with a box full of hard drives containing all of your historical videos. When first creating an array (or after running **_Tools → New Config_**), add all of your existing data drives (blank, or with data in a supported drive format) to the array. Any parity drives will be overwritten but the data drives will retain their data. You can enjoy parity protection, share them on the network, and take full advantage of everything Unraid has to offer. Critical note: you can continue adding filled data drives to the array up until you start the array with a parity drive installed. Once a parity drive has been added, any new data drives will be zeroed out when they are added to the array. @@ -59,7 +59,7 @@ Additionally, you can create single drive pools using the new formats as well. #### Warn about deprecated file systems -The ***Main*** page will now warn if any array or pool drives are formatted with ReiserFS; these drives need to be migrated to another filesystem ASAP as they will not be usable in a future release of Unraid (likely Unraid 7.3). Similarly, it will warn if there are drives formatted in a deprecated version of XFS; those need to be migrated before 2030. See [Converting to a new file system type](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type) in the docs for details. +The **_Main_** page will now warn if any array or pool drives are formatted with ReiserFS; these drives need to be migrated to another filesystem ASAP as they will not be usable in a future release of Unraid (likely Unraid 7.3). Similarly, it will warn if there are drives formatted in a deprecated version of XFS; those need to be migrated before 2030. See [Converting to a new file system type](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type) in the docs for details. #### Other storage changes @@ -89,7 +89,7 @@ The ***Main*** page will now warn if any array or pool drives are formatted with #### Other networking changes - Feature: IPv6 Docker custom networks now support Unique Local Addresses (ULA) in addition to the more standard Global Unicast Addresses (GUA), assuming your router provides both subnets when the Unraid host gets an IPv6 address via DHCP or SLAAC. To use, assign a custom static IP from the appropriate subnet to the container. -- Fix: The ***Settings → Network Settings → Interface Rules*** page sometimes showed the wrong network driver (was just a display issue) +- Fix: The **_Settings → Network Settings → Interface Rules_** page sometimes showed the wrong network driver (was just a display issue) ### VM Manager @@ -135,9 +135,9 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou - Feature: Add new notifications management view, access via the bell in the upper right corner of the webGUI - Feature: Add progress indicator to Docker / Plugin / VM popup window - Feature: Show countdown timer on login page when locked out due to too many incorrect login attempts -- Feature: Add *Force Install* button to bypass version checks when manually installing plugins -- Feature: Add ***Tools → Open Terminal*** page; can access it by searching for "terminal". Can optionally remove Terminal button from toolbar via ***Settings → Display Settings → Show Terminal Button in header*** -- Feature: ***Users → Root → SSH authorized keys*** now supports more formats (thanks [wandercone](https://github.com/wandercone)) +- Feature: Add _Force Install_ button to bypass version checks when manually installing plugins +- Feature: Add **_Tools → Open Terminal_** page; can access it by searching for "terminal". Can optionally remove Terminal button from toolbar via **_Settings → Display Settings → Show Terminal Button in header_** +- Feature: **_Users → Root → SSH authorized keys_** now supports more formats (thanks [wandercone](https://github.com/wandercone)) - Feature: Added a welcome screen for new systems, shown after setting the root password - Fix: Re-enable smart test buttons after completion of test - Fix: Prevent webGUI from crashing when dynamix.cfg is corrupt, log any issues @@ -168,9 +168,9 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou - Fix: Resolve issues with high CPU load due to nchan and lsof - Improvement: Removed option to disable live updates on inactive browsers; should no longer be needed - Improvement: Better messaging around mover and "dangling links" -- Fix: Prevent errors related to *searchLink* when installing plugins +- Fix: Prevent errors related to _searchLink_ when installing plugins - Fix: PHP warnings importing WireGuard tunnels -- Improvement: *Europe/Kiev* timezone renamed to *Europe/Kyiv* to align with the IANA Time Zone Database +- Improvement: _Europe/Kiev_ timezone renamed to _Europe/Kyiv_ to align with the IANA Time Zone Database - Improvement: Enhance Discord notification agent; enable/disable the agent to get the updates (thanks [mgutt](https://github.com/mgutt)) - Fix: Further anonymization of diagnostics.zip - Improvement: Protect WebGUI from fatal PHP errors diff --git a/docs/unraid-os/system-administration/advanced-tools/command-line-interface.mdx b/docs/unraid-os/system-administration/advanced-tools/command-line-interface.mdx index 3c00046dd7..141ecb74da 100644 --- a/docs/unraid-os/system-administration/advanced-tools/command-line-interface.mdx +++ b/docs/unraid-os/system-administration/advanced-tools/command-line-interface.mdx @@ -3,6 +3,8 @@ sidebar_position: 1 sidebar_label: Command line interface --- + + import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import CliCpuInfo from "./partials/command-line-interface/cpu-info.mdx"; @@ -42,13 +44,13 @@ If you're using Windows, you might prefer %%PuTTY|putty%% for %%SSH|ssh%% access
How to install and use PuTTY - Click to expand/collapse - **View drive information:** +**View drive information:** - ```bash - hdparm -I /dev/sdX - ``` +```bash +hdparm -I /dev/sdX +``` - This displays the model, firmware, cache size, and supported features, which helps verify disk type and controller behavior. +This displays the model, firmware, cache size, and supported features, which helps verify disk type and controller behavior.
@@ -59,35 +61,35 @@ This command runs %%SMART|smart%% diagnostics and monitors drive health.
View smartctl options - Click to expand/collapse - **Basic %%SMART|smart%% report:** +**Basic %%SMART|smart%% report:** - ```bash - smartctl -a /dev/sdX - ``` +```bash +smartctl -a /dev/sdX +``` - If this command returns an error, try specifying the device type: `smartctl -a -d ata /dev/sdX` (use `-d nvme` for NVMe drives). +If this command returns an error, try specifying the device type: `smartctl -a -d ata /dev/sdX` (use `-d nvme` for NVMe drives). - **Start %%SMART|smart%% self-tests:** +**Start %%SMART|smart%% self-tests:** - Short test (takes a few minutes) +Short test (takes a few minutes) - ```bash - smartctl -t short /dev/sdX - ``` +```bash +smartctl -t short /dev/sdX +``` - Extended test (may take hours) +Extended test (may take hours) - ```bash - smartctl -t long /dev/sdX - ``` +```bash +smartctl -t long /dev/sdX +``` - **Save %%SMART report|smart-report%% to a file:** +**Save %%SMART report|smart-report%% to a file:** - ```bash - smartctl -a /dev/sdX > /boot/smart_report.txt - ``` +```bash +smartctl -a /dev/sdX > /boot/smart_report.txt +``` - This saves the report to your Unraid flash drive for later review or sharing on the [forums](https://forums.unraid.net/). +This saves the report to your Unraid flash drive for later review or sharing on the [forums](https://forums.unraid.net/).
@@ -98,9 +100,9 @@ This script allows for comprehensive surface-level performance testing with visu
View diskspeed.sh usage - Click to expand/collapse - This used to be a script you would download from the Unraid forums. DiskSpeed is available now in a more refined package: +This used to be a script you would download from the Unraid forums. DiskSpeed is available now in a more refined package: - Install DiskSpeed from [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) (***Apps tab***) by searching for "DiskSpeed", or visit the [GitHub repository](https://github.com/jbartlett777/DiskSpeed) for manual installation instructions. +Install DiskSpeed from [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) (**_Apps tab_**) by searching for "DiskSpeed", or visit the [GitHub repository](https://github.com/jbartlett777/DiskSpeed) for manual installation instructions.
@@ -117,17 +119,17 @@ This command provides a real-time process and resource monitor.
View top usage - Click to expand/collapse - ```bash - top - ``` +```bash +top +``` - - Displays CPU and memory usage for each process in real-time. - - Press `q` to exit. - - Use arrow keys to scroll, and `k` to terminate processes. +- Displays CPU and memory usage for each process in real-time. +- Press `q` to exit. +- Use arrow keys to scroll, and `k` to terminate processes. - :::tip - Consider using `htop` for a more user-friendly interface with enhanced controls. - ::: + :::tip + Consider using `htop` for a more user-friendly interface with enhanced controls. + :::
@@ -138,15 +140,15 @@ This command shows memory usage statistics.
View free usage - Click to expand/collapse - ```bash - free -h - ``` +```bash +free -h +``` - This displays RAM usage in a human-readable format. The `-h` flag means sizes will show in KB, MB, or GB instead of bytes. +This displays RAM usage in a human-readable format. The `-h` flag means sizes will show in KB, MB, or GB instead of bytes. - :::tip[Understand the output] - A low "available" memory reading doesn’t necessarily indicate a problem—Linux aggressively caches data for performance. - ::: +:::tip[Understand the output] +A low "available" memory reading doesn’t necessarily indicate a problem—Linux aggressively caches data for performance. +:::
@@ -157,23 +159,23 @@ Use this command to display running processes with detailed information.
View ps options - Click to expand/collapse - **List all processes with full details:** +**List all processes with full details:** - ```bash - ps aux - ``` +```bash +ps aux +``` - **Sort by memory usage:** +**Sort by memory usage:** - ```bash - ps aux --sort=-%mem | head -20 - ``` +```bash +ps aux --sort=-%mem | head -20 +``` - **Sort by CPU usage:** +**Sort by CPU usage:** - ```bash - ps aux --sort=-%cpu | head -20 - ``` +```bash +ps aux --sort=-%cpu | head -20 +```
@@ -190,11 +192,11 @@ This command displays filesystem disk space usage.
View df usage - Click to expand/collapse - ```bash - df -h - ``` +```bash +df -h +``` - This command displays the used and available space on all mounted file systems. It’s convenient for checking `/var/log` (which utilizes RAM-based logging) in Unraid. For more information on [system logging](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +This command displays the used and available space on all mounted file systems. It’s convenient for checking `/var/log` (which utilizes RAM-based logging) in Unraid. For more information on [system logging](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx).
@@ -205,11 +207,11 @@ View disk partition tables and geometry.
View fdisk usage - Click to expand/collapse - ```bash - fdisk -l /dev/sdX - ``` +```bash +fdisk -l /dev/sdX +``` - This command displays the partition layout, sizes, and disk geometry. It helps troubleshoot mismatched disk sizes, especially when [replacing disks](../../using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx). +This command displays the partition layout, sizes, and disk geometry. It helps troubleshoot mismatched disk sizes, especially when [replacing disks](../../using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx).
@@ -220,11 +222,11 @@ List all block devices in tree format.
View lsblk usage - Click to expand/collapse - ```bash - lsblk - ``` +```bash +lsblk +``` - This command displays all storage devices, along with their mount points, in a straightforward tree structure. It’s great for getting an overview of your storage layout. +This command displays all storage devices, along with their mount points, in a straightforward tree structure. It’s great for getting an overview of your storage layout.
@@ -235,13 +237,13 @@ Helps determine if a replacement drive has enough space before rebuild.
View blockdev usage - Click to expand/collapse - **Syntax:** +**Syntax:** - ```bash - blockdev --getsz /dev/sdX - ``` +```bash +blockdev --getsz /dev/sdX +``` - Returns the raw number of 512-byte sectors on a device - handy for confirming that a replacement drive is large enough before rebuilding. +Returns the raw number of 512-byte sectors on a device - handy for confirming that a replacement drive is large enough before rebuilding.
@@ -252,13 +254,13 @@ Identify filesystem labels.
View blkid usage - Click to expand/collapse - **Syntax:** +**Syntax:** - ```bash - blkid /dev/sdX1 - ``` +```bash +blkid /dev/sdX1 +``` - Outputs the filesystem type and label. Use this instead of the deprecated `vol_id` command when verifying that the Unraid flash is labeled `UNRAID`. +Outputs the filesystem type and label. Use this instead of the deprecated `vol_id` command when verifying that the Unraid flash is labeled `UNRAID`.
@@ -275,24 +277,24 @@ Display socket statistics and network connections. This is the modern replacemen
View ss options - Click to expand/collapse - **Show all listening ports:** +**Show all listening ports:** - ```bash - ss -tuln - ``` +```bash +ss -tuln +``` - - `-t`: TCP sockets - - `-u`: UDP sockets - - `-l`: Only show listening sockets - - `-n`: Show port numbers instead of service names +- `-t`: TCP sockets +- `-u`: UDP sockets +- `-l`: Only show listening sockets +- `-n`: Show port numbers instead of service names - **Show established connections:** + **Show established connections:** - ```bash - ss -tup - ``` + ```bash + ss -tup + ``` - This command shows active connections along with process information. + This command shows active connections along with process information.
@@ -303,23 +305,23 @@ Configure and display network interface information. This is the modern replacem
View ip options - Click to expand/collapse - **Show all network interfaces:** +**Show all network interfaces:** - ```bash - ip addr show - ``` +```bash +ip addr show +``` - **Show network interfaces with colors:** +**Show network interfaces with colors:** - ```bash - ip -c addr show - ``` +```bash +ip -c addr show +``` - **Show routing table:** +**Show routing table:** - ```bash - ip route show - ``` +```bash +ip route show +```
@@ -330,13 +332,13 @@ Test network connectivity.
View ping usage - Click to expand/collapse - **Test connectivity by sending a limited number of packets:** +**Test connectivity by sending a limited number of packets:** - ```bash - ping -c 4 google.com - ``` +```bash +ping -c 4 google.com +``` - This command sends four packets to the destination and stops, making it suitable for basic connectivity testing without continuous output. +This command sends four packets to the destination and stops, making it suitable for basic connectivity testing without continuous output.
@@ -347,31 +349,31 @@ Handy tool for querying and adjusting network interface card (NIC) parameters, s
View ethtool usage - Click to expand/collapse - **Basic driver and firmware info:** +**Basic driver and firmware info:** - Use this command to get information about the driver and firmware for your network interface: +Use this command to get information about the driver and firmware for your network interface: - ```bash - ethtool -i eth0 - ``` +```bash +ethtool -i eth0 +``` - **Show current link speed and settings:** +**Show current link speed and settings:** - To check the current link speed and settings of your interface, run: +To check the current link speed and settings of your interface, run: - ```bash - ethtool eth0 - ``` +```bash +ethtool eth0 +``` - **Display extended interface statistics:** +**Display extended interface statistics:** - For extended statistics related to the interface, use the following command: +For extended statistics related to the interface, use the following command: - ```bash - ethtool -S eth0 - ``` +```bash +ethtool -S eth0 +``` - These commands can help you confirm the negotiation speeds for gigabit, 2.5 GbE, or 10 GbE connections, diagnose issues with cables, or identify dropped packets that might arise from offload mismatches. +These commands can help you confirm the negotiation speeds for gigabit, 2.5 GbE, or 10 GbE connections, diagnose issues with cables, or identify dropped packets that might arise from offload mismatches.
@@ -386,9 +388,9 @@ Get detailed information about hardware, kernel, and overall system configuratio - - - + + + @@ -408,17 +410,17 @@ Monitor log files in real-time.
View tail usage - Click to expand/collapse - ```bash - tail -f /var/log/syslog - ``` +```bash +tail -f /var/log/syslog +``` - This command shows live updates from the system log. To exit, use `Ctrl+C`. +This command shows live updates from the system log. To exit, use `Ctrl+C`. - **Show a specific number of lines:** +**Show a specific number of lines:** - ```bash - tail -n 50 /var/log/syslog - ``` +```bash +tail -n 50 /var/log/syslog +```
@@ -429,11 +431,11 @@ Safely shut down the system.
View powerdown usage - Click to expand/collapse - ```bash - powerdown - ``` +```bash +powerdown +``` - This command utilizes Unraid's built-in shutdown process to stop the %%array|array%% and power down the system safely. It's preferred over manual shutdown methods. +This command utilizes Unraid's built-in shutdown process to stop the %%array|array%% and power down the system safely. It's preferred over manual shutdown methods.
@@ -448,7 +450,6 @@ These methods help you transfer files from external network shares (Windows or L Unraid includes **Midnight Commander** (`mc`), a text-based, dual-pane file manager accessible through the web terminal. 1. Open the web terminal. You can find this option in the top-right menu of the Unraid %%WebGUI|web-gui%%. - 2. Launch Midnight Commander: ```bash @@ -489,7 +490,6 @@ Unraid includes **Midnight Commander** (`mc`), a text-based, dual-pane file mana protected with `chmod 600`. 4. Use the MC panes to transfer files between `/work` (the network share) and any `/mnt/user/` or `/mnt/diskX` share. - 5. Clean up afterward: ```bash @@ -522,54 +522,53 @@ For advanced users or those using automation, you can also utilize command-line
View command-line transfer instructions - Click to expand/collapse - 1. Open the terminal (Web Terminal or %%SSH|ssh%% as `root`). - - 2. Create and mount a network share: - - ```bash - mkdir /work - ``` +1. Open the terminal (Web Terminal or %%SSH|ssh%% as `root`). - ```bash - # 1) Interactive prompt (recommended for one-off mounts) - mount -t cifs //workstation/share /work -o username=youruser,iocharset=utf8 - # You will be prompted for the password interactively. - ``` +1. Create and mount a network share: - ```bash - # 2) Use a credentials file (recommended for scripts/automation) - # Create /root/.cifscredentials with the following content: - # username=youruser - # password=yourpassword - # Then protect the file and mount using: - chmod 600 /root/.cifscredentials - mount -t cifs //workstation/share /work -o credentials=/root/.cifscredentials,iocharset=utf8 - ``` +```bash +mkdir /work +``` - **Security note:** Do not pass passwords on the command line. Use an - interactive prompt or a credentials file with strict permissions instead. +```bash +# 1) Interactive prompt (recommended for one-off mounts) +mount -t cifs //workstation/share /work -o username=youruser,iocharset=utf8 +# You will be prompted for the password interactively. +``` - 1. Copy files: +```bash +# 2) Use a credentials file (recommended for scripts/automation) +# Create /root/.cifscredentials with the following content: +# username=youruser +# password=yourpassword +# Then protect the file and mount using: +chmod 600 /root/.cifscredentials +mount -t cifs //workstation/share /work -o credentials=/root/.cifscredentials,iocharset=utf8 +``` - - You can use `cp`: +**Security note:** Do not pass passwords on the command line. Use an +interactive prompt or a credentials file with strict permissions instead. - ```bash - cp -r /work/* /mnt/disk1 - ``` +1. Copy files: + - You can use `cp`: - - Or, use `rsync` for detailed progress: - - ```bash - rsync -av --progress /work/ /mnt/disk1/ - ``` + ```bash + cp -r /work/* /mnt/disk1 + ``` - 2. Unmount and remove the temporary directory: + - Or, use `rsync` for detailed progress: ```bash - umount /work - rmdir /work + rsync -av --progress /work/ /mnt/disk1/ ``` +1. Unmount and remove the temporary directory: + + ```bash + umount /work + rmdir /work + ``` +
:::caution diff --git a/docs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx b/docs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx index 096d9c62c5..734a33754f 100644 --- a/docs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx +++ b/docs/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx @@ -3,6 +3,8 @@ sidebar_position: 2 sidebar_label: Upgrading Unraid --- + + import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import UpgradeModern from "./partials/upgrade-modern.mdx"; diff --git a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx index 9a948d0d21..73d1c58e87 100644 --- a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -3,6 +3,8 @@ sidebar_position: 2 sidebar_label: Unclean shutdowns --- + + import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; @@ -16,7 +18,7 @@ Taking some proactive steps can help you avoid or identify unclean shutdowns: - **Use a UPS:** Keep your server connected to an Uninterruptible Power Supply (UPS) and set it up to initiate a controlled shutdown when battery power runs low. - **Attempt a graceful shutdown:** If your server is unresponsive, briefly press the power button to trigger a safe shutdown. Do not hold the button down, as this will force a hard power off and lead to an unclean shutdown. -- **Enable persistent logging:** Go to ***Settings → Syslog Server*** to activate logging that persists after a reboot. See [Persistent logs (Syslog server)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server) for more details. +- **Enable persistent logging:** Go to **_Settings → Syslog Server_** to activate logging that persists after a reboot. See [Persistent logs (Syslog server)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server) for more details. - **Attach diagnostics for support:** If an unclean shutdown occurs, Unraid will attempt to save diagnostics to `/log/diagnostics.zip` on your flash device. Attach this file to forum posts when you seek help. ::: @@ -26,7 +28,7 @@ Taking some proactive steps can help you avoid or identify unclean shutdowns: A well-configured UPS is your best defense against unclean shutdowns caused by power loss. - **Connect the UPS via USB** to your Unraid server. -- **Enable UPS support** in ***Settings → UPS Settings***. +- **Enable UPS support** in **_Settings → UPS Settings_**. - **Configure shutdown timeouts:** Set the UPS to trigger a controlled shutdown before the battery runs low. Adjust the "Battery runtime left" or "Battery charge level" thresholds to provide enough time for Unraid to [stop the %%array|array%%](../../using-unraid-to/manage-storage/array/overview.mdx#startstop-the-array) and power down safely. - **Test your configuration:** Simulate a power loss to ensure the UPS and Unraid respond correctly. @@ -115,17 +117,16 @@ To enable VM hibernation: - 1. **Install %%QEMU|qemu%% %%Guest Agent|guest-agent%%:** - - ```bash - # Ubuntu/Debian - sudo apt install qemu-guest-agent + 1. **Install %%QEMU|qemu%% %%Guest Agent|guest-agent%%:** + ```bash + # Ubuntu/Debian + sudo apt install qemu-guest-agent - # CentOS/RHEL/Fedora - sudo yum install qemu-guest-agent - # or - sudo dnf install qemu-guest-agent - ``` + # CentOS/RHEL/Fedora + sudo yum install qemu-guest-agent + # or + sudo dnf install qemu-guest-agent + ``` 2. **Enable the service:** ```bash @@ -147,7 +148,9 @@ To enable VM hibernation: - Consider the risks of force-killing these %%VMs|vm%% during updates. :::note[Why appliance VMs are different] + Appliance %%VMs|vm%% are designed to run specific software and often don't allow the installation of additional packages, such as %%QEMU|qemu%% %%Guest Agent|guest-agent%%. This means hibernation isn't available, so you'll need to rely on proper timeout configuration. + ::: @@ -169,22 +172,20 @@ In this section, we’ll cover how to configure timeouts for various systems and | Setting | Default | When to increase | Where to configure | | ----------------------------- | ------- | ------------------------------------------------- | ---------------------------------------------------- | -| %%VM\|vm%% shutdown timeout | 60s | 300s if not using hibernation and VMs crash | ***Settings → VM Manager → VM Shutdown (Advanced)*** | -| Docker container stop timeout | 10s | 30s if any containers are crashing when stopped | ***Settings → Docker (Advanced)*** | -| General shutdown timeout | 90s | 180s if you get unclean shutdowns, 300s+ with VMs | ***Settings → Disk Settings → Shutdown time-out*** | +| %%VM\|vm%% shutdown timeout | 60s | 300s if not using hibernation and VMs crash | **_Settings → VM Manager → VM Shutdown (Advanced)_** | +| Docker container stop timeout | 10s | 30s if any containers are crashing when stopped | **_Settings → Docker (Advanced)_** | +| General shutdown timeout | 90s | 180s if you get unclean shutdowns, 300s+ with VMs | **_Settings → Disk Settings → Shutdown time-out_** | :::tip[When to increase timeouts] If you're experiencing unclean shutdowns or containers that crash during shutdown, consider increasing the general shutdown timeout to **180 seconds** (or **300+ seconds** if you have multiple %%VMs|vm%%). This gives services more time to shut down gracefully. - ::: ### Shutdown sequence When shutting down, the process happens in the following order: -1. **%%VM|vm%% shutdown**: This involves three stages, and each one can take up to the VM timeout: - +1. %%VM|vm%% shutdown involves three stages, and each one can take up to the VM timeout: - Stage 1: Resume any paused %%VMs|vm%% - Stage 2: Hibernate %%VMs|vm%% that are set up for hibernation - Stage 3: Shut down any remaining %%VMs|vm%% @@ -201,7 +202,8 @@ When shutting down, the process happens in the following order: **Formula:** Your general shutdown timeout should be greater than: -``` + +```text (VM timeout × 3) + (Docker timeout) + (Other services) + 15-30 seconds ``` @@ -221,7 +223,7 @@ This section provides in-depth information about configuring timeouts for differ #### VM timeouts -Configure VM shutdown timeouts in ***Settings → VM Manager → VM Shutdown*** (enable Advanced view). +Configure VM shutdown timeouts in **_Settings → VM Manager → VM Shutdown_** (enable Advanced view). **How it works:** @@ -245,14 +247,12 @@ Configure VM shutdown timeouts in ***Settings → VM Manager → VM Shutdown*** ::: :::warning[No safe timeout without hibernation] - Without hibernation and %%QEMU|qemu%% %%Guest Agent|guest-agent%%, there isn't a truly safe timeout for Windows %%VMs|vm%%. Dialog boxes or ongoing update installations could render any timeout inadequate, leading to forced shutdowns and data corruption risk. - ::: #### Docker timeouts -Configure Docker container stop timeouts in ***Settings → Docker*** (enable Advanced view). +Configure Docker container stop timeouts in **_Settings → Docker_** (enable Advanced view). **How it works:** @@ -271,7 +271,7 @@ Configure Docker container stop timeouts in ***Settings → Docker*** (enable Ad #### General timeouts -Configure the general shutdown timeout in ***Settings → Disk Settings → Shutdown time-out***. +Configure the general shutdown timeout in **_Settings → Disk Settings → Shutdown time-out_**. **UPS considerations (most critical factor):** @@ -299,7 +299,8 @@ Some plugins or custom services may have their own shutdown procedures. Refer to **Updated formula with third-party services:** -``` + +```text (VM timeout × 3) + (Docker timeout) + (LXC/other timeouts) + 15-30 seconds ``` diff --git a/docs/unraid-os/troubleshooting/faq.mdx b/docs/unraid-os/troubleshooting/faq.mdx index 0806ab50aa..c6b89588f8 100644 --- a/docs/unraid-os/troubleshooting/faq.mdx +++ b/docs/unraid-os/troubleshooting/faq.mdx @@ -1,9 +1,12 @@ --- +title: FAQ sidebar_position: 3 sidebar_label: FAQ toc_max_heading_level: 3 --- + + import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; @@ -20,7 +23,7 @@ If you need help with Unraid OS, you have several support options: ## Build & Hardware - + ### I need help with a build or system configuration. Where do I go? @@ -28,7 +31,7 @@ For guidance on building or upgrading your Unraid server, visit the [Compulsive
- + ### What controllers are recommended for Unraid? @@ -38,7 +41,7 @@ Always check for firmware updates and ensure the controller is set to HBA/IT mod
- + ### What's the best way to add more storage if my built-in controller is full? @@ -46,7 +49,7 @@ Unraid allows for the expansion of storage across multiple controllers. You can
- + ### Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them? @@ -64,7 +67,7 @@ If you're uncertain about a drive's health, you can share your %%SMART|smart%% d ## OS & Configuration - + ### Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs? @@ -72,7 +75,7 @@ If your HASP key is a USB dongle, you can assign it to only one %%VM|vm%% at a t
- + ### My USB flash has failed, and I don't have a backup. How do I restore my configuration? @@ -80,21 +83,19 @@ If you had [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) enabled
- + ### What should I do if I have forgotten my root password? Refer to [Reset your password](../system-administration/secure-your-server/user-management.mdx#reset-your-password). :::note - If you're using encrypted drives and forget the encryption password, data recovery isn't possible - there is no backdoor. - :::
- + ### How do I completely start Unraid OS from scratch? (Factory reset procedure) @@ -107,7 +108,6 @@ If you're using encrypted drives and forget the encryption password, data recove 7. Wipe existing filesystems from each data drive: :::danger[Critical: Destructive Operation] - **This step will permanently erase ALL data on the specified drive(s) and is IRREVERSIBLE!** - **Verify you have backups** of any data you need before proceeding @@ -123,18 +123,18 @@ wipefs /dev/sdX ``` Replace `X` with the correct drive letter (e.g., sda, sdb, sdc) - ::: + 8. Continue with the normal Unraid setup and configuration.
- + ### How do I change the hostname of my server? -To change your Unraid server's hostname, navigate the %%WebGUI|web-gui%% to ***Settings → System Settings → Identification***. +To change your Unraid server's hostname, navigate the %%WebGUI|web-gui%% to **_Settings → System Settings → Identification_**. **Effects of changing your hostname:** @@ -144,7 +144,7 @@ To change your Unraid server's hostname, navigate the %%WebGUI|web-gui%% to ***S
- + ### My flash drive is reporting an invalid GUID. What do I do? @@ -166,7 +166,7 @@ It's best to avoid generic or unbranded drives, SSDs, USB card readers, and SD c ## Virtualization & Devices - + ### Whenever I shut down my Windows VM with an AMD GPU assigned, it fails to restart. What can I do? @@ -174,7 +174,7 @@ Many AMD GPUs experience issues with function-level resets, which contribute to
- + ### How do I pass through my primary GPU to a VM if my CPU has no integrated graphics? @@ -186,25 +186,27 @@ This is feasible but requires additional steps. Check out [SpaceInvaderOne's vid ## Storage & RAID - + ### Does Unraid support various RAID types such as RAID1/5/6/10? Unraid features a unique storage architecture that distinguishes it from traditional %%RAID|raid%% systems. Here's a comparison of different storage options:
- | Feature / Capability | Unraid %%parity\|parity%% %%array\|array%% (md) | %%BTRFS\|btrfs%% pool (%%cache\|cache%%) | **%%ZFS\|zfs%% pool (7.x+)** | Traditional %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | - | ------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------- | - | %%Parity\|parity%% / redundancy model | Dedicated %%parity\|parity%% disk(s) | Software %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% via %%BTRFS\|btrfs%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 or mirrors | Striped %%parity\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) or mirrors (%%RAID 10\|raid10%%) | - | Data striping | No | Yes (except %%RAID 1\|raid1%%) | Yes | Yes | - | Disk size flexibility | Mix any sizes | Best when similar sizes | Best when similar per vdev | Requires matched sizes | - | Expand one disk at a time | Yes | Yes (add or replace devices) | Yes (per vdev\*) | Typically no | - | File system per disk | Yes | No | No | No | - | Single-disk read speed | Native disk speed | Aggregate (multi-disk) | Aggregate (multi-disk) | Aggregate | - | Write degradation during rebuild | Minimal (only failed drive) | Depends on level | Depends on vdev layout | Significant | - | %%Bit rot\|bit-rot%% detection | Optional (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|checksum%%) | ✅ Built-in | ✅ End-to-end %%checksum\|checksum%%s | ❌ Not inherent | - | %%Snapshot\|snapshot%% / send-receive | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ Native | ❌ | - | Recommended production use | General media storage | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (avoid %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ All levels stable | Enterprise %%array\|array%%s | + +| Feature / Capability | Unraid %%parity\|parity%% %%array\|array%% (md) | %%BTRFS\|btrfs%% pool (%%cache\|cache%%) | **%%ZFS\|zfs%% pool (7.x+)** | Traditional %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | +| ------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------- | +| %%Parity\|parity%% / redundancy model | Dedicated %%parity\|parity%% disk(s) | Software %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% via %%BTRFS\|btrfs%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 or mirrors | Striped %%parity\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) or mirrors (%%RAID 10\|raid10%%) | +| Data striping | No | Yes (except %%RAID 1\|raid1%%) | Yes | Yes | +| Disk size flexibility | Mix any sizes | Best when similar sizes | Best when similar per vdev | Requires matched sizes | +| Expand one disk at a time | Yes | Yes (add or replace devices) | Yes (per vdev\*) | Typically no | +| File system per disk | Yes | No | No | No | +| Single-disk read speed | Native disk speed | Aggregate (multi-disk) | Aggregate (multi-disk) | Aggregate | +| Write degradation during rebuild | Minimal (only failed drive) | Depends on level | Depends on vdev layout | Significant | +| %%Bit rot\|bit-rot%% detection | Optional (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|checksum%%) | ✅ Built-in | ✅ End-to-end %%checksum\|checksum%%s | ❌ Not inherent | +| %%Snapshot\|snapshot%% / send-receive | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ Native | ❌ | +| Recommended production use | General media storage | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (avoid %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ All levels stable | Enterprise %%array\|array%%s | +
\* %%ZFS|zfs%% vdevs must be expanded by replacing **all** drives in the vdev or adding a new vdev.\ @@ -213,11 +215,11 @@ Unraid features a unique storage architecture that distinguishes it from traditi - **Unraid %%parity|parity%% %%array|array%%** is excellent for incremental expansion, allowing mismatched drive sizes with minimal rebuild stress. - **%%ZFS|zfs%% pools** (available in 7.x) provide enterprise-class redundancy, %%snapshot|snapshot%%s, and %%checksum|checksum%%s, making them ideal for %%VM|vm%%s and databases. - **%%BTRFS|btrfs%% pools** excel for fast SSD %%cache|cache%%s, especially in mirrored %%RAID 1|raid1%%/%%RAID 10|raid10%% mode. -- Traditional hardware %%RAID|raid%% cards are *not* necessary; you can use simple HBAs to allow Unraid to manage drives directly. +- Traditional hardware %%RAID|raid%% cards are _not_ necessary; you can use simple HBAs to allow Unraid to manage drives directly.
- + ### I currently have an array of devices formatted with an MBR-style partition table and want to convert to GPT. How do I do that? @@ -229,16 +231,13 @@ Unraid features a unique storage architecture that distinguishes it from traditi marginTop: "1.5rem", }} > - Why convert from MBR to GPT? MBR (Master Boot Record) partitioning supports disks up to 2TB and only allows a maximum of four primary partitions. On the other hand, GPT (%%GUID|guid%% Partition Table) can handle much larger disks and nearly unlimited partitions. Converting to GPT is advisable if you work with larger drives or want better partition management. :::important[Use **Maintenance Mode**] - Before starting the conversion process, put your %%array|array%% into **Maintenance Mode**. This step ensures no writes occur during the conversion, protecting your data. - :::
- Conversion process
1. Ensure you have a valid %%parity|parity%% and a current backup of your flash drive. -2. Enter **Maintenance Mode** from the ***Main*** tab. +2. Enter **Maintenance Mode** from the **_Main_** tab. 3. Replace and rebuild your %%parity|parity%% drive first. 4. Swap out each data drive one at a time, rebuilding the %%array|array%% after each replacement. 5. The new drive will be formatted with the appropriate partitioning style based on its size: @@ -271,7 +269,7 @@ This process keeps your data safe while changing the partitioning style. - **Larger than 2TB**: Always uses GPT partitioning - Starting with Unraid OS 6.9, partition 1 starts at 32KiB for rotational devices and 1MiB for non-rotational devices, regardless of the partition style. - \-- Always [back up your flash drive](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups) before starting this conversion process. + -- Always [back up your flash drive](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups) before starting this conversion process. ::: @@ -281,21 +279,19 @@ This process keeps your data safe while changing the partitioning style. ## Networking - + ### Is there any way to disable the br0 bridge? Yes. The **br0** bridge is a Linux network bridge allowing Docker containers and %%VM|vm%%s to connect directly to your local area network (LAN) with their IP addresses. It acts as a virtual network switch that connects your physical network interface to the virtual interfaces used by containers and %%VM|vm%%s. :::note - Disabling br0 means that %%VMs|vm%% and Docker containers will not have direct access to the LAN and may lose some advanced networking features. - :::
- + ### I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do? @@ -322,7 +318,7 @@ If you are unable to connect, try rebooting your server and network equipment, a ## Installation - + ### I can't get the USB flash creator to install Unraid on my flash device. What do I do? @@ -330,7 +326,7 @@ If the USB flash creator tool isn't working for your system or flash drive, you
- + ### I need to configure my system to boot using UEFI. How do I do this? @@ -342,7 +338,7 @@ When using the USB flash creator, select the option to enable %%UEFI|uefi%% boot #### Option 2: After booting in Legacy Mode -In the %%WebGUI|web-gui%%, head to the Flash Device ***Settings → Flash Device*** page. +In the %%WebGUI|web-gui%%, head to the Flash Device **_Settings → Flash Device_** page. Enable %%UEFI|uefi%% boot mode and reboot your server. @@ -356,7 +352,7 @@ Set the USB flash as the primary boot device and enable %%UEFI|uefi%% boot mode
- + ### I'm having issues using my web browser with the WebGUI. What can I do? @@ -372,16 +368,14 @@ If problems persist, try accessing the %%WebGUI|web-gui%% from another browser o
- + ### How do I extend my Unraid trial? If you need more time with your [30-day free trial](https://unraid.net/download) of Unraid, you can extend it. Once your original trial expires, stop the %%array|array%% and go to the **Registration** page. You should see a button that allows you to request a 15-day extension. You can do this twice for a total of 60 days before you need to purchase a license. :::important - You must use the same USB flash device to continue your trial. Changing the flash device will require starting a new trial from scratch. - :::
diff --git a/docs/unraid-os/troubleshooting/licensing-faq.mdx b/docs/unraid-os/troubleshooting/licensing-faq.mdx index 611576a8c1..6502a006ba 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -95,8 +95,10 @@ You can upgrade your license at any time from within the %%WebGUI|web-gui%% (*** **Annual extension fee** (Starter & Unleashed only): $36 USD + 1 Attached storage devices refers to the total number of drives you may attach before starting the %%array|array%% (does not include the USB flash boot device).\ 2 "Unlimited" means you are not limited by the license, but by hardware and OS constraints. Additional storage devices can be used for %%VMs|vm%%, unassigned devices, or other Unraid features.\* + ### How do I manually install my license keyfile to my USB flash device? {#manual-keyfile-install} diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx index db67e7aa5c..395fecc12f 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx @@ -98,47 +98,47 @@ Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manage
Workflow enhancements - - **%%VM|vm%% clones & [snapshots](#vm-snapshots):** Duplicate %%VMs|vm%% or quickly save/restore their state for testing or backup. - - **User %%VM|vm%% templates:** Save your custom %%VM|vm%% configurations and deploy new %%VMs|vm%% with just a few clicks. - - **Inline XML view/edit:** Instantly view or copy the `XML` generated by the %%WebGUI|web-gui%%; switch to `XML` mode for advanced edits. - - **Autostart disable:** Choose which %%VMs|vm%% start automatically with your %%array|array%%. - - **VM usage statistics:** Track resource usage per %%VM|vm%% directly from the dashboard. +- **%%VM|vm%% clones & [snapshots](#vm-snapshots):** Duplicate %%VMs|vm%% or quickly save/restore their state for testing or backup. +- **User %%VM|vm%% templates:** Save your custom %%VM|vm%% configurations and deploy new %%VMs|vm%% with just a few clicks. +- **Inline XML view/edit:** Instantly view or copy the `XML` generated by the %%WebGUI|web-gui%%; switch to `XML` mode for advanced edits. +- **Autostart disable:** Choose which %%VMs|vm%% start automatically with your %%array|array%%. +- **VM usage statistics:** Track resource usage per %%VM|vm%% directly from the dashboard.
Advanced hardware & storage options - - **PCI multifunction/other:** Assign complex PCI devices or groups for advanced passthrough scenarios. - - **%%QEMU|qemu%% command-line passthrough:** Add custom %%QEMU|qemu%% arguments for expert-level %%VM|vm%% tuning. - - **Storage override:** Specify the storage location for each VM’s %%virtual disk|vdisk%%. - - **SSD flag & unmap:** Optimize %%vDisk|vdisk%% performance for SSDs and enable discard/unmap support. - - **`SR-IOV` for Intel iGPU:** Share integrated Intel graphics across multiple %%VMs|vm%%. - - **VM name validation for ZFS:** Prevent the use of unsupported characters in %%VM|vm%% names for [%%ZFS|zfs%% pools](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +- **PCI multifunction/other:** Assign complex PCI devices or groups for advanced passthrough scenarios. +- **%%QEMU|qemu%% command-line passthrough:** Add custom %%QEMU|qemu%% arguments for expert-level %%VM|vm%% tuning. +- **Storage override:** Specify the storage location for each VM’s %%virtual disk|vdisk%%. +- **SSD flag & unmap:** Optimize %%vDisk|vdisk%% performance for SSDs and enable discard/unmap support. +- **`SR-IOV` for Intel iGPU:** Share integrated Intel graphics across multiple %%VMs|vm%%. +- **VM name validation for ZFS:** Prevent the use of unsupported characters in %%VM|vm%% names for [%%ZFS|zfs%% pools](../../advanced-configurations/optimize-storage/zfs-storage.mdx).
Enhanced graphics and GPU sharing - - **`VirGL` & `QXL` virtual GPUs:** Share Intel/AMD GPUs among multiple Linux %%VMs|vm%% or utilize `QXL` for multi-screen/memory options. - - **%%CPU pinning|cpu-pinning%% optional:** Allow Unraid to manage CPU allocation automatically or manually pin cores as needed. +- **`VirGL` & `QXL` virtual GPUs:** Share Intel/AMD GPUs among multiple Linux %%VMs|vm%% or utilize `QXL` for multi-screen/memory options. +- **%%CPU pinning|cpu-pinning%% optional:** Allow Unraid to manage CPU allocation automatically or manually pin cores as needed.
More advanced features - - View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab - - Support for %%QEMU|qemu%% ppc64 target and `qemu:override` - - Hypervclock support for Windows %%VMs|vm%% - - "Migratable" on/off for the emulated CPU - - Timer/offset configuration options - - No keymap/nogpu options available for specific use cases - - Improved %%VM|vm%% icon selection and editing - - Warnings when assigning the primary GPU as passthrough (may require `vBIOS`) - - Boot Unraid %%VMs|vm%% into GUI mode with the `QXL` video driver - - Various fixes for path and icon issues in `XML` view +- View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab +- Support for %%QEMU|qemu%% ppc64 target and `qemu:override` +- Hypervclock support for Windows %%VMs|vm%% +- "Migratable" on/off for the emulated CPU +- Timer/offset configuration options +- No keymap/nogpu options available for specific use cases +- Improved %%VM|vm%% icon selection and editing +- Warnings when assigning the primary GPU as passthrough (may require `vBIOS`) +- Boot Unraid %%VMs|vm%% into GUI mode with the `QXL` video driver +- Various fixes for path and icon issues in `XML` view
@@ -215,7 +215,6 @@ This setup allows you to create multiple snapshots, with each one generating its - **Together ("Pivot" + "Delete")**: - **With both selected**: Changes are committed to the original file, your VM switches back to using the original disk, and the overlay file is deleted. This is the most common choice. - - **With both unchecked**: Changes are committed to the original file, but your VM continues using the overlay file, and the overlay file remains to capture future changes. Use Block Commit when you are satisfied with the changes and want to make them permanent. @@ -293,57 +292,57 @@ Unraid now supports advanced GPU sharing via `VirGL` and `QXL` for Linux %%VMs|v
Expand this section to view guidance on the more advanced options - Switch to **Advanced View** on the **Add VM** page to access additional settings. +Switch to **Advanced View** on the **Add VM** page to access additional settings. - Here are the most important advanced options, broken into focused sections: +Here are the most important advanced options, broken into focused sections: - **CPU mode:** +**CPU mode:** - - **Host passthrough**: Exposes all host CPU features to the %%VM|vm%% for maximum performance. - - **Emulated**: Uses a generic CPU model, reducing compatibility issues but limiting performance. +- **Host passthrough**: Exposes all host CPU features to the %%VM|vm%% for maximum performance. +- **Emulated**: Uses a generic CPU model, reducing compatibility issues but limiting performance. - **Memory ballooning:** +**Memory ballooning:** - - Set a **Max Memory** value to enable dynamic memory allocation (%%memory ballooning|memory-ballooning%%). - - Not available for %%VMs|vm%% with PCI devices assigned (e.g., %%GPU passthrough|gpu-passthrough%%). +- Set a **Max Memory** value to enable dynamic memory allocation (%%memory ballooning|memory-ballooning%%). +- Not available for %%VMs|vm%% with PCI devices assigned (e.g., %%GPU passthrough|gpu-passthrough%%). - **Machine type:** +**Machine type:** - - **`i440fx`**: Default for Windows %%VMs|vm%%. Change only if you have %%GPU passthrough|gpu-passthrough%% issues. - - **`Q35`**: Default for Linux %%VMs|vm%% and recommended for most modern operating systems, especially with %%GPU passthrough|gpu-passthrough%%. +- **`i440fx`**: Default for Windows %%VMs|vm%%. Change only if you have %%GPU passthrough|gpu-passthrough%% issues. +- **`Q35`**: Default for Linux %%VMs|vm%% and recommended for most modern operating systems, especially with %%GPU passthrough|gpu-passthrough%%. - **BIOS type:** +**BIOS type:** - - **SeaBIOS**: Traditional BIOS for legacy OSes. - - **OVMF**: %%UEFI|uefi%% BIOS required for Windows 8+, most modern Linux distros, and %%GPU passthrough|gpu-passthrough%%. +- **SeaBIOS**: Traditional BIOS for legacy OSes. +- **OVMF**: %%UEFI|uefi%% BIOS required for Windows 8+, most modern Linux distros, and %%GPU passthrough|gpu-passthrough%%. - :::note - BIOS type can only be set when creating a new %%VM|vm%%. - ::: +:::note +BIOS type can only be set when creating a new %%VM|vm%%. +::: - **Hyper-V extensions:** +**Hyper-V extensions:** - - For Windows %%VMs|vm%%, enable Hyper-V extensions for improved compatibility and performance. +- For Windows %%VMs|vm%%, enable Hyper-V extensions for improved compatibility and performance. - **VirtIO drivers ISO:** +**VirtIO drivers ISO:** - - Override the default %%VirtIO|virtio%% ISO if needed, especially for testing or using newer drivers. +- Override the default %%VirtIO|virtio%% ISO if needed, especially for testing or using newer drivers. - **vDisk type:** +**vDisk type:** - - **`RAW`**: Best performance, less flexible for snapshots. - - **`QCOW2`**: Supports snapshots but offers slightly lower performance. +- **`RAW`**: Best performance, less flexible for snapshots. +- **`QCOW2`**: Supports snapshots but offers slightly lower performance. - **VirtFS mappings (Linux VMs):** +**VirtFS mappings (Linux VMs):** - - Add multiple %%VirtFS|virtfs%% (`9p`) shares for file system integration between host and guest. - - See [%%QEMU|qemu%% 9p documentation](http://wiki.qemu.org/Documentation/9psetup) for details. +- Add multiple %%VirtFS|virtfs%% (`9p`) shares for file system integration between host and guest. +- See [%%QEMU|qemu%% 9p documentation](http://wiki.qemu.org/Documentation/9psetup) for details. - **Network settings:** +**Network settings:** - - Modify the **Network MAC address** or select an alternate **Network Bridge**. - - Click the refresh symbol to auto-generate a new MAC address. - - Add additional virtual network interfaces as needed. +- Modify the **Network MAC address** or select an alternate **Network Bridge**. +- Click the refresh symbol to auto-generate a new MAC address. +- Add additional virtual network interfaces as needed.
@@ -363,7 +362,7 @@ Before you can assign a GPU or any PCI device to a %%VM|vm%%, it's important to To bind a PCI device (GPU, USB controller, NVMe, etc.) for passthrough: -1. Navigate to ***Tools → System Devices*** in the %%WebGUI|web-gui%%. +1. Navigate to **_Tools → System Devices_** in the %%WebGUI|web-gui%%. 2. Look through the list of all detected PCI devices and their %%IOMMU|iommu%% groups. 3. Check the box next to each device you wish to bind to **vfio-pci** (to hide it from Unraid). - Note that devices already in use by Unraid (such as disk controllers and network cards) cannot be selected. @@ -382,11 +381,11 @@ After binding, bound devices will appear in the **Other PCI Devices** dropdown w
Troubleshooting - - If you've previously used the `VFIO-PCI` Config plugin, uninstall it - this functionality is now integrated. - - To reset all bindings, delete `/boot/config/vfio-pci.cfg` and reboot your system. - - After rebooting, utilize the **View `VFIO-PCI` Log** button on the **System Devices** page for advanced troubleshooting. - - Remember that if you bind your only GPU, Unraid may not boot to the GUI. Make sure you plan for this. - - For more information, check the [official guide on the Unraid forums](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). +- If you've previously used the `VFIO-PCI` Config plugin, uninstall it - this functionality is now integrated. +- To reset all bindings, delete `/boot/config/vfio-pci.cfg` and reboot your system. +- After rebooting, utilize the **View `VFIO-PCI` Log** button on the **System Devices** page for advanced troubleshooting. +- Remember that if you bind your only GPU, Unraid may not boot to the GUI. Make sure you plan for this. +- For more information, check the [official guide on the Unraid forums](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/).
@@ -473,43 +472,43 @@ This section covers advanced topics and solutions for common issues when managin
Click to expand/collapse - If your %%VM|vm%% is running low on disk space, you can increase the size of its %%vDisk|vdisk%% directly from the %%WebGUI|web-gui%%. +If your %%VM|vm%% is running low on disk space, you can increase the size of its %%vDisk|vdisk%% directly from the %%WebGUI|web-gui%%. - To expand a %%vDisk|vdisk%%: +To expand a %%vDisk|vdisk%%: - 1. Go to the **VMs** tab in the %%WebGUI|web-gui%%. - 2. Ensure the %%VM|vm%% is stopped. - 3. Click on the VM’s name to expand its details. - 4. Locate the %%vDisk|vdisk%% you want to expand. Click the value in the **Capacity** field to make it editable. - 5. Enter the new desired size (e.g., `100G` for 100 gigabytes) and press **Enter**. - 6. The new capacity is now set. +1. Go to the **VMs** tab in the %%WebGUI|web-gui%%. +2. Ensure the %%VM|vm%% is stopped. +3. Click on the VM’s name to expand its details. +4. Locate the %%vDisk|vdisk%% you want to expand. Click the value in the **Capacity** field to make it editable. +5. Enter the new desired size (e.g., `100G` for 100 gigabytes) and press **Enter**. +6. The new capacity is now set. - :::note - You cannot shrink a %%vDisk|vdisk%% from the Unraid GUI; only expansion is supported. - ::: +:::note +You cannot shrink a %%vDisk|vdisk%% from the Unraid GUI; only expansion is supported. +::: -

Expanding the partition in your guest OS

+

Expanding the partition in your guest OS

- After resizing the %%vDisk|vdisk%%, start your %%VM|vm%%. You must expand the partition within the guest operating system to use the new space: +After resizing the %%vDisk|vdisk%%, start your %%VM|vm%%. You must expand the partition within the guest operating system to use the new space: - - **Windows:** Use the built-in Disk Management tool to extend your partition. +- **Windows:** Use the built-in Disk Management tool to extend your partition. - - **Linux (LVM):** Use tools like `fdisk`, `pvresize`, `lvextend`, and `resize2fs` to expand partitions and logical volumes. +- **Linux (LVM):** Use tools like `fdisk`, `pvresize`, `lvextend`, and `resize2fs` to expand partitions and logical volumes. - **Example:** + **Example:** - ```bash - sudo fdisk /dev/vda - sudo pvresize /dev/vda3 - sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv - sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv - ``` + ```bash + sudo fdisk /dev/vda + sudo pvresize /dev/vda3 + sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv + sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv + ``` - Adjust device names as needed for your setup. + Adjust device names as needed for your setup. - :::tip - Always back up your %%VM|vm%% before making disk changes. - ::: +:::tip +Always back up your %%VM|vm%% before making disk changes. +:::
@@ -518,21 +517,21 @@ This section covers advanced topics and solutions for common issues when managin
Click to expand/collapse - If your %%VM|vm%% boots to a %%UEFI|uefi%% shell instead of your operating system, you can manually start the boot process: +If your %%VM|vm%% boots to a %%UEFI|uefi%% shell instead of your operating system, you can manually start the boot process: - At the %%UEFI|uefi%% shell prompt, enter: +At the %%UEFI|uefi%% shell prompt, enter: - ```bash - fs0: - cd efi/boot - bootx64.efi - ``` +```bash +fs0: +cd efi/boot +bootx64.efi +``` - The %%VM|vm%% should now continue booting into your OS. +The %%VM|vm%% should now continue booting into your OS. - :::tip - If this happens frequently, check your VM’s boot order and ensure the correct %%vDisk|vdisk%% or ISO is set as the primary boot device in the VM settings. - ::: +:::tip +If this happens frequently, check your VM’s boot order and ensure the correct %%vDisk|vdisk%% or ISO is set as the primary boot device in the VM settings. +:::
@@ -541,17 +540,17 @@ This section covers advanced topics and solutions for common issues when managin
Click to expand/collapse - If your %%VM|vm%% starts but the display remains blank: +If your %%VM|vm%% starts but the display remains blank: - 1. **Check BIOS settings:** - - Set primary graphics to integrated GPU (iGPU), not the passthrough GPU. - - Update motherboard and GPU BIOS to the latest versions. +1. **Check BIOS settings:** + - Set primary graphics to integrated GPU (iGPU), not the passthrough GPU. + - Update motherboard and GPU BIOS to the latest versions. - 2. **Adjust %%VM|vm%% settings:** - - Switch from %%SeaBIOS|seabios%% to %%OVMF|ovmf%% (%%UEFI|uefi%%) in %%VM|vm%% settings. - - Change **Machine Type** from i440fx to Q35. +2. **Adjust %%VM|vm%% settings:** + - Switch from %%SeaBIOS|seabios%% to %%OVMF|ovmf%% (%%UEFI|uefi%%) in %%VM|vm%% settings. + - Change **Machine Type** from i440fx to Q35. - 3. **Manual ROM injection (last resort):** [Inject GPU ROM manually](#manual-rom-injection). +3. **Manual ROM injection (last resort):** [Inject GPU ROM manually](#manual-rom-injection).
@@ -560,24 +559,24 @@ This section covers advanced topics and solutions for common issues when managin
Click to expand/collapse - This error typically indicates %%IOMMU|iommu%% group conflicts or missing interrupt remapping: +This error typically indicates %%IOMMU|iommu%% group conflicts or missing interrupt remapping: - 1. **Enable PCIe ACS override:** - - Go to ***Settings → VM Manager***. - - Set **PCIe ACS override** to *Downstream* or *Both*. - - Reboot Unraid. +1. **Enable PCIe ACS override:** + - Go to **_Settings → VM Manager_**. + - Set **PCIe ACS override** to _Downstream_ or _Both_. + - Reboot Unraid. - 2. **Allow unsafe interrupts (advanced):** - - Edit `syslinux.cfg` on your unraid flash drive: +2. **Allow unsafe interrupts (advanced):** + - Edit `syslinux.cfg` on your unraid flash drive: - ```bash - append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot - ``` + ```bash + append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot + ``` - - Only use this if you fully trust your %%VM|vm%% guests. + - Only use this if you fully trust your %%VM|vm%% guests. - :::note - For detailed %%IOMMU|iommu%% group explanations, we recommend checking out [Alex Williamson’s blog](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html). - ::: +:::note +For detailed %%IOMMU|iommu%% group explanations, we recommend checking out [Alex Williamson’s blog](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html). +:::
diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx index 0d719b9130..f1978ae03d 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx @@ -21,7 +21,7 @@ If you're using modern Unraid-compatible hardware, you can change disks without ## Setting up new disks -1. Go to ***Main → Array Devices*** in the interface. +1. Go to **_Main → Array Devices_** in the interface. 2. Pick the slot where you want to add the disk and select the disk from the dropdown list. 3. By default, new array drives will be formatted with %%XFS|xfs%%. If you want to use %%ZFS|zfs%% or %%BTRFS|btrfs%% instead, select your preferred file system from the drop-down menu. @@ -39,21 +39,12 @@ For a more thorough approach, the pre-clear operation – available through plug

Clear vs. Pre-Clear Comparison

-
- | | Clear | Pre-Clear | - | ---------------- | -------------------------------- | --------------------------------------- | - | **Purpose** | Ensures basic disk compatibility | Tests drive health and prepares for use | - | **Speed** | Fast | Significantly slower | - | **Array Impact** | Background operation | Disk offline required | - | **Best for** | Quick expansions | Preparing/checking new drives | -
+| | Clear | Pre-Clear | +|---|---|---| +| **Purpose** | Ensures basic disk compatibility | Tests drive health and prepares for use | +| **Speed** | Fast | Significantly slower | +| **Array Impact** | Background operation | Disk offline required | +| **Best for** | Quick expansions | Preparing/checking new drives | **Clear** quickly prepares a disk for use, making it compatible with your system and allowing you to add storage in just a few hours. @@ -129,7 +120,7 @@ Adding a %%parity disk|parity-drives%% is similar to adding a data disk: **What is parity?** %%Parity|parity%% in Unraid protects your data by ensuring that you can recover from a drive failure. With the use of a %%parity disk|parity-drives%%, any single missing disk can be reconstructed by combining the information from all other data drives along with the %%parity|parity%% data. -**How it works:** Unraid uses a special bit called the *parity bit*, stored for each bit position across all data disks and managed by a dedicated %%parity disk|parity-drives%%. The %%parity|parity%% is calculated such that the total number of bits in each position across all disks (including the %%parity disk|parity-drives%%) is always an even number (even parity). Unraid uses the XOR (exclusive OR) operation for this calculation. +**How it works:** Unraid uses a special bit called the _parity bit_, stored for each bit position across all data disks and managed by a dedicated %%parity disk|parity-drives%%. The %%parity|parity%% is calculated such that the total number of bits in each position across all disks (including the %%parity disk|parity-drives%%) is always an even number (even parity). Unraid uses the XOR (exclusive OR) operation for this calculation. **How data is reconstructed:** Unraid reconstructs a missing drive or repairs a bad sector by reading all remaining drives, including the %%parity disk|parity-drives%%, and applying even %%parity|parity%% to solve for the missing data. The %%parity|parity%% feature allows Unraid to "simulate" the missing disk so you can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid recreates all the missing data based on the current state of %%parity|parity%% and the other disks. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx index bfb4fb442b..f746d2f2f3 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx @@ -17,7 +17,7 @@ Regularly checking your Unraid array is crucial for maintaining data integrity a ## Checking array devices -You can initiate a check using the **Check** button under ***Array Operations***. Depending on your array's configuration, this button allows you to conduct either a %%parity check|parity-check%% or a %%read check|read-check%%. +You can initiate a check using the **Check** button under **_Array Operations_**. Depending on your array's configuration, this button allows you to conduct either a %%parity check|parity-check%% or a %%read check|read-check%%.
-For convenience, you can schedule these checks to run automatically at intervals that suit you by navigating to ***Settings → Scheduler***. It's advisable to perform automated, correcting checks on a monthly or quarterly basis to ensure the ongoing health of your data and fix any sync errors found. +For convenience, you can schedule these checks to run automatically at intervals that suit you by navigating to **_Settings → Scheduler_**. It's advisable to perform automated, correcting checks on a monthly or quarterly basis to ensure the ongoing health of your data and fix any sync errors found. ### Parity checks @@ -44,7 +44,7 @@ For convenience, you can schedule these checks to run automatically at intervals ### Check history -Whenever the system performs a %%parity check|parity-check%% or a %%read check|read-check%%, it keeps a record of what happened. You can view these details easily by clicking the **History** button found under ***Array Operations*** in the interface. +Whenever the system performs a %%parity check|parity-check%% or a %%read check|read-check%%, it keeps a record of what happened. You can view these details easily by clicking the **History** button found under **_Array Operations_** in the interface. For those who want to dive deeper, all these records are saved in a text file located in the `config` directory on your Unraid USB flash device. @@ -81,7 +81,6 @@ Use the spin controls to save power and reduce wear on your drives. Remember tha Resetting your array configuration is an important step that should be undertaken carefully. This process is usually necessary when removing a disk, starting fresh with a new array layout, or fixing disk assignment issues. Please note that this action can impact data protection and parity, so ensure you only proceed when truly needed. Reset your array when: - - Removing or replacing disks - Starting fresh with a new array layout - Fixing disk assignment errors @@ -150,7 +149,7 @@ Remember that the status reports don't include %%SMART|smart%% data. %%SMART rep ## Troubleshooting array start failures -If your array won't start, follow these steps to identify and fix common problems. Look for error messages under ***Main → Array Operation***. +If your array won't start, follow these steps to identify and fix common problems. Look for error messages under **_Main → Array Operation_**. ### Missing disks @@ -200,3 +199,4 @@ Rebuilding disks puts a lot of stress on all drives, which increases the chance Be prepared for the rebuild process to take several hours. The time can vary based on disk size and how busy your system is. Larger disks and busy systems may take longer. ::: + diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx index 5d2ff356c0..d6c33498c2 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx @@ -68,6 +68,7 @@ Unraid provides several maintenance and configuration options for your storage a Unraid provides various write modes for managing array operations, each with its own pros and cons regarding speed, power consumption, and drive wear. Knowing how these modes work, along with the role of a cache drive or pool, can help you fine-tune your server to best suit your needs. + **Write modes at a glance** | Write Mode | Speed (Typical) | Power usage | When drives spin up | Data protection | Best use case | @@ -125,8 +126,8 @@ Consider using a cache pool (multiple devices) for added redundancy and data pro To change Write Mode: -1. Navigate to ***Settings → Disk Settings***. -2. Locate **Tunable (md\_write\_method)**. +1. Navigate to **_Settings → Disk Settings_**. +2. Locate **Tunable (md_write_method)**. 3. Choose your preferred mode: - **Read/Modify/Write** (default) - **Reconstruct Write** (Turbo Write) @@ -173,7 +174,7 @@ When using Unraid, the speed at which you can read files is mainly determined by | **Recovery complexity** | Higher risk of data loss; %%BTRFS\|btrfs%% tools required | Higher risk of data loss; %%ZFS\|zfs%% tools required | Easier parity-based rebuilds | | **Best for** | Apps, VMs, frequent writes | Apps, VMs, frequent writes, enterprise workloads | Bulk storage, media libraries | -\**Actual NVMe speeds depend on PCIe generation, cooling, and network bandwidth (e.g., 10GbE caps at \~1,100 MB/s).* +\*_Actual NVMe speeds depend on PCIe generation, cooling, and network bandwidth (e.g., 10GbE caps at \~1,100 MB/s)._ ### Pros of cache pools diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx index dd1c0b3de9..2b7dc22bf7 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx @@ -3,6 +3,7 @@ sidebar_position: 4 sidebar_label: Removing disks from array --- + # Removing disks from array There may come a time when you want to remove a disk from your Unraid array. Whether you're looking to save on power, retire an old or unreliable drive, or repurpose hardware for a different use, the process is fairly straightforward. @@ -66,10 +67,12 @@ To use the parity-preserve method: 6. Zero out the disk: - For Unraid 6.12 or later: `dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress` - For Unraid 6.11 and earlier: `dd bs=1M if=/dev/zero of=/dev/mdX status=progress` - Replace `X` with the specific number of the data disk you're removing. + + Replace `X` with the specific number of the data disk you're removing. 7. Stop the array once clearing is complete. 8. Reset array configuration, retaining all current assignments. 9. Unassign the disk you want to remove, double-checking all assignments, especially the parity drive. 10. Check the box indicating "Parity is already valid." 11. Start the array to finish the removal. 12. Optionally run a correcting %%parity check|parity-check%% afterward to ensure parity integrity. + diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx index 4ee74ce96f..b3e28f2a97 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx @@ -45,8 +45,11 @@ Starting in Normal Mode is optional. You can use it to verify that the emulated ::: + 5. Stop the array again. + 6. Assign the replacement disk to the vacant slot. + 7. Start the array to begin the rebuild. Unraid rebuilds the contents onto the new disk, and the file system automatically adjusts to the larger disk's capacity. ## Replacing failed/disabled disks @@ -129,12 +132,19 @@ If your server supports hot-swap, you can skip step 2. ::: + 2. Power down your server. + 3. Remove the old, failed disk and install the new disk. Ensure the replacement meets the size requirements described above. + 4. Power up your server. + 5. Assign the new disk to the failed disk's slot. + 6. Check **Yes, I want to do this** and confirm. + 7. Optionally select %%Maintenance Mode|maintenance-mode%% to speed up the rebuild (the array won't be accessible during this time). + 8. Click **Start** to begin the rebuild. Unraid copies data from the emulated disk to the new disk. If the new disk is larger, Unraid manages the extra space. :::warning @@ -166,7 +176,7 @@ Sometimes, a disk may be disabled not because it's actually faulty, but due to i Only use this procedure when: - The disk was disabled due to external factors (like cables or power issues). -- You've checked the disk's health using [%%SMART reports|smart-report%%](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). +- You've checked the disk's health using [%%SMART reports|smart-report%%](../../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). - You've fixed any external problems that caused the disk to be disabled. - The disk seems to be functioning normally. @@ -176,15 +186,15 @@ Only use this procedure when: - If you are rebuilding a data drive, make sure that the %%emulated disk|emulated-disk%% shows the right content before you proceed. The rebuild process will ensure that the physical drive matches the emulated one exactly. - The %%emulated disk|emulated-disk%% may show as 'unmountable' in some cases. A rebuild will not necessarily fix an unmountable emulated disk, so verify the situation first. If the emulated disk shows 'unmountable' or the content doesn't look right, ask for help in the [Unraid forums](https://forums.unraid.net/) before proceeding with the rebuild. -- Always run a [%%SMART|smart%% extended test](../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) on the disabled drive to double-check that it's healthy before starting this process. -- If the %%emulated disk|emulated-disk%% shows any file system issues, use the [automated XFS repair feature](../../troubleshooting/common-issues/data-recovery.mdx#running-the-repair) for XFS‑formatted disks, or the respective file system repair options for other file systems in the %%WebGUI|web-gui%% before beginning the rebuild. +- Always run a [%%SMART|smart%% extended test](../../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) on the disabled drive to double-check that it's healthy before starting this process. +- If the %%emulated disk|emulated-disk%% shows any file system issues, use the [automated XFS repair feature](../../../troubleshooting/common-issues/data-recovery.mdx#running-the-repair) for XFS‑formatted disks, or the respective file system repair options for other file systems in the %%WebGUI|web-gui%% before beginning the rebuild. - While the rebuild process should preserve your data, it's a good idea to back up important files if you can. ::: To re-enable a disabled disk by rebuilding it onto itself: -1. Verify disk health by running a [%%SMART|smart%% extended test](../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) and acknowledging any warning icons in the dashboard. +1. Verify disk health by running a [%%SMART|smart%% extended test](../../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) and acknowledging any warning icons in the dashboard. 2. Stop the array. 3. Unassign the disabled disk. 4. Start the array so Unraid can register the missing disk. The array displays the disk as "Not installed." @@ -212,9 +222,9 @@ Use a parity swap when your replacement data drive is larger than your current p :::important[Prerequisites] -- Before starting, ensure the data drive you want to replace is disabled. Failed drives (showing a red indicator) are already disabled. For healthy drives you want to replace, unassign the drive and start the array once without it to force Unraid to mark it as disabled. -- When your replacement data drive is not larger than your parity drive, use the standard [Replacing failed/disabled disks](#replacing-faileddisabled-disks) procedure instead. -- This procedure is only needed for replacing data drives in an Unraid array with a disk larger than the current parity drive. For parity drive upgrades only, simply remove the old parity drive, add the new one, and start the array. Parity will rebuild automatically. +- Before starting, ensure the data drive you want to replace is disabled. If the drive has failed (shows a red indicator), it is already disabled. If the drive is healthy but you want to replace it, unassign the drive and start the array once without it to force Unraid to mark it as disabled. +- If your replacement data drive is not larger than your parity drive, use the standard [Replacing failed/disabled disks](#replacing-faileddisabled-disks) procedure instead. +- This procedure is only needed for replacing data drives in an Unraid array with a disk larger than the current parity drive. If you only need to upgrade your parity drive, simply remove the old parity drive, add the new one, and start the array. Parity will rebuild automatically. ::: @@ -246,15 +256,25 @@ If your system supports hot-swap, you don't need to power down. Make sure the ar ::: + 6. Optionally remove the old drive. + 7. Install the new drive. Pre-clearing is strongly recommended, but formatting is not needed. + 8. Power on the server. + 9. Stop the array if it started automatically. + 10. Unassign the parity drive. + 11. Assign the new drive to the parity slot. + 12. Assign the old parity drive to the data slot of the drive being replaced. + 13. You should see a **Copy** button with a message stating "Copy will copy the parity information to the new parity disk." + 14. Check the confirmation box and click **Copy**. The array isn't available during this operation, which can take many hours depending on disk size. + 15. Start the array to begin the data rebuild. You can use the array during the rebuild, but limit usage for best performance. The rebuild process also takes several hours. :::warning diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 5dcaaeec09..b94818ba1e 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -32,8 +32,9 @@ const DEFAULT_LOCALE = "en"; const config: Config = { title: "Unraid Docs", - tagline: "Documentation for Unraid", - favicon: "img/favicon.svg", + tagline: "Unraid Documentation", + favicon: "img/favicon.ico", + clientModules: [path.resolve(__dirname, "./src/clientModules/gtag-stub.js")], // Set the production url of your site here url: "https://docs.unraid.net/", @@ -275,10 +276,6 @@ const config: Config = { from: "/account/link-key/", to: "/unraid-connect/overview-and-setup/", }, - { - from: "/go/redeem-activation-code/", - to: "/unraid-account/redeem-activation-code/", - }, // Category redirects { from: "/category/faq/", to: "/unraid-os/troubleshooting/faq/" }, diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png new file mode 100644 index 0000000000..f4f9c201da Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png new file mode 100644 index 0000000000..ba0dbc6dc5 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png new file mode 100644 index 0000000000..38e4c4baa3 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png new file mode 100644 index 0000000000..08a7630db7 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png new file mode 100644 index 0000000000..e9450948e5 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png new file mode 100644 index 0000000000..4b9ee30b4c Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png new file mode 100644 index 0000000000..72a34d9d56 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png new file mode 100644 index 0000000000..7b4e413636 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png new file mode 100644 index 0000000000..5d9b950918 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png new file mode 100644 index 0000000000..ce673785d2 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png new file mode 100644 index 0000000000..752ea1aa86 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png new file mode 100644 index 0000000000..8d54fca08f Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png new file mode 100644 index 0000000000..ed50f0a95e Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png new file mode 100644 index 0000000000..3aa9f26381 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png new file mode 100644 index 0000000000..dc45393105 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png new file mode 100644 index 0000000000..ac34a15211 Binary files /dev/null and b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png differ diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index 185755c380..b051bec540 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -37,7 +37,7 @@ You can use %%ZFS|zfs%% %%snapshots|snapshot%% and replication on a single disk :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -53,7 +53,7 @@ Redundanz gilt immer pro vdev. Wenn ein vdev ausfällt, fällt der gesamte Pool :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -66,7 +66,7 @@ So erstellen Sie einen ZFS-Pool über das WebGUI: 2. **Pool hinzufügen** klicken.
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
3. Wählen Sie einen Namen für Ihren Pool (zum Beispiel `raptor`). @@ -77,20 +77,20 @@ Diese anfängliche Steckplatzanzahl gilt nur für Daten-vdevs. Unterstützungs-v :::
- ![](/img/zfs4.png) + ![](./assets/zfs4.png)
5. Weisen Sie dem Pool Festplatten zu (die Reihenfolge spielt keine Rolle).
- ![](/img/zfs5.png) + ![](./assets/zfs5.png)
6. Klicken Sie auf den Pool-Namen (z.B. `raptor`), um den Konfigurationsbildschirm zu öffnen. 7. Stellen Sie den Dateisystemtyp auf `zfs` oder `zfs-verschlüsselt` (für LUKS-Verschlüsselung) ein.
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
8. Wählen Sie Ihr Zuordnungsprofil - dies bestimmt die Redundanz und Leistung Ihres Pools. @@ -100,11 +100,11 @@ Diese anfängliche Steckplatzanzahl gilt nur für Daten-vdevs. Unterstützungs-v :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
9. Aktivieren Sie die Komprimierung, wenn gewünscht (empfohlen für die meisten Workloads). @@ -132,13 +132,13 @@ To add a %%ZFS|zfs%% disk to the %%array|array%%: 4. Wählen Sie die Festplatte aus, die Sie hinzufügen möchten.
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
5. Wählen Sie unter **Dateisystem** `zfs` oder `zfs-verschlüsselt`.
- ![](/img/zfs10.png) + ![](./assets/zfs10.png)
6. Klicken Sie auf **Übernehmen**. @@ -151,7 +151,7 @@ To add a %%ZFS|zfs%% disk to the %%array|array%%: Wenn Sie einen %%ZFS|zfs%%-Pool einrichten, bestimmt Ihr Zuweisungs-Profil, wie Ihre Daten geschützt werden, wie Ihr Pool performt und wie Sie ihn erweitern können. Hier ist ein einfacher Vergleich, der Ihnen hilft zu entscheiden, welches Profil am besten zu Ihren Anforderungen passt:
- ![](/img/zfs11.png) + ![](./assets/zfs11.png)
| Profil | Redundanz | Leistung | Erweiterung | Speichereffizienz | Typischer Anwendungsfall | @@ -175,7 +175,7 @@ Wenn Sie einen %%ZFS|zfs%%-Pool einrichten, bestimmt Ihr Zuweisungs-Profil, wie Wie Sie Festplatten in Vdevs gruppieren, beeinflusst sowohl die Datensicherheit als auch die Geschwindigkeit.
- ![](/img/zfs12.png) + ![](./assets/zfs12.png)
- Wenn Sie alle Laufwerke in ein großes RAIDZ2-vdev einfügen, können Sie zwei beliebige Laufwerke verlieren, ohne Daten zu verlieren. Eine Erweiterung bedeutet jedoch das Hinzufügen eines weiteren vollständigen vdevs. @@ -201,7 +201,7 @@ Dies bietet zwei wesentliche Vorteile: - **Verbesserte Leistung:** Weniger Daten zu schreiben und zu lesen kann zu schnelleren Vorgängen führen, besonders bei modernen CPUs.
- ![](/img/zfs13.png) + ![](./assets/zfs13.png)
:::tip @@ -216,7 +216,7 @@ Aktivieren Sie die %%ZFS|zfs%%-Komprimierung für die meisten Unraid %%ZFS|zfs%% Unraid beschränkt %%ZFS|zfs%% automatisch auf die Nutzung eines angemessenen Teils des RAM Ihres Systems (in der Regel 1/8 des gesamten RAM). Dies ermöglicht, dass %%ZFS|zfs%% gut performt, ohne Docker-Container, %%VMs|vm%% oder das Unraid-Betriebssystem zu beeinträchtigen.
- ![](/img/zfs14.png) + ![](./assets/zfs14.png)
@@ -252,7 +252,7 @@ Unraid kann mit minimalem Aufwand ZFS-Pools importieren, die auf anderen Plattfo - Unter **Poolstatus** den Status überprüfen und auf **Scrub** klicken.
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -263,7 +263,7 @@ Unraid kann mit minimalem Aufwand ZFS-Pools importieren, die auf anderen Plattfo Unraid bezeichnet %%ZFS|zfs%%-Unterstützungs-vdevs als Subpools. Die meisten Benutzer benötigen diese **nicht**, aber fortgeschrittene Benutzer könnten ihnen begegnen:
- ![](/img/zfs16.png) + ![](./assets/zfs16.png)
| Unterstützender vdev (Unterpool) | Zweck | Risiko/Notizen | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png new file mode 100644 index 0000000000..f4f9c201da Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png new file mode 100644 index 0000000000..ba0dbc6dc5 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png new file mode 100644 index 0000000000..38e4c4baa3 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png new file mode 100644 index 0000000000..08a7630db7 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png new file mode 100644 index 0000000000..e9450948e5 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png new file mode 100644 index 0000000000..4b9ee30b4c Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png new file mode 100644 index 0000000000..72a34d9d56 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png new file mode 100644 index 0000000000..7b4e413636 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png new file mode 100644 index 0000000000..5d9b950918 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png new file mode 100644 index 0000000000..ce673785d2 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png new file mode 100644 index 0000000000..752ea1aa86 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png new file mode 100644 index 0000000000..8d54fca08f Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png new file mode 100644 index 0000000000..ed50f0a95e Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png new file mode 100644 index 0000000000..3aa9f26381 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png new file mode 100644 index 0000000000..dc45393105 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png new file mode 100644 index 0000000000..ac34a15211 Binary files /dev/null and b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png differ diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index 795844d0e2..24dad04866 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -37,7 +37,7 @@ Puede usar %%snapshots|snapshot%% de %%ZFS|zfs%% y replicación en un solo disco :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -53,7 +53,7 @@ La redundancia siempre es por vdev. Si alguno falla, todo el pool falla, incluso :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -66,7 +66,7 @@ Para crear un grupo %%ZFS|zfs%% usando el %%WebGUI|web-gui%%: 2. Haga clic en **Agregar Grupo**.
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
3. Elija un nombre para su grupo (por ejemplo, `raptor`). @@ -77,20 +77,20 @@ Esta cantidad inicial de ranuras es solo para vdevs de datos. Los vdevs de sopor :::
- ![](/img/zfs4.png) + ![](./assets/zfs4.png)
5. Asigne discos al grupo (el orden de los discos no importa).
- ![](/img/zfs5.png) + ![](./assets/zfs5.png)
6. Haga clic en el nombre del grupo (por ejemplo, `raptor`) para abrir su pantalla de configuración. 7. Establezca el tipo de sistema de archivos a `zfs` o `zfs-encrypted` (para cifrado LUKS).
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
8. Elija su perfil de asignación: esto determina la redundancia y el rendimiento de su grupo. @@ -100,11 +100,11 @@ Antes de finalizar, revise las secciones sobre perfiles de asignación y topolog :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
9. Habilite la compresión si lo desea (recomendado para la mayoría de las cargas de trabajo). @@ -132,13 +132,13 @@ Para añadir un disco %%ZFS|zfs%% al %%array|array%%: 4. Seleccione el disco que desea agregar.
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
5. Bajo **Sistema de archivos**, elija `zfs` o `zfs-encrypted`.
- ![](/img/zfs10.png) + ![](./assets/zfs10.png)
6. Haga clic en **Aplicar**. @@ -151,7 +151,7 @@ Para añadir un disco %%ZFS|zfs%% al %%array|array%%: Cuando configuras un pool %%ZFS|zfs%%, tu perfil de asignación determina cómo se protege tu información, cómo funciona tu pool y cómo puedes expandirlo. Aquí tienes una sencilla comparación para ayudarte a decidir qué perfil se adapta a tus necesidades:
- ![](/img/zfs11.png) + ![](./assets/zfs11.png)
| Perfil | Redundancia | Rendimiento | Expansión | Eficiencia Espacial | Caso de uso típico | @@ -175,7 +175,7 @@ Cuando configuras un pool %%ZFS|zfs%%, tu perfil de asignación determina cómo Cómo agrupar discos en vdevs afecta tanto la seguridad de los datos como la velocidad.
- ![](/img/zfs12.png) + ![](./assets/zfs12.png)
- Si pones todos tus discos en un vdev RAIDZ2 grande, puedes perder dos discos sin perder datos. Sin embargo, la expansión significa agregar otro vdev completo. @@ -201,7 +201,7 @@ Esto ofrece dos beneficios importantes: - **Mejor rendimiento:** Escribir y leer menos datos puede llevar a operaciones más rápidas, especialmente en CPUs modernas.
- ![](/img/zfs13.png) + ![](./assets/zfs13.png)
:::tip @@ -216,7 +216,7 @@ Habilita la compresión %%ZFS|zfs%% para la mayoría de los pools %%ZFS|zfs%% en Unraid limita automáticamente a %%ZFS|zfs%% a usar una porción razonable de la RAM de tu sistema (usualmente 1/8 de la RAM total). Esto permite que %%ZFS|zfs%% funcione bien sin afectar a los contenedores de Docker, %%VMs|vm%%, o el sistema operativo Unraid.
- ![](/img/zfs14.png) + ![](./assets/zfs14.png)
@@ -252,7 +252,7 @@ Unraid puede importar grupos %%ZFS|zfs%% creados en otras plataformas sin grande - En **Estado del Pool**, verifica el estado y haz clic en **Scrub**.
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -263,7 +263,7 @@ Unraid puede importar grupos %%ZFS|zfs%% creados en otras plataformas sin grande Unraid se refiere a los vdevs de soporte %%ZFS|zfs%% como subpools. La mayoría de los usuarios **no** los necesitan, pero los usuarios avanzados pueden encontrarlos:
- ![](/img/zfs16.png) + ![](./assets/zfs16.png)
| Vdev de soporte (subpool) | Propósito | Riesgos/Notas | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png new file mode 100644 index 0000000000..f4f9c201da Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png new file mode 100644 index 0000000000..ba0dbc6dc5 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png new file mode 100644 index 0000000000..38e4c4baa3 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png new file mode 100644 index 0000000000..08a7630db7 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png new file mode 100644 index 0000000000..e9450948e5 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png new file mode 100644 index 0000000000..4b9ee30b4c Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png new file mode 100644 index 0000000000..72a34d9d56 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png new file mode 100644 index 0000000000..7b4e413636 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png new file mode 100644 index 0000000000..5d9b950918 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png new file mode 100644 index 0000000000..ce673785d2 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png new file mode 100644 index 0000000000..752ea1aa86 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png new file mode 100644 index 0000000000..8d54fca08f Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png new file mode 100644 index 0000000000..ed50f0a95e Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png new file mode 100644 index 0000000000..3aa9f26381 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png new file mode 100644 index 0000000000..dc45393105 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png new file mode 100644 index 0000000000..ac34a15211 Binary files /dev/null and b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png differ diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index e07342b461..927a6f64b7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -37,7 +37,7 @@ Vous pouvez utiliser les %%snapshots|snapshot%% %%ZFS|zfs%% et la réplication s :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -53,7 +53,7 @@ La redondance est toujours par vdev. Si un vdev échoue, l'ensemble du pool éch :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -66,7 +66,7 @@ Pour créer un pool %%ZFS|zfs%% à l'aide du %%WebGUI|web-gui%% : 2. Cliquez sur **Ajouter un pool**.
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
3. Choisissez un nom pour votre pool (par exemple, `raptor`). @@ -77,20 +77,20 @@ Ce nombre initial d'emplacements est uniquement pour les vdevs de données. Les :::
- ![](/img/zfs4.png) + ![](./assets/zfs4.png)
5. Assignez les disques au pool (l'ordre des disques n'a pas d'importance).
- ![](/img/zfs5.png) + ![](./assets/zfs5.png)
6. Cliquez sur le nom du pool (par exemple, `raptor`) pour ouvrir son écran de configuration. 7. Définissez le type de système de fichiers sur `zfs` ou `zfs-encrypted` (pour le cryptage LUKS).
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
8. Choisissez votre profil d'allocation - cela détermine la redondance et les performances de votre pool. @@ -100,11 +100,11 @@ Avant de finaliser, consultez les sections sur les profils d'allocation et la to :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
9. Activez la compression si désiré (recommandé pour la plupart des charges de travail). @@ -134,13 +134,13 @@ Pour ajouter un disque %%ZFS|zfs%% à l'%%array|array%% : 4. Sélectionnez le disque que vous souhaitez ajouter.
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
5. Sous **Système de fichiers**, choisissez `zfs` ou `zfs-encrypted`.
- ![](/img/zfs10.png) + ![](./assets/zfs10.png)
6. Cliquez sur **Appliquer**. @@ -153,7 +153,7 @@ Pour ajouter un disque %%ZFS|zfs%% à l'%%array|array%% : Lorsque vous configurez un pool %%ZFS|zfs%%, votre profil d'allocation détermine comment vos données sont protégées, comment votre pool fonctionne et comment vous pouvez l'étendre. Voici une simple comparaison pour vous aider à décider quel profil correspond à vos besoins:
- ![](/img/zfs11.png) + ![](./assets/zfs11.png)
| Profil | Redondance | Performance | Extension | Efficacité de l'espace | Cas d'utilisation typique | @@ -179,7 +179,7 @@ Lorsque vous configurez un pool %%ZFS|zfs%%, votre profil d'allocation détermin La façon dont vous regroupez les disques dans des vdevs affecte à la fois la sécurité des données et la vitesse.
- ![](/img/zfs12.png) + ![](./assets/zfs12.png)
- Si vous placez tous vos disques dans un grand vdev RAIDZ2, vous pouvez perdre deux disques sans perte de données. Cependant, l'expansion signifie ajouter un autre vdev complet. @@ -205,7 +205,7 @@ Cela présente deux avantages majeurs : - **Amélioration des performances :** Écrire et lire moins de données peut entraîner des opérations plus rapides, surtout sur les processeurs modernes.
- ![](/img/zfs13.png) + ![](./assets/zfs13.png)
:::tip @@ -220,7 +220,7 @@ Activez la compression %%ZFS|zfs%% pour la plupart des pools %%ZFS|zfs%% d'Unrai Unraid limite automatiquement %%ZFS|zfs%% à utiliser une portion raisonnable de la RAM de votre système (généralement 1/8ème de la RAM totale). Cela permet à %%ZFS|zfs%% de bien fonctionner sans affecter les conteneurs Docker, les %%VMs|vm%% ou l'OS Unraid.
- ![](/img/zfs14.png) + ![](./assets/zfs14.png)
@@ -256,7 +256,7 @@ Unraid peut importer des pools %%ZFS|zfs%% créés sur d'autres plateformes avec - Sous **État de la piscine**, vérifiez l'état et cliquez sur **Scrub**.
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -267,7 +267,7 @@ Unraid peut importer des pools %%ZFS|zfs%% créés sur d'autres plateformes avec Unraid se réfère aux vdevs de support %%ZFS|zfs%% comme des sous-pools. La plupart des utilisateurs n'en ont **pas** besoin, mais les utilisateurs avancés peuvent les rencontrer :
- ![](/img/zfs16.png) + ![](./assets/zfs16.png)
| Vdev de support (sous-piscine) | But | Risque/Notes | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png new file mode 100644 index 0000000000..f4f9c201da Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png new file mode 100644 index 0000000000..ba0dbc6dc5 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png new file mode 100644 index 0000000000..38e4c4baa3 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png new file mode 100644 index 0000000000..08a7630db7 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png new file mode 100644 index 0000000000..e9450948e5 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png new file mode 100644 index 0000000000..4b9ee30b4c Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png new file mode 100644 index 0000000000..72a34d9d56 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png new file mode 100644 index 0000000000..7b4e413636 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png new file mode 100644 index 0000000000..5d9b950918 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png new file mode 100644 index 0000000000..ce673785d2 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png new file mode 100644 index 0000000000..752ea1aa86 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png new file mode 100644 index 0000000000..8d54fca08f Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png new file mode 100644 index 0000000000..ed50f0a95e Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png new file mode 100644 index 0000000000..3aa9f26381 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png new file mode 100644 index 0000000000..dc45393105 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png new file mode 100644 index 0000000000..ac34a15211 Binary files /dev/null and b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png differ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index bcc9fee110..04e308a752 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -37,7 +37,7 @@ Unraid supports %%ZFS|zfs%% for any storage pool. You can create a new %%ZFS|zfs :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -53,7 +53,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -66,7 +66,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli 2. 点击**添加池**。
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
3. 为您的存储池选择一个名称(例如,`raptor`)。 @@ -77,20 +77,20 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli :::
- ![](/img/zfs4.png) + ![](./assets/zfs4.png)
5. 将磁盘分配到池中(磁盘顺序无关紧要)。
- ![](/img/zfs5.png) + ![](./assets/zfs5.png)
6. 点击池名称(例如 `raptor`)以打开其配置屏幕。 7. 将文件系统类型设置为 `zfs` 或 `zfs-encrypted`(用于 LUKS 加密)。
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
8. 选择您的分配配置文件 - 这会决定您的池的冗余和性能。 @@ -100,11 +100,11 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
9. 如果需要,可以启用压缩(推荐用于大多数工作负载)。 @@ -132,13 +132,13 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli 4. 选择您要添加的磁盘。
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
5. 在 **文件系统** 下,选择 `zfs` 或 `zfs-encrypted`。
- ![](/img/zfs9.png) + ![](./assets/zfs9.png)
6. 点击 **应用**。 @@ -151,7 +151,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli 当您设置 %%ZFS|zfs%% 池时,您的分配配置文件将决定您的数据如何受到保护、池的性能以及其可扩展性。以下是一些简单的比较帮助您决定哪个配置文件适合您的需求:
- ![](/img/zfs11.png) + ![](./assets/zfs11.png)
| 配置 | 冗余 | 性能 | 扩展 | 空间效率 | 典型用例 | @@ -175,7 +175,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli 您如何将磁盘分组到 vdevs 中会影响数据安全性和速度。
- ![](/img/zfs12.png) + ![](./assets/zfs12.png)
- 如果您将所有磁盘放入一个大型 RAIDZ2 vdev,您可以在不丢失数据的情况下丢失任意两个磁盘。然而,扩展意味着需要添加另一个完整的 vdev。 @@ -201,7 +201,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli - **提高性能:** 写入和读取较少数据可以导致更快的操作,特别是在现代 CPU 上。
- ![](/img/zfs13.png) + ![](./assets/zfs13.png)
:::tip @@ -216,7 +216,7 @@ The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or repli Unraid 自动限制 %%ZFS|zfs%% 使用系统内存的一部分(通常是总 RAM 的 1/8)。这使 %%ZFS|zfs%% 可以良好运作,而不会影响到 Docker 容器、%%VMs|vm%% 或 Unraid 操作系统。
- ![](/img/zfs14.png) + ![](./assets/zfs14.png)
@@ -252,7 +252,7 @@ Unraid 可以轻松导入其他平台上创建的 %%ZFS|zfs%% 池。 - 在 **池状态** 下,检查状态并点击 **Scrub**。
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -263,7 +263,7 @@ Unraid 可以轻松导入其他平台上创建的 %%ZFS|zfs%% 池。 Unraid 将 %%ZFS|zfs%% 支持 vdevs 称作子池。大多数用户**不**需要这些,但有经验的用户可能会使用:
- ![](/img/zfs16.png) + ![](./assets/zfs16.png)
| 支持的 vdev(子池) | 用途 | 风险/注意事项 | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx index 2d4bd97b86..e18773535f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -1,6 +1,8 @@ + + 要查看容器的日志(对故障排除很有帮助): -``` +```bash docker logs "container-name" ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx index 3c17eaf5d4..fe884beccc 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -1,6 +1,8 @@ + + 要重启一个容器(在更新配置或进行故障排除后很有用): -``` +```bash docker restart "container-name" ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx index ba2e7499b1..9a8aaccaa1 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -1,6 +1,8 @@ + + 要启动一个容器,使用命令: -``` +```bash docker start "container-name" ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx index c3969580d7..0e1939569c 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -1,6 +1,8 @@ + + 要检查容器是否正在运行: -``` +```bash docker ps --filter "name=container-name" ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx index 10193999c8..defc39cfc2 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -1,6 +1,8 @@ + + 要停止一个容器,使用命令: -``` +```bash docker stop "container-name" ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx index 122cb6ef38..988a8ee6ca 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -1,25 +1,31 @@ + + 环境变量可以定制您 Docker 容器在运行时的行为。它们允许您传递键值对,您的容器化应用程序可以读取并利用这些信息。 -

环境变量的常见用途

+### 环境变量的常见用途 - 设置时区 - 配置用户和组ID - 指定语言偏好 - 调整应用程序特定设置,例如 API 密钥或功能切换 -

在 %%WebGUI|web-gui%% 中管理环境变量

+### 在 %%WebGUI|web-gui%% 中管理环境变量 - 您可以在容器的配置屏幕通过 %%WebGUI|web-gui%% 添加、编辑或删除环境变量。 - 许多容器模板已经预设了一些常用环境变量,但如果需要,您可以随时添加更多。 - 务必检查特定应用程序的文档以了解可用的环境变量及其有效值。 -:::info[Examples 环境变量] +:::info[环境变量示例] + - `TZ=America/New_York`: 这会设置容器的时区。 - `PUID=99` 和 `PGID=100`: 这些设置文件权限的用户和组 ID。 - `UMASK=022`: 这控制新创建文件的默认文件权限。 - `API_KEY=your_api_key_here`: 这可以用于应用程序进行外部服务的身份验证。 + ::: :::tip + 使用环境变量,以避免在容器镜像中硬编码敏感或环境特定的信息。此做法增强了容器的可移植性和安全性。 + ::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx index 56f7eca3cd..8a42ae7581 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -1,3 +1,5 @@ + + Unraid 支持多种 Docker 网络模式。您选择的网络类型决定了容器与其他设备和容器的通信方式: - **桥接 (默认):** 容器位于一个内部的 Docker 网络中。只有您明确映射的端口才能从 Unraid 服务器或局域网访问。这是大多数应用程序最安全且最常用的选项。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx index 2be7e76170..5e79f0d111 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -1,3 +1,5 @@ + + 端口映射决定了网络流量如何从 Unraid 服务器路由到容器。 - **桥接网络:** 您可以将内部容器端口映射到不同的主机端口。例如,如果三个容器内部使用端口8000,您可以将它们分别映射到主机上的8000、8001和8002。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx index 7e8d650dab..0493e0789f 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -1,17 +1,23 @@ + + 卷映射控制您的容器如何访问 Unraid 服务器上的文件。每个映射将容器内的一个文件夹(容器路径)链接到 Unraid 服务器上的一个文件夹(主机路径)。 - **容器路径:** 容器内部的目录(例如,`/config` 或 `/unraid_media`)。 - **主机路径:** 您 Unraid 服务器上的目录(例如,`/mnt/user/appdata/myapp`)。 - **访问模式:** 控制权限 - 只读或读/写。使用仍能使容器正常工作的最严格模式。 -:::tip[Best 实践] -Store application data (settings, libraries, etc.) outside the container, typically in the `appdata` %%user share|user-share%%. This [share management](../../../manage-storage/shares.mdx) approach keeps your data safe during updates or reinstalls. +:::tip[最佳实践] + +在容器外部存储应用程序数据(设置、库等),通常存储在 `appdata` %%user share|user-share%% 中。这种[共享管理](../../../manage-storage/shares.mdx)方法可在更新或重新安装期间保护您的数据。 + ::: :::note + - 路径区分大小写。 - 容器路径应以 `/` 开头。 -- 如果使用未分配的设备作为主机路径,请将访问模式设置为“Slave”选项以确保正确检测。 +- 如果使用未分配的设备作为主机路径,请将访问模式设置为"Slave"选项以确保正确检测。 - 如果主机路径在容器启动时不存在,则会自动创建。 - 服务器上出现的意外文件夹可能表明映射配置错误。 + ::: diff --git a/src/clientModules/gtag-stub.js b/src/clientModules/gtag-stub.js new file mode 100644 index 0000000000..cdb4219d6e --- /dev/null +++ b/src/clientModules/gtag-stub.js @@ -0,0 +1,9 @@ +if (typeof window !== 'undefined') { + window.dataLayer = window.dataLayer || []; + if (typeof window.gtag !== 'function') { + window.gtag = function gtagStub() { + window.dataLayer.push(arguments); + }; + } +} +